|
Порты
Протокол TCP взаимодействует
через межуровневые интерфейсы с ниже
лежащим протоколом IP и с выше лежащими
протоколами прикладного уровня или
приложениями.
В то время как задачей сетевого
уровня, к которому относится протокол IP,
является передача данных между
произвольными узлами сети, задача
транспортного уровня, которую решает
протокол TCP, заключается в передаче данных
между любыми прикладными процессами,
выполняющимися на любых узлах сети.
Действительно, после того как пакет
средствами протокола IP доставлен в
компьютер-получатель, данные необходимо
направить конкретному процессу-получателю.
Каждый компьютер может выполнять несколько
процессов, более того, прикладной процесс
тоже может иметь несколько точек входа,
выступающих в качестве адреса назначения
для пакетов данных.
Пакеты, поступающие на
транспортный уровень, организуются
операционной системой в виде множества
очередей к точкам входа различных
прикладных процессов. В терминологии TCP/IP
такие системные очереди называются портами.
Таким образом, адресом назначения,
который используется протоколом TCP,
является идентификатор (номер) порта
прикладной службы. Номер порта в
совокупности с номером сети и номером
конечного узла однозначно определяют
прикладной процесс в сети. Этот набор
идентифицирующих параметров имеет
название сокет (socket).
Назначение номеров портов
прикладным процессам осуществляется либо централизованно,
если эти процессы представляют собой
популярные общедоступные службы (например,
номер 21 закреплен за службой удаленного
доступа к файлам FTP, a 23 - за службой
удаленного управления telnet), либо локально
для тех служб, которые еще не стали столь
распространенными, чтобы закреплять за
ними стандартные (зарезервированные)
номера. Централизованное присвоение
службам номеров портов выполняется
организацией Internet Assigned Numbers Authority (IANA).
Эти номера затем закрепляются и
опубликовываются в стандартах Internet (RFC 1700).
Локальное присвоение номера
порта заключается в том, что разработчик
некоторого приложения просто связывает с
ним любой доступный, произвольно выбранный
числовой идентификатор, обращая внимание
на то, чтобы он не входил в число
зарезервированных номеров портов. В
дальнейшем все удаленные запросы к данному
приложению от других приложений должны
адресоваться с указанием назначенного ему
номера порта.
Протокол TCP ведет для каждого порта две
очереди: очередь пакетов, поступающих в
данный порт из сети, и очередь пакетов,
отправляемых данным портом в сеть.
Процедура обслуживания протоколом TCP
запросов, поступающих от нескольких
различных прикладных служб, называется мультиплексированием.
Обратная процедура распределения
протоколом TCP поступающих от сетевого
уровня пакетов между набором
высокоуровневых служб, идентифицированных
номерами портов, называется демультиплексированием
(рис. 5.23).
Рис. 5.23. Функции протокола TCP no
мультиплексированию и
демультиплексированию потоков
|