Программирование на Java

       

Порты


Как было рассмотрено, для протокола IP достаточно знать IP-адрес, чтобы обработать сообщение. Оба протокола транспортного уровня, TCP и UDP, дополнительно используют порты (port) для взаимодействия с вышестоящими уровнями. Порт описывается числом от 0 до 65535 и позволяет операционной системе распределять пакеты, приходящие на транспортный уровень, между различными прикладными программами. Предположим, пользователь одновременно скачивает файл с FTP-сервера и работает с удаленным сервером базы данных. От обоих этих серверов пользовательская машина будет получать по сети пакеты и необходимо правильно передавать их соответствующим приложениям (FTP-клиенту и БД-клиенту).

Часть портов зарезервирована под стандартные приложения. Например, для FTP зарезервирован порт 21, для telnet – 23, для HTTP – 80. Далее приведен список распределения портов:

  • порты меньше 255 используются для публичных сервисов;
  • порты из диапазона 255-1023 назначаются компаниями-разрабочиками для приложений;
  • номера свыше 1023 – не регулируемые.

Таким образом, говоря об установленном TCP-соединении, имеют ввиду 4 числа: IP-адрес и порт одной стороны и те же параметры второй стороны. Например, если пользователь со своей машины 194.11.22.33 обратился через браузер к web-серверу 213.180.194.129, то это означает, что установлено соединение 194.11.22.33:10123-213.180.194.129:80 (номер 10123 выбран произвольно – используется любой незанятый порт).

Используется также термин "сокет" (socket), под которым подразумевается пара "IP-адрес:порт" – адресная "точка" для сетевых обращений.



Содержание раздела