Для чого використовується порт 0?

Порт 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 (), щоб запитувати їх. Додаток може надати фіксований (жорстко закодований) номер для прив'язки (), якщо вони віддають перевагу запиту конкретного номера, але такий запит може не вдатися, оскільки інша програма, що працює в системі, зараз може використовувати його.

Крім того, він може надати порту 0 прив'язувати () як свій параметр з'єднання. Це запускає операційну систему для автоматичного пошуку та повернення відповідного доступного порту в динамічному діапазоні номерів портів TCP / IP.

Додаток не надає порт 0, а якийсь інший динамічний порт. Перевагою цієї програми програмування є ефективність. Замість того, щоб кожен додаток впроваджував і запускав код, щоб спробувати кілька портів, поки вони не отримають дійсний, програми покладаються на операційну систему.

Unix, Windows та інші операційні системи відрізняються в обробці порту 0, але застосовується та ж загальна норма.

Порт 0 та безпека мережі

Мережевий трафік, що надсилається через Інтернет хостам, які прослуховують порт 0, може генеруватися від мережевих зловмисників або випадково через неправильно запрограмовані програми. Повідомлення відповідей, які хости генерують у відповідь на порт 0 трафіку, допомагають зловмисникам дізнатися поведінку та потенційні вразливості мережі цих пристроїв.

Багато постачальників послуг Інтернету блокують трафік на порту 0 - як вхідні, так і вихідні повідомлення - для захисту від цих подвигів.