ntr-un calculator ruleaza doua protocoale de baza, care asigura transmiterea datelor prin internet. Acestea doua sunt TCP si UDP, ele urmaresc si sustin activitatea in internet a aplicatiilor.
Cum reusesc TCP si UDP acest lucru?
Simplu. Pentru a diferentia datele pentru fiecare aplicatie, TCP si UDP adauga in componenta pachetelor trimise un numar unic. Aceste numere unice se numesc port numbers sau numerele porturilor.
Port numbers sunt adresate in diferite moduri, in functie de tipul mesajului, daca acesta este o cerere sau un raspuns. Programele server au porturi alocate static, in timp ce programele client isi aloca dinamic port numbers pentru fiecare conexiune.
Cand un program trimite o cerere, port number-ul continut in pachet ca si destinatie, este acel port number care este alocat acelui tip de server. Softul client trebuie sa cunoasca ce port number este asociat acelui tip de server. Acest numar este de obicei un numar rezervat sau este alocat manual. De exemplu, cand un browser face o cerere la un server, acesta foloseste protocolul TCP pe portul 80, daca nu este specificat alt port number pentru acel server. De ce? Pentru ca portul TCP 80 este rezervat pentru serverele web. Acesta este doar un exemplu, dar sunt multe aplicatii care au un port number rezervat.
Port number-ul sursa din cererea unui client este adresat dinamic, fiind un numar mai mare de 1023 si sa nu fie folosit de alt program pe acel sistem. Acest port number sursa functioneaza ca si o adresa de revenire pentru programul client. Astfel TCP si UDP tin evidenta port-urilor deschise de aplicatii, pentru a face forward corect raspunsurilor venite de la server. Port number-ul deschis de client este folosit ca si port destinatie in raspunsul trimis de server.
Combinatia dintre port number si adresa ip se numeste socket si identifica procesul daemon care ruleaza pe server.
De exemplu o cerere HTTP trimisa la server pe port number 80, server aflat la adresa ip 192.168.20.1, este destinata socket-ului 192.168.20.1:80.
Web browserul care face cererea la server are adresa 192.168.100.12 de pe portul 33198, pagina web este trimisa de server socket-ului 192.168.100.12:33198.
Autoritatea pentru Alocarea Numerele in Internet (IANA) aloca port numbers. IANA este o autoriate internationala care standardizeaza diferite scheme de adresare a numerelelor in internet.
Asadar exista mai multe tipuri de port numbers:
Well Known Ports (numere cuprinse in intervalul 0 - 1023): Aceste numere sunt rezervate pentru servicii si aplicatii. De obicei sunt folosite de aplicatii cum ar servere HTTP (server web), SMTP/POP3 (email server) si Telnet. Prin standardizarea port-urilor, programele client, si nu numai, pot fi programate sa comunice cu diferite servicii de pe servere, conectandu-se prin porturile specifice.
Registered Ports (1024 - 49151): Aceste port number sunt folosite de diferite programe instalate de utilizatori, de ex. messenger.
Dynamic or Private ports (49152 - 65535): mai sunt cunoscute ca si Ephemeral Ports, si sunt alocate dinamic programelor client care initiaza o conexiune. De obicei nu se folosesc aceste porturi pentru procese de tip server,exceptie fiind insa unele programe de file sharing (tip torrent).
Uneori este necesar sa stim ce porturi sunt folosite pe un sistem. Un astfel de utilitar este netstat.
Acest utilitar se gaseste pe majoritatea calculatoarelor cu sistem de operare Windows, si se deschide foarte usor:
Start -> Run -> cmd -> netstat [enter]. Mai multe optiuni foarte folositoare le puteti gasi folosind comanda netstat /? in fereastra cmd.