Какой самый большой номер порта можно использовать?
Какой самый большой номер порта можно использовать?
Ответы:
Номер порта представляет собой 16-разрядное целое число без знака, то есть 65535.
Самый большой номер порта - это беззнаковое короткое 2 ^ 16-1: 65535
Зарегистрированный порт - это порт, назначенный Интернет-корпорацией по присвоению имен и номеров (ICANN) для определенного использования. Каждый зарегистрированный порт находится в диапазоне 1024–49151.
С 21 марта 2001 года регистрационным агентством является ICANN; до этого времени это была IANA.
Порты с номерами ниже, чем у зарегистрированных портов, называются хорошо известными портами; порт с номерами, превышающими номера зарегистрированных портов, называются динамическими и / или частными портами.
Насколько я понимаю, вы должны использовать только до 49151, так как от 49152 до 65535 зарезервированы для эфемерных портов
$ cat /proc/sys/net/ipv4/ip_local_port_range
результаты в выходе 32768 61000
. Что касается того, следует или не следует использовать порт в эфемерном диапазоне портов своей системы, я подозреваю, что большинство, если не все современные сетевые операционные системы, будут пропускать порт, который уже используется.
Просто продолжение ответа Smashery . Эфемерный диапазон портов (по крайней мере в Linux, и я подозреваю, что и другие Unices) не является фиксированным. Это можно контролировать, написав
/proc/sys/net/ipv4/ip_local_port_range
Единственное ограничение (в отношении IANA) состоит в том, что порты ниже 1024 назначаются как хорошо известные порты. Порты выше, которые бесплатны для использования. Часто вы обнаружите, что порты ниже 1024 ограничены доступом суперпользователя, я думаю, именно по этой причине.
Согласно RFC 793, порт является 16-битным беззнаковым целым.
Это означает, что диапазон составляет 0 - 65535.
Однако в этом диапазоне порты 0–1023 обычно зарезервированы для определенных целей. Я говорю вообще, потому что, кроме порта 0, обычно нет применения резервирования 0-1023. Реализации TCP / UDP обычно не требуют резервирования, кроме 0. Вы можете, если хотите, запустить порт TLS веб-сервера на порту 80, или 25, или 65535 вместо стандартного 443. Аналогично, даже если это так. Стандарт, который SMTP-серверы слушают через порт 25, вы можете запустить его на 80, 443 или других.
Большинство реализаций резервируют 0 для конкретной цели - случайного назначения порта. Поэтому в большинстве реализаций выражение «прослушивать порт 0» фактически означает «мне все равно, какой порт я использую, просто дайте мне какой-нибудь случайный неназначенный порт для прослушивания».
Поэтому любое ограничение на использование порта в диапазоне 0-65535, включая 0, диапазон временного резервирования и т. Д., Зависит от конкретной реализации (т. Е. ОС / драйвера) , однако все, включая 0, являются действительными портами в RFC 793.
Это зависит от того, о каком диапазоне вы говорите, но динамический диапазон возрастает до 65535 или 2 ^ 16-1 (16 бит).
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
Допустимые номера для портов: от 0 до 2 ^ 16-1 = от 0 до 65535
Это потому, что номер порта имеет длину 16 бит.
Однако порты делятся на:
общеизвестные порты : от 0 до 1023 (используются для системных служб, например, HTTP, FTP, SSH, DHCP ...)
Зарегистрированные / пользовательские порты : от 1024 до 49151 (вы можете использовать его для своего сервера, но Остерегайтесь некоторых известных приложений: например, сервер системы управления базами данных Microsoft SQL Server или сервер Apache Derby Network Server уже используют этот диапазон, т.е. не рекомендуется назначать порт MSSQL вашему серверу, в противном случае, если MSSQL работает, то ваш сервер наиболее вероятно, не будет работать из-за конфликта портов)
Динамические / частные порты : от 49152 до 65535. (не используются для серверов, а не для клиентов, например, в службе NATing)
При программировании вы можете использовать любые числа от 0 до 65535 для вашего сервера, однако вы должны придерживаться диапазонов, упомянутых выше, в противном случае некоторые системные службы или некоторые приложения не будут работать из-за конфликта портов.
Проверьте список большинства портов здесь: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers