Какую цель обслуживает порт TCP / UDP 0?

Порт 0 имеет особое значение в сетевом программировании, особенно в ОС Unix, когда речь идет о программировании сокетов, где порт используется для запроса системных динамических портов. Порт 0 является портом с подстановочными знаками, который сообщает системе найти подходящий номер порта.

В отличие от большинства номеров портов, порт 0 является зарезервированным портом в сетях TCP / IP, что означает, что он не должен использоваться в сообщениях TCP или UDP. Сетевые порты в TCP и UDP варьируются от нуля до 65535. Номера портов в диапазоне от нуля до 1023 определяются как системные порты или общеизвестные порты. Управление по присвоению номеров в Интернете (IANA) ведет официальный список предполагаемого использования этих номеров портов в Интернете, и системный порт 0 не должен использоваться.

Как TCP / UDP порт 0 работает в сетевом программировании

Конфигурирование нового сетевого сокета требует, чтобы один номер порта был выделен как на стороне источника, так и на стороне назначения. Сообщения TCP или UDP, отправленные отправителем (источником), содержат оба номера портов, чтобы получатель сообщения (получатель) мог выдавать ответные сообщения для правильной конечной точки протокола.

IANA предварительно распределила назначенные системные порты для основных интернет-приложений, таких как веб-серверы (порт 80), но многие сетевые приложения TCP и UDP не имеют своего собственного системного порта и должны каждый раз получать его из операционной системы своего устройства.

Чтобы назначить номер порта источника, приложения вызывают сетевые функции TCP / IP, такие как bind (), чтобы запросить их. Приложение может предоставить фиксированный (жестко запрограммированный) номер для bind (), если они предпочитают запрашивать конкретный номер, но такой запрос может завершиться сбоем, поскольку другое приложение, работающее в системе, в настоящее время может использовать его.

В качестве альтернативы он может предоставить порт 0 для bind () в качестве параметра соединения. Это запускает операционную систему для автоматического поиска и возврата подходящего доступного порта в диапазоне номеров динамических портов TCP / IP.

Приложению не предоставлен порт 0, а есть какой-то другой динамический порт. Преимущество этого соглашения программирования — эффективность. Вместо того, чтобы каждое приложение реализовывало и выполняло код для проверки нескольких портов, пока они не получат действительный, приложения полагаются на операционную систему.

Unix, Windows и другие операционные системы различаются по обработке порта 0, но применяется то же общее соглашение.

Порт 0 и безопасность сети

Сетевой трафик, отправляемый через Интернет на хосты, прослушивающие порт 0, может генерироваться злоумышленниками или случайно запрограммированными приложениями. Ответные сообщения, которые хосты генерируют в ответ на трафик порта 0, помогают злоумышленникам изучить поведение и потенциальную сетевую уязвимость этих устройств.

Многие интернет-провайдеры (ISP) блокируют трафик на порту 0 — как входящие, так и исходящие сообщения — для защиты от этих эксплойтов.

Ссылка на основную публикацию