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 !

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-ul 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:

ce este protocolul tcp si cum functioneaza

 

Iar in figura urmatoare, poti vedea cum arata ele in Wireshark:

cum arata headerul protocolului tcp

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:
cum functioneaza tcp cu syn si ack

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:

  1. un mesaj de sincronizare (SYN) sau de incepere a conexiunii
  2. serverul va raspunde cu o confirmare (SYN-ACK)
  3. clientul va raspunde si el cu un mesaj de confirmare (ACK)

ce este protocolul tcp si cum functioneaza 3 way handshake

Iata o captura in Wireshark cu cele 3 pachete prezentate mai sus:

cum functioneaza protocolul tcp pe router

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:

  1. clientul va trimite un FIN (mesaj de finalizare/incheiere a conexiunii)
  2. serverul va raspunde cu un mesaj de confirmare (FIN-ACK)
  3. Serverul va trimite si el un mesaj FIN
  4. Iar clientul va raspunde cu un FIN-ACK

cum incheie tcp o conexiune intre client si server

Iata si captura in Wireshark cu conceptele discutate mai sus:

cum incheie protocolul tcp o conexiune prin mesaje fin

Si astfel conexiunea TCP dintre cele 2 device-uri se va incheia.

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.

Da un SHARE acestui articol si ABONEAZA-TE la canalul de YouTube pentru a fi la curent cu ultimele tutoriale! Conecteaza-te cu mine pe LinkedIn !

Descarca #eBook + “Manual de Comenzi Cisco

ebook gratuit retelistica ramon nastase


 

Comments

Related Posts

IT&C

Comprimarea si Arhivarea fisierelor in Ubuntu Linux | Invata Linux #6

    In acest articol continuam seria despre utilitare in Linux care ne vor face “viata mai usoara” si vorbim despre comprimarea si arhivarea fisierelor in Ubuntu Linux. Hai sa incepem ! Related Comments

IT&C

Introducere in Securitate Cibernetica | #1 Confidentialitate | Invata Securitate #1

      Introducere in Securitate Cibernetica. In acest prim articol din noua serie #InvataSecuritate vorbim despre triada CIA (Confidentialitate, Integritate, Availability). Hai sa incepem ! Related Comments

IT&C

Cum editez un fisier din Terminalul Ubuntu Linux cu VIM ? | Invata Linux #5

Continuam seria de articole in care discutam despre utilitare in Linux care ne fac “viata mai usoara”. Astazi vom afla: “Cum editez un fisier din terminalul Ubuntu Linux cu VIM“. Hai sa incepem ! Related Comments