За какво е използван порт 0?

Порт 0 не е истински номер на порта, но има и цел за него

За разлика от повечето номера на портове , порт 0 е запазен порт в TCP / IP мрежа, което означава, че не трябва да се използва в TCP или UDP съобщения.

Порт 0 носи особено значение в мрежовото програмиране, по-специално в програмирането на сокет на Unix, за искане на динамични портове, разпределени в системата. Портът нула е като пристанище с маска, която казва на системата да намери подходящ номер на порта.

Мрежовите портове в TCP и UDP обхват от нула до 65535. Номерата на портовете в диапазона между нула и 1023 са дефинирани като системни портове или добре известни пристанища. Органът по Интернет присвоени номера (IANA) поддържа официална регистрация на предвиденото използване на тези номера на портове в интернет и системният порт 0 не трябва да се използва.

Как Порт 0 работи в мрежовото програмиране

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

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

За да разпредели номера на своя порт, приложенията наричат ​​TCP / IP мрежови функции като bind (), за да поискат един. Приложението може да предостави фиксиран (твърд) кодиран номер, за да свърже (), ако предпочита да поиска конкретен номер, но такава молба може да не успее, тъй като понастоящем може да бъде използвана от някои други изпълняващи приложения в системата.

Алтернативно, той може да осигури порт 0 за свързване () като параметър за свързване вместо него. Това задейства операционната система да търси автоматично и да върне подходящ наличен порт в диапазона на динамичните портове на TCP / IP.

Обърнете внимание, че в приложението няма да бъде предоставен порт 0, а по-скоро друг динамичен порт. Предимството на тази конвенция за програмиране е ефективността. Вместо всяко приложение, което трябва да внедрява и изпълнява код за изпробване на няколко порта, докато не получи валиден, приложенията могат да разчитат на операционната система, за да го направят.

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

Порт 0 и защита на мрежата

Мрежовият трафик се изпраща през интернет до хостове, които слушат на порт 0, може да се генерират от мрежови нападатели или случайно от неправилно програмирани програми. Съобщенията за отговор, които хостовете генерират в отговор на трафик порт 0, могат да помогнат на атакуващите да научат повече за поведението и потенциалните мрежови уязвимости на тези устройства.

Много доставчици на Интернет услуги (ISP) блокират трафика на порт 0 (входящи и изходящи съобщения), за да се предпазят от тези експлойти.