Atunci când se utilizează TCP, dispozitivele trebuie să stabilească mai întâi o conexiune cu un sistem peer înainte ca transmisia să
poată avea
loc astfel încât sesiunea orientată pe conexiune să fie stabilită între gazda A
și gazda B O mașină va iniția conexiunea care trebuie apoi acceptată de cealaltă mașină.
Protocoalele modulelor software din sistemele de operare ale dispozitivelor gazdă comunică între
ele prin trimiterea de mesaje prin rețea pentru a verifica dacă transferul
este autorizat și că ambele părți
sunt pregătite pentru transmiterea datelor.
Pentru aceasta, are loc o strângere de mână în trei direcții între dispozitivele gazdă care utilizează TCP.
Deci, gazdă care inițiază sesiunea va seta pavilionul SYN sau bitul SYN din antetul
TCP al segmentului inițial trimis către gazda B.
Gazda A va alege, de asemenea, un număr inițial de secvență care,
în acest exemplu, să spunem 100.
Deci, stegul de comandă SYN este setat și numărul
secvenței este setat la o valoare inițială de 100.
Acest lucru este apoi folosit pentru a porni procesul de strângere de mână.
Acest segment de sincronizare specifică și numărul portului la care expeditorul dorește să
se conecteze, de exemplu portul 80 sau HTTP.
Gazda din partea dreaptă va aștepta o cerere de conectare de la clientul la distanță,
în acest caz gazdă A.
când SYN este recepționat și acceptat
gazdă b va trimite înapoi un segment TCP cu ambele seturi SYN și ACK.
Deci, simbolurile de control SYN și ACK sunt setate și se
utilizează pentru a negocia conexiunea și pentru a confirma primirea segmentului
de sincronizare a inițialelor a expeditorului.
B stabilește, de asemenea, un număr de secvență inițială pentru a indica
următorul număr de secvență al următorului octet de date pe care se
așteaptă să îl primească de la gazda A.
gazda B stabilește, de asemenea, steagul de confirmare, în acest
caz 101 un flag ACK indică următoarea porțiune de date pe care gazda așteaptă să o primească.
Așa că gazda A a trimis inițial un număr de secvență de 100
și gazdă B, în acest caz, presupunând că o dimensiune a ferestrei de 1 trimite o confirmare a
unui număr de 101.
Cel de-al treilea pas în strângerea de manevre în trei direcții este locul unde
gazda inițiatoare, în acest caz, gazda A a primit SYN-ul de la gazda B și trimite înapoi un segment TCP cu câmpul de control
setat la ACK, cu alte cuvinte, confirmare. 36 Gazdă A recunoaște, așadar, segmentul următor pe care se așteaptă să
îl primească de la gazda B în acest caz 301, inițial gazda B a trimis un număr de ordine de 300.
Astfel, gazda A așteaptă următorul segment 301.
Gazdă A stabilește numărul secvenței sale la 101.
Segmentul inițial trimis a fost de 100, iar următorul, în acest caz, este 101 deoarece biți SYN sau flagul SYN
sunt dezactivate, ceea ce confirmă
faptul că strângerea de mână în trei direcții sa încheiat cu succes.
Doar pentru a reitera, biții sau semnalele de control inițiale A trimit un
segment cu setul de biți SYN sau flag SYN.
Deci, simbolul de control SYN este setat la 1. 46 Gazdă B în a doua etapă a strângere de
mână în trei direcții își stabilește steagurile sau biții de control la SYN ACK.
Cu alte cuvinte, bitul SYN este setat la
1 și bitul ACK este setat la 1.
În ultima etapă a procesării
în trei direcții, gazda A stabilește bitul ACK la 1 sau este activat stegulețul ACK.
Bitul SYN sau flagul SYN este setat la 0 pentru a indica faptul că strângerea
de mână în trei direcții sa terminat cu succes.
Acum, numerele de secvențe și confirmările pot provoca o mulțime de confuzii. Deci le voi explica
mai detaliat acum.
În acest exemplu, presupunem că se folosește o dimensiune a ferestrei de 1.
Acum, dacă vă amintiți dimensiunea ferestrei este cantitatea maximă de date pe
care receptorul o poate primi de la un expeditor și procesează corect. 59 Deci, vom presupune că numai un
segment poate fi transmis în orice moment înainte de primirea unei
confirmări de confirmare a primirii acelui segment.
Deci, să presupunem că A începe cu un număr de secvență inițial
de 5 din cauza unei dimensiuni a ferestrei de 1, doar un segment poate fi trimis de la A la B.
B primește cu succes segmentul de la A și
recunoaște segmentul următor pe care dorește să îl primească.
astfel încât, mai degrabă decât să recunoască primirea numărului
de secvență de 5, recunoaște pentru
secventa numărul 6 care implică faptul că toate numerele de secvențe precedente vor primi corect.
Astfel, B recunoaște în acest caz numărul secvenței 6, dar B poate începe
cu un număr de secvență inițial de 10. 71 astfel încât în ​​antetul TCP B îi spune lui
A că numărul său secvențial inițial este de 10 și că succesiunea sa a primit numărul secvenței 5
de la A și așteaptă numărul secvenței 6 de la A în următorul pachet.
Să presupunem că primește segmentul astfel încât
A va trimite segmentul 6 către B cu alte cuvinte
următorul număr de secvență.
A recunoaște, de asemenea, primirea segmentului 10 de la gazda B.
Deci A a primit cu succes segmentul cu numărul de ordine 10.
Rețineți încă o
dată că gazda poate alege aleatoriu numerele
de secvență inițiale și, prin urmare, în
strângerea de mână inițială în trei direcții, informațiile trebuie comunicate între
cele două gazde, astfel încât să știe care sunt numerele de secvență inițiale. 84 Deci, încă o dată A trimite secvența numărul 6 la B și recunoaște secvența 11.
Să presupunem că B primește cu
succes acel segment și, prin urmare, va recunoaște pentru segmentul 7.
Următorul segment pe care se așteaptă
să îl primească din nou 7 în confirmare indică faptul că segmentul anterior a fost primit cu succes.
Deci, gazdă B prin setarea numărului de secvență la 7 se spune hostului A că numărul
secvenței 6 a fost primit cu succes.
Gazdă B trimite secvența numărul 11 ​​deoarece acesta este următorul număr
de secvență pe care A se așteaptă să îl primească.
Lucrul la care trebuie remarcat încă o dată este faptul că numerele de
secvență inițială pe care gazda se așteaptă să le primească și succesiunea
numărului de exemplu 11 implică faptul că numărul secvenței 10 și numărul secvenței anterioare au fost primite cu succes.
Acum, încă o dată controlul fluxului previne o problemă în care expeditorul trimite atât de multe
date 99 că tampoanele receptorului sunt supraîncărcate.
Dacă aceasta este o mașină foarte puternică și aceasta este o mașină mai veche care nu este la fel de puternic, este posibil ca A să poată depăși tampoanele lui B pentru că trimite atât de multe date. 103 Așadar, B are nevoie de un mecanism care să spună lui A o încetinire, astfel încât D să
poată procesa cu succes traficul pe care îl primește. 105 De exemplu, să presupunem că dimensiunea ferestrei în acest exemplu este de
3, în loc de 1. 107 Prin urmare, A poate trimite 3 segmente de date înainte de a obține o confirmare. 108 Avantajul creșterii dimensiunii ferestrei este că viteza de transfer poate crește dramatic deoarece o gazdă poate trimite mai multe date cu mai puține recunoașteri și, prin urmare, temporizatorii rotunjiți scad dramatic. 111 Astfel, în acest exemplu A trimite 3 segmente la B. 112 Să presupunem că
tamponul primit de B este plin și nu poate gestiona acea cantitate de date 114 B va trimite un indicator gata la A 115 și face acest lucru prin setarea dimensiunii ferestrei la 0.
Acest lucru îi spune expeditorului să înceteze trimiterea datelor și așteptați indicatorul gata de la receptor. 118 Presupunând că gazda B a reușit acum să proceseze datele în tamponul său de recepție și poate primi acum mai multe date. 120 Poate trimite un indicator gata la A, să-i spună să reia trimiterea datagramelor.
astfel încât A reia transmisia trimițând, de exemplu, 3 segmente către B. 122 Deoarece dimensiunea ferestrei este de 3. 123 Așadar, vă rugăm să rețineți că, în fundal, gazda TCP implică în conversație poate negocia diverși
parametri și unul dintre ei este controlul fluxului 125 în cazul în care un receptor, poate spune unui expeditor de încetinire sau de a opri trimiterea de date 126 până când receptorul are spațiu tampon disponibil pentru a recepționa segmentele transmise.
Acest lucru permite comunicarea între un telefon foarte puternic sau mașină rapidă și o mașină mai lentă sau mai puțin puternică unde pot negocia rata de transmisie.