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 sistemul de operare Unix atunci când vine vorba de programarea socket-urilor în care portul este utilizat pentru a solicita porturi dinamice alocate sistemului. Portul 0 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 a prealocat porturile de sistem desemnate pentru aplicații de bază de Internet cum ar fi serverele web (portul 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 solicitare poate eșua deoarece o altă aplicație care rulează pe sistem îl poate folosi în prezent.
În mod alternativ, poate să furnizeze portul 0 pentru a lega () ca parametru de conectare. 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 - ambele mesaje primite și trimise - pentru a vă proteja împotriva acestor exploate.