Pentru ce este folosit portul 0?

Cuprins:

Pentru ce este folosit portul 0?
Pentru ce este folosit portul 0?
Anonim

Portul 0 are o semnificație specială în programarea în rețea, în special în sistemul de operare Unix când vine vorba de programarea socket-ului, unde portul este folosit 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 numerelor de porturi, portul 0 este un port rezervat în rețelele TCP/IP, ceea ce înseamnă că nu ar trebui utilizat în mesajele TCP sau UDP. Porturile de rețea în TCP și UDP variază de la numărul zero până la 65535. Numerele de porturi cuprinse între zero și 1023 sunt definite ca porturi neefemere, porturi de sistem sau porturi binecunoscute. Internet Assigned Numbers Authority (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 TCP/UDP 0 în programarea în rețea

Image
Image

Configurarea unei noi conexiuni la soclu de rețea necesită alocarea unui număr de port 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 are porturi de sistem desemnate prealocate pentru aplicațiile de internet de bază, 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 de la sistemul de operare al dispozitivului lor de fiecare dată când rulează.

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 tare) pentru bind() 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 o poate folosi în prezent.

În mod alternativ, poate furniza portul 0 pentru 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 ceea ce privește gestionarea portului 0, dar se aplică aceeași convenție generală.

Port 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 furnizori de servicii de internet (ISP) blochează traficul pe portul 0, atât mesajele primite, cât și cele trimise, pentru a se proteja împotriva acestor exploatari.

Întrebări frecvente

    Care sunt numerele de port?

    Numerele de porturi 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ă, tastați netstat -a, apoi apăsați Enter. Veți vedea o listă de conexiuni TCP active împreună cu adrese IP și numere de porturi separate prin două puncte.

    Ma 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 invalid. 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.

Recomandat: