logo
Администрирование ИС ПОСОБИЕ

1.6.Порты и сокеты

Рассмотрим назначение портов, которые применяются в сетях TCP/IP. В заголовках протоколов нет наименований протоколов, а есть только их номера. Кроме того, данные каждому приложению также доставляются с использованием номеров, которые называются портам, и лежат в диапазоне от 1 до 65535. Пара - протокол и порт - позволяет стеку протоколов TCP/IP доставить данные нуждающемуся в них приложению. Номера портов закреплены за информационными сервисами Internet.

Информационный сервис - это прикладная программа, которая осуществляет обслуживание на определенном порте TCP или UDP. К сервисам относятся: доступ в режиме удаленного терминала, доступ к файловым архивам FTP, доступ к серверам World Wide Web и т.д. Например, Web-сервера могут использовать следующие номера портов – 80 (традиционно), 8080, 8081, 8181, 8282 и 8383.

При работе через стек протоколов TCP/IP сообщения, которыми обмениваются приложения, сначала инкапсулируются в сегменты TCP или дейтаграммы UDP, при этом указывается соответствующий порт транспортного протокола. Потом транспортные протоколы мультиплексируются в IP, который запоминает номер протокола. Все IP-пакеты передаются по сети получателю, где происходит обратная операция изъятия информации из оболочки TCP/IP. Сначала по номеру протокола в модуле IP выделенные данные пересылаются соответствующему протоколу транспортного уровня. На транспортном уровне по номеру порта получателя определяется, какому сервису данные посланы.

Однако, этим механизм взаимодействия приложений в рамках TCP/IP не исчерпывается. Дело в том, что кроме статически назначенных существуют еще динамически назначаемые сервисы.

Динамически назначаемые номера портов TCP и UDP используются для того, чтобы можно было организовать обслуживание множества запросов по сети к одному сервису. Следовательно, должен быть механизм, который бы позволил распараллелить их обслуживание. Таким механизмом служит динамическое назначение портов. Происходит это назначение в момент установки соединения. Клиент, запрашивая обслуживание, обращается к сервису по номеру порта, но при этом сообщает, что принимать ответы он будет по номеру порта, отличному от сервиса. Таким образом, сервер может обслуживать запросы к одному и тому же порту, используя разные порты при ответе. Образующаяся при этом пара (IP-адрес, номер порта) называется сокетом (буквально "розетка"). Таким образом, можно сказать, что http-сервер для обслуживания использует сокет, например, 144.206.130.137;80, а клиент, который к нему обращается, сокет 144.206.130.138;8080.