In acest articol incepem discutia despre protocolul TCP. Mai exact vom afla ce este protocolul TCP, unde il folosim si cum functioneaza acesta. Hai sa incepem !
Continutul articolului
Ce este Protocolul TCP ?
TCP vine de la Transmission Control Protocol si fix asta face, asigura controlul transmisiunilor.
El este un protocol care face parte (impreuna cu UDP) din nivelul 4 din modelul OSI, mai exact nivelul Transport. Daca nu esti familiar cu modelul OSI, te invit sa urmaresti tutorialul de mai jos:
TCP este un protocol pe care il folosim tot timpul (fara sa ne dam seama). Spre exemplu in momentul in care descarcam un fisier de pe Internet, sau accesam o pagina web sau ne conectam in vreun fel la un dispozitiv de retea, in fiecare dintre aceste situatii folosim acest protocol.
Si acum vine intrebarea: De ce ? De ce avem nevoie el ?
Pentru ca TCP-ul ne permite sa avem conexiunile (sau mai exact datele transmise de la server) exact asa cum ar trebui ele sa fie.
Astfel in momentul in care descarcam un fisier (prin FTP), TCP-ul se va asigura ca fiecare bit din fisierul primit este identic cu fisierul de pe acel server, se va asigura ca pachetele isi pastreaza ordinea, iar in cazul in care se pierd pachete pe drum, le va asigura retransmiterea.
Asadar, acestea sunt o parte din caracteristicile si avantajele protocolului TCP:
- Asigura retransmiterea pachetelor (in cazul in care acestea se “pierd pe drum”)
- Ordoneaza pachetele ajunse la destinatie (acestea pot ajunge diferit fata de cum au fost trimise)
- Stabileste o conexiune intre client si server
TCP-ul reuseste sa faca toate acestea cu ajutorul unor tipuri de mesaje speciale:
- SYN, ACK, FIN
- PSH, RST, URG
In figura de mai jos, poti vedea arata header-ul acestui protocol:
Iar in figura urmatoare, poti vedea cum arata ele in Wireshark:
Avand toate aceste campuri in header-ul protocolului, TCP-ul ne poate asigura:
TCP asigura ordinea si retransmiterea in caz de pierdere de pachete, cu ajutorul numerelor de secventa (sequence number).
Fiecare pachet (sau grup de pachete) are asociate un numar de secventa. Daca destinatarul primeste un anumit numar de pachete (definit de numarul de secventa), atunci acesta va trimite inapoi un mesaj de confirmare (ACK) pentru aceste pachete primite:
Astfel, este usor pentru destinatar sa-si dea seama ce pachete au ajuns la el si ce pachete trebuiesc retransmise. In cazul in care sursa (clientul) nu primeste o confirmare (ACK) pentru vreun pachet, atunci el va retransmite acele pachete. Daca vrei sa afli mai multe despre ce este protocolul TCP si cum functioneaza, te invit sa urmaresti tutorialul de mai jos:
In momentul in care 2 dispozitive doresc sa trimita trafic intre ele, mai intai, trebuie sa aiba loc o conexiune intre client si server, denumita the 3-Way Handshake.
Cum stabilim o conexiune intre Client si Server ? (3-Way Handshake)
Dupa cum spuneam si mai devreme, in momentul in care un server trebuie sa comunice cu un client, cei 2 vor forma o conexiune intre ei cu ajutorul 3-Way Handshake-ului, care functioneaza in felul urmator:
In prima faza, Clientul (cel care incepe conexiunea) ii va trimite serverului:
- Un mesaj de sincronizare (SYN) sau de incepere a conexiunii
- Serverul va raspunde cu o confirmare (SYN-ACK)
- Clientul va raspunde si el cu un mesaj de confirmare (ACK)
Iata o captura in Wireshark cu cele 3 pachete prezentate mai sus:
Astfel a fost stabilita conexiunea TCP (prin 3-way handshake) intre client si server. Acum cele 2 dispozitive pot comunica (transmite trafic web, transfer de fisier etc.). Acest mecanism ne ajuta sa stabilim o ordine pentru fiecare pachet in parte, sa ne asiguram ca au ajuns toate la destinatie, iar in caz de esec sa retransmitem pachetele.
Cum se incheie conexiunea TCP formata ?
Dupa au fost transmise toate pachetele, conexiunea trebuie sa se incheie. Acest fapt se intampla similar cu cel de la 3-way handshake, doar ca de data aceasta se vor folosi 4 pachete:
- Clientul va trimite un FIN (mesaj de finalizare/incheiere a conexiunii)
- Serverul va raspunde cu un mesaj de confirmare (FIN-ACK)
- Serverul va trimite si el un mesaj FIN
- Iar clientul va raspunde cu un FIN-ACK
Iata si captura in Wireshark cu conceptele discutate mai sus:
Si astfel conexiunea TCP dintre cele 2 device-uri se va incheia. De asemenea protocolul TCP foloseste anumite port-uri care au la baza un set de numere cu ajutorul carora identifica diferite aplicatii de retea. Iti recomand sa citesti acest articol pentru a afla mai multe despre port-uri.
PROVOCAREA TCP – Web
Fiecare dintre elementele discutate mai devreme se aplica in fiecare secunda, in practica. Dupa cum spuneam, TCP-ul este folosit si pentru aplicatii si servere Web. Te invit sa urmaresti tutorialul de mai jos, pentru a vedea cum poti seta un server WEB, dupa care te provoc sa identifici cu Wireshark tipurile de pachete TCP si sa vezi si traficul HTTP generat intre tine (client) si server.
Te Felicit si iti Multumesc 🙂
Te Felicit pentru ca ai ales sa inveti mai multe si sa devi mai bun si iti multumesc pentru interes si atentia acordata. In acest articol ai aflat ce este protocolul TCP, cum functioneaza acesta si cum ne ajuta sa stabilim conexiuni prin Internet.
Daca esti interesat sa inveti mai multe despre Retele de Calculatoare, atunci iti recomand cartea mea “Introducere in Retele de Calculatoare”, care este #1 Best-Seller pe Amazon. Notiunile explicate in aceasta carte te vor ajuta extrem de mult sa intelegi atat elementele teoretice cat si cele practice care au de a face cu retelele de calculatoare, internetul si cu configurarea echipamentelor Cisco.
Click AICI pentru a afla mai multe. Spor la invatat iti doresc, Ramon
Trackbacks/Pingbacks