Ce este folosit portul 0?

Portul 0 nu este un număr real de port, dar există un scop pentru acesta

Spre deosebire de cele mai multe numere de porturi , portul 0 este un port rezervat în rețea TCP / IP , ceea ce înseamnă că nu ar trebui să fie utilizat în mesajele TCP sau UDP .

Portul 0 are o semnificație deosebită în programarea rețelei , în special în programarea socket-urilor Unix, pentru a solicita porturi dinamice, alocate sistemului. Port zero este ca un port de tip wildcard care spune sistemului să găsească un număr corespunzător de port.

Porturile de rețea din gama TCP și UDP variază de la numărul zero până la 65535. Numerele de port în intervalul dintre zero și 1023 sunt definite ca porturi de sistem sau porturi bine-cunoscute. Autoritatea pentru Numere Atribuite pe Internet (IANA) menține o listă oficială a utilizării intenționate a acestor numere de porturi pe internet, iar portul de sistem 0 nu trebuie utilizat.

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

Configurarea unei noi conexiuni de rețea socket necesită alocarea unui număr de port atât pe partea sursă, cât și pe cea de destinație. Mesajele TCP sau UDP trimise de inițiator (sursa) conțin ambele numere de port astfel încât destinatarul mesajului (destinație) să poată emite mesaje de răspuns la punctul final al protocolului.

IANA are porturi de sistem desemnate pentru aplicații de bază de Internet cum ar fi serverele web (port 80), dar multe aplicații de rețea TCP și UDP nu au propriul port de sistem și trebuie să obțină unul din sistemul de operare al dispozitivului de fiecare dată când rulează.

Pentru a aloca numărul portului său sursă, aplicațiile apelează funcțiile de rețea TCP / IP precum bind () pentru a solicita unul. Aplicația poate furniza un număr fix (codificat) pentru a lega () dacă preferă să solicite un anumit număr, dar o astfel de cerere poate eșua deoarece o altă aplicație care rulează în sistem îl poate folosi în prezent.

Alternativ, acesta poate furniza portul 0 pentru a lega () ca parametru de conectare în schimb. Acest lucru declanșează sistemul de operare pentru a căuta automat și pentru a returna un port disponibil adecvat în intervalul de numere din portul TCP / IP dinamic.

Rețineți că aplicația nu va primi de fapt portul 0, ci mai degrabă un alt port dinamic. Avantajul acestei convenții de programare este eficiența. În loc să fie nevoie ca fiecare aplicație să implementeze și să execute cod pentru încercarea mai multor porturi până când acestea obțin una validă, aplicațiile se pot baza pe sistemul de operare pentru a face acest lucru.

Unix, Windows și alte sisteme de operare diferă ușor în privința manipulării cu portul 0, însă se aplică aceeași convenție generală.

Portul 0 și securitatea rețelei

Traficul de rețea trimis prin Internet la gazde ascultând pe portul 0 ar putea fi generat de atacatorii 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 pot ajuta atacatorii să afle mai multe despre comportamentul și potențialele vulnerabilități de rețea ale acestor dispozitive.

Mulți furnizori de servicii de internet (ISP) blochează traficul pe portul 0 (atât mesajele primite, cât și cele trimise) pentru a vă proteja împotriva acestor exploate.