Порт 0 имеет особое значение в сетевом программировании, особенно в ОС Unix, когда речь идет о программировании сокетов, где порт используется для запроса динамических портов, выделенных системой. Порт 0 — это порт с подстановочным знаком, который сообщает системе, что ей нужно найти подходящий номер порта.
В отличие от большинства номеров портов, порт 0 является зарезервированным портом в сети TCP/IP, что означает, что его не следует использовать в сообщениях TCP или UDP. Сетевые порты в TCP и UDP имеют номера от нуля до 65535. Номера портов в диапазоне от нуля до 1023 определяются как неэфемерные порты, системные порты или общеизвестные порты. Управление по присвоению номеров Интернета (IANA) поддерживает официальный листинг предполагаемого использования этих номеров портов в Интернете, а системный порт 0 не должен использоваться.
как проверить скорость вращения жесткого диска
Как TCP/UDP-порт 0 работает в сетевом программировании
Jetta Productions / Getty Images
Для настройки нового подключения к сетевому сокету необходимо, чтобы один номер порта был назначен как на стороне источника, так и на стороне назначения. Сообщения TCP или UDP, отправленные отправителем (источником), содержат оба номера портов, чтобы получатель сообщения (назначение) мог отправлять ответные сообщения в правильную конечную точку протокола.
IANA заранее выделила назначенные системные порты для основных интернет-приложений, таких как веб-серверы (порт 80), но многие сетевые приложения TCP и UDP не имеют собственного системного порта и должны получить его от своего устройства. Операционная система каждый раз, когда они бегут.
как убрать разрывы страниц в словах
Чтобы назначить номер исходного порта, приложения вызывают сетевые функции TCP/IP, такие какbind(), чтобы запросить его. Приложение может предоставить фиксированный (жестко запрограммированный) номер для функцииbind(), если оно предпочитает запрашивать определенный номер, но такой запрос может завершиться неудачей, поскольку другое приложение, работающее в системе, в данный момент может использовать его.
В качестве альтернативы он может предоставить порт 0 для функцииbind() в качестве параметра соединения. Это заставляет операционную систему автоматически искать и возвращать подходящий доступный порт в диапазоне динамических номеров портов TCP/IP.
Приложению предоставлен не порт 0, а какой-либо другой динамический порт. Преимущество этого соглашения программирования — эффективность. Вместо того, чтобы каждое приложение реализовало и запускало код для проверки нескольких портов, пока не будет найден действительный, приложения полагаются на операционную систему.
Unix, Windows и другие операционные системы по-разному обрабатывают порт 0, но применяется одно и то же общее соглашение.
как стереть сообщения в снэпчате
Порт 0 и сетевая безопасность
Сетевой трафик, отправляемый через Интернет на хосты, прослушивающие порт 0, может быть создан сетевыми злоумышленниками или случайно неправильно запрограммированными приложениями. Ответные сообщения, которые хосты генерируют в ответ на трафик порта 0, помогают злоумышленникам узнать поведение и потенциальные уязвимости сети этих устройств.
Много провайдеры интернет-услуг (ISP) блокируют трафик на порту 0, как входящие, так и исходящие сообщения, чтобы защититься от этих эксплойтов.
Часто задаваемые вопросы- Что такое номера портов?
Номера портов, используемые для сетевых подключений TCP/IP, действуют как информация об адресе, идентифицируя отправителей и получателей сообщения. Номера портов позволяют различным приложениям в одной сети одновременно использовать ресурсы.
- Как найти номера портов?
Чтобы найти номер порта определенного IP-адреса, перейти в командную строку , тип netstat -a , затем нажмите Входить . Вы увидите список активных TCP-соединений, а также IP-адреса и номера портов, разделенные двоеточием.
- Могу ли я подключиться к порту 0?
Нет. Официально порта 0 не существует, и вы не можете к нему подключиться, так как это неверный номер порта. Однако вы можете отправлять интернет-пакет на порт 0 и обратно так же, как и с другим номером порта.