Pentru ce este folosit portul 0?

Portul 0 are o semnificație specială în programarea rețelei, în special în Unix OS când vine vorba de programarea prizei unde portul este utilizat pentru a solicita porturi dinamice alocate de sistem. Portul 0 este un port wildcard care spune sistemului să găsească un număr de port adecvat.

Spre deosebire de majoritatea numere de port, portul 0 este un port rezervat în TCP/IP networking, ceea ce înseamnă că nu ar trebui să fie utilizat în TCP sau UDP mesaje. Porturile de rețea în TCP și UDP variază de la numărul zero până la 65535. Numerele de porturi în intervalul dintre zero și 1023 sunt definite ca porturi neefemere, porturi de sistem sau porturi cunoscute. Internet Assigned Numbers Authority (IANA) menține un listare oficiala de utilizarea prevăzută a acestor numere de porturi pe internet, iar portul de sistem 0 nu trebuie utilizat.

Cum funcționează portul TCP/UDP 0 în programarea în rețea

Un tehnician IT folosește un computer printre rafturi de server.
Jetta Productions / Getty Images

Configurarea unei noi conexiuni la socket de rețea necesită ca un număr de port să fie alocat atât pe partea sursă, cât și pe cea destinație. Mesajele TCP sau UDP trimise de emitent (sursă) conțin ambele numere de port, astfel încât destinatarul mesajului (destinația) să poată emite mesaje de răspuns către punctul final de protocol corect.

IANA a pre-alocat porturi de sistem desemnate pentru aplicații de bază de internet, cum ar fi web servere (portul 80), dar multe aplicații de rețea TCP și UDP nu au propriul port de sistem și trebuie să obțină unul de la dispozitivul lor sistem de operare de fiecare dată când fug.

Pentru a-și aloca numărul portului sursă, aplicațiile apelează funcții de rețea TCP/IP precum bind() pentru a solicita unul. Aplicația poate furniza un număr fix (codat greu) pentru bind() dacă preferă să solicite un anume număr, dar o astfel de solicitare poate eșua deoarece o altă aplicație care rulează pe sistem poate fi în prezent folosind-o.

Alternativ, poate furniza portul 0 la bind() ca parametru de conexiune. Acest lucru determină sistemul de operare să caute și să returneze automat un port disponibil adecvat în intervalul de numere de porturi dinamice TCP/IP.

Aplicației nu i se acordă portul 0, ci mai degrabă un alt port dinamic. Avantajul acestei convenții de programare este eficiența. În loc ca fiecare aplicație să implementeze și să ruleze cod pentru a încerca mai multe porturi până când obține unul valid, aplicațiile se bazează pe sistemul de operare.

Unix, Windows, și alte sisteme de operare variază în gestionarea portului 0, dar se aplică aceeași convenție generală.

Portul 0 și securitatea rețelei

Traficul de rețea trimis pe internet către gazdele care ascultă pe portul 0 poate fi generat de atacatori de rețea sau accidental de aplicații programate incorect. Mesajele de răspuns pe care gazdele le generează ca răspuns la traficul portului 0 îi ajută pe atacatori să învețe comportamentul și potențialele vulnerabilități ale rețelei respectivelor dispozitive.

Mulți furnizorii de servicii de internet (ISP-urile) blochează traficul pe portul 0, atât mesajele de intrare cât și cele de ieșire, pentru a se proteja împotriva acestor exploit-uri.

FAQ

  • Ce sunt numerele de port?

    Numerele de port utilizate pentru conexiunile de rețea TCP/IP acționează ca informații despre adresă, identificând expeditorii și receptorii unui mesaj. Numerele de port permit diferitelor aplicații din aceeași rețea să partajeze resurse în același timp.

  • Cum găsesc numerele de port?

    Pentru a găsi numărul de port al unei anumite adrese IP, accesați promptul de comandă, tip netstat -a, apoi apăsați introduce. Veți vedea o listă de conexiuni TCP active împreună cu adrese IP și numere de porturi separate prin două puncte.

  • Mă pot conecta la portul 0?

    Nu. Oficial, portul 0 nu există și nu vă puteți conecta la el, deoarece este un număr de port nevalid. Cu toate acestea, puteți trimite un pachet de internet către și de la portul 0 la fel ca și cu un alt număr de port.