Un protocol numit TCP Flow Control a fost creat pentru a controla fluxul de date dintre utilizator și server.
Se asigură că este disponibilă o anumită lățime de bandă pentru trimiterea și primirea datelor, astfel încât procesarea să poată continua fără a întâmpina probleme serioase.
Protocolul TCP folosește o metodă cunoscută sub numele de protocolul ferestrei glisante pentru a realiza acest lucru.
Vom arunca o privire profundă asupra controlului fluxului TCP în această piesă, inclusiv modul în care funcționează și, cel mai important, protocolul ferestrei glisante.
Ce este TCP Flow Control?
Protocolul TCP asigură stabilirea unui canal de comunicare fiabil într-o rețea imprevizibilă.
Pachetele de date se pot pierde, pot ajunge din secvență, se pot face copii de siguranță în rețea sau se pot supraîncărca pe nodul receptor pe măsură ce sunt trimise de la un nod la altul.
Cu toate acestea, în timpul dezvoltării unei aplicații, de obicei nu trebuie să ne confruntăm cu această complexitate; în schimb, trimitem doar câteva date la un socket, iar TCP se asigură că pachetele sunt livrate cu succes la nodul destinatar.
Controlul fluxului este o caracteristică suplimentară crucială pe care o oferă TCP.
Prin utilizarea controlului fluxului, TCP se va asigura în esență că un expeditor nu trimite unui receptor prea multe pachete simultan.
Cum funcționează Protocolul de control al transferului – Controlul fluxului?
Acest lucru se întâmplă de obicei atunci când trebuie să comunicăm date printr-o rețea.
Aplicația expeditoare trimite date la un socket, stratul de transport (în acest caz, TCP) împachetează aceste date într-un segment, iar stratul de rețea (de exemplu, IP) transmite acest pachet nodului receptor pe o anumită rută.
Stratul de rețea va transmite aceste date către TCP la capătul de recepție al conversației, iar TCP le va pune la dispoziția aplicației de primire ca un duplicat identic al datelor furnizate.
TCP nu va livra pachete necorespunzătoare și va aștepta retransmiterea în cazul în care detectează un interval de flux de octeți.
Aceasta este ceea ce vom vedea dacă vom mări.
Atât bufferele de transmisie, cât și cele de recepție pe TCP sunt utilizate pentru a păstra datele care trebuie trimise și, respectiv, primite.
Datele din memoria tampon de primire vor fi apoi citite de aplicație când este pregătită.
Asigurarea că nu trimitem pachete suplimentare în timp ce tamponul de primire al receptorului este deja plin este scopul principal al controlului fluxului, deoarece acest lucru ar forța receptorul să arunce pachete suplimentare pe care nu le-ar putea gestiona.
Receptorul își va anunța Fereastra de primire sau spațiul disponibil în bufferul de recepție, pentru a limita cantitatea de date pe care TCP le poate transfera.
Protocolul ferestrei glisante
Protocolul ferestrei glisante în TCP este una dintre cele mai utilizate metode de control al fluxului. Este o procedură de dimensiune variabilă, orientată pe octeți.
În această abordare, receptorul trimite expeditorului fereastra receptorului de îndată ce emițătorul și receptorul sunt conectați.
Dimensiunea buffer-ului curent al receptorului este denumită fereastra receptorului.
Cantitatea de date care poate fi trimisă în continuare fără confirmare este acum calculată de TCP pe baza fereastra de receptor disponibilă.
TCP, totuși, oprește transferul de date dacă dimensiunea ferestrei receptorului este 0 și așteaptă ca aceasta să crească.
Dimensiunea ferestrei receptorului este o componentă a cadrului TCP.
Dimensiunea maximă a ferestrei este de 65,535 de octeți, deoarece are o dimensiune a ferestrei de 16 biți.
Dimensiunile ferestrei sunt alese de destinatar. Cu fiecare mesaj de confirmare, receptorul transmite dimensiunea ferestrei receptorului care este disponibilă în prezent.
Procesul de protocol al ferestrei glisante
Când se utilizează tehnica protocolului ferestrei glisante, sunt stabilite două buffere atunci când emițătorul și receptorul se conectează.
Aceste două buffere sunt împărțite în două grupuri: fereastra de trimitere, care aparține expeditorului și fereastra de primire, care aparține receptorului.
Fereastra de recepție redă spațiul tampon de recepție rămas atunci când expeditorul transmite date către receptor.
Ca urmare, expeditorul este limitat la cantitatea de date care poate încadra în memoria tampon de primire.
Fereastra de transmisie din exemplul de mai sus transmite date către fereastra de recepție.
După primirea datelor, fereastra de recepție trimite o confirmare, iar apoi fereastra de transmitere transmite un nou cadru de date.
De data aceasta, totuși, fereastra de primire trimite în plus un mesaj care afirmă că memoria disponibilă este umplută în plus față de confirmarea pe care a primit-o.
Fereastra de transmisie întrerupe transmisia de date până când primește confirmarea de la fereastra de recepție că spațiul a fost eliberat, moment în care poate relua transmisia de date.
Concluzie
În concluzie, stratul de conexiune de date și stratul de transport sunt responsabile pentru gestionarea problemelor de control al fluxului.
Obiectivul de bază al mecanismului de control al fluxului este de a opri receptorul să devină supraîncărcat cu date de la emițătorul care transmite mai rapid.
Chiar dacă datele transferate de către expeditor sunt fără erori și sunt trimise la o rată mai rapidă datorită unei mașini puternice, este posibil ca receptorul celui mai lent să nu poată gestiona rata mai rapidă de date și, prin urmare, să piardă unele date.
Lasă un comentariu