Если объяснить просто, то порты существуют для того чтобы между компьютерами могли устанавливать собственные соединения разные прикладные процессы в любом количестве, например для того, чтобы компьютер мог быть одновременно http-сервером (web, 80 порт), pop-сервером (получение почты, 110 порт), smtp-сервером (отправка почты, 25 порт).... А клиент, т.е. пользователь мог одновременно просматривать web-страницы, работать с почтой... скачивать файлы по ftp, общаться по ICQ, т.е. каждая программа открывает свой порт и работает через него, не мешая другим программам...
Возможно вы видели адреса типа http://domen.ru:8100, это означает что соединение в web-сервером происходит на 8100-м порту.
А теперь посложнее:)) Взаимодействие программ, использующих протокол TCP (или UDP), строится согласно модели "клиент-сервер", (Например обозреватель Internet Explorer и Web-сервер). Данная модель подразумевает, что одна программа (сервер) всегда пассивно ожидает обращения к ней другой программы (клиента). Для установления связи между программой-клиента и сервера используются следующие данные: используемый транспортный протокол (TCP или UDP); IP-адрес сервера; номер порта сервера; IP-адрес клиента; номер порта клиента.
Когда клиент и сервер начинают использовать TCP, создается виртуальный канал. Данные по этому каналу могут одновременно передаваться в обоих направлениях. Один прикладной процесс пишет данные в TCP-порт, они проходят по сети, и другой приклад ной процесс читает их из своего TCP-порта. Для того, чтобы клиент мог обращаться к необходимому ему серверу, он должен знать номер порта, по которому сервер ожидает обращения к нему ("слушает сеть"). Программы-клиенты, являющиеся активной стороной во взаимодействии "клиент-сервер", могут использовать, как правило, произвольные номера портов, назначаемые динамически непосредственно перед обращением к серверу (как любые свободные на данном узле). Любая прикладная программа (будь то клиент или сервер) может открывать для взаимодействия любое количество портов для использования любых транспортных протоколов. Порт номер 513 для TCP не идентичен порту номер 513 для UDP. Всего 65535 портов, любой из них может использоваться Обычно используются порты от 0 до 1024. Данные номера иногда называют - «Хорошо известные номера портов» ("well-known port")
Номера портов (выше 1023) предоставляются клиентам от программного обеспечения хоста по мере необходимости. Internet Explorer например может использовать любой для соединениея, при открытии следующего соединения будет использован следующий порт и т.д.. Выделение портов предусматривает следующие шаги: Пользователь запускает клиентскую программу. Клиентской программе выделяется порт.