Arma secreta di TCP: U cuntrollu di u flussu di rete è u cuntrollu di a congestion di rete

Trasportu di l'affidabilità TCP
Tutti simu familiarizati cù u protocolu TCP cum'è protocolu di trasportu affidabile, ma cumu si assicura l'affidabilità di u trasportu?

Per ottene a trasmissione affidabile, parechji fattori anu da esse cunsideratu, cum'è a corruzzione di u dati, a perdita, duplicazione, è sacchetti fora di ordine. Sì questi prublemi ùn ponu micca esse risolti, trasmissione affidabile ùn pò micca esse uttenuta.

Dunque, umpla emplismiji di u TCP cume a risposta di a Seigante, Reconnu Resta, Rit Maria di cuntrollu, di a cunnzzione, è di a finestra per ottene trasmissione affidabile.

In stu documbra, firmeremu nant'à a finestra scorrevule, cuntrollu di u flussu è u cuntrollu di conestione di TCP. U mecanismu di ritrasmissione hè cupertu separatamente in a sezione seguente.

Cuntrollu di u flussu di rete
U cuntrollu di u flussu di a reta o i sà cum'è u cuntrollu di u trafficu di reta hè in realtà una manifestazione di a relazione suttile trà i pruduttori è cumpetanti. Probabilmente avete daverte stu scenariu assai à u travagliu o in interviste. Se a capacità di pruduttore per pruduce assai supera a capacità di u cunsumadore per cunsumerà, pruvucarà a fila per cultivà indefinitamente. In un casu più seriu, pudete sapè chì quandu i messaggi di i pazzi di rabbitmq Pile, pò causà degradazione di u rendimentu di u servitore di u MQ. U stessu hè veru per TCP; Se lasciati micca marcati, troppu tanti messaggi seranu in a rete, è i cunsumatori anu supermendu a so capacità, mentre chì i pruduttori vi cuntinuà à mandà messagi duplicate, chì afecte u rendimentu di a rita.

Per indirizzà stu fenominu, TCP furnisce un mecanismu per u sveditore per cuntrullà a quantità chì u disponiu mandata basà nantu à a capacità di ricezione attuale di u cuntrollu di u flussu. U recitutu mantene una finestra ricevista, mentre u sdinatore mantene una finestra di manda. Ci hè da nutà chì queste finestre sò solu per una sola cunnessione TCP è micca tutte e cunnessione sparte una finestra.

TCP furnisce u cuntrollu di u flussu di u flussu utilizendu una variabile per una finestra di riceve. A finestra Riceve dà l'indicazione di u mittente di quantu spaziu di cache hè sempre dispunibule. U mittente cuntrola a quantità di dati mandati secondu a capacità d'accettazione attuale di u ricevitore.

L'ospitu di u destinatariu notifica u mittente di a dimensione di e dati pò riceve, è u mittente manda à stu limitu. Stu limitu hè a dimensione di a finestra, ricordate u capu TCP? Ci hè un campu di a finita, chì hè adupratu per indicà u numeru di byte chì u ricevitore hè capace o dispostu à riceve.

L'ospitu di u mittente invià periodicamente un pacchettu di sonda, chì hè adupratu per rilevà se u avvisu di u receptore hè sempre capace di accettà e dati. Quandu u buffer di u receptore hè in periculu, a dimensione di a finestra hè stabilita à un valore più chjucu per istruisce u mittente per cuntrullà a quantità di dati mandati.

Eccu un diagramma di cuntrollu di u flussu di rete:

Cuntrollu di u trafficu

Cuntrollu di congestion di rete
Prima di pruvà à pruvà à congentità, avemu bisognu di capisce chì In più di a pagetta ricevuta è a finestra manes, ci hè ancu una finestra di ciò chì u ratevura a fine di a partenza. Dunque, a finestra di congestion hè ancu mantinutu da u Senditore TCP. Avemu bisognu di un algoritmu di decide quantu dati sò adattati per mandà, postu chì invià troppu pocu o troppu dati ùn hè micca ideale, dunque u cuncettu di una finestra di congettiva.

In u cuntrollu di u flussu di rete precedente, ciò chì avemu evitata era u mittente chì riempia u cache di u receptore cù e dati, ma ùn sapemu micca ciò chì succede in a rete. Tipicamenti, e rete di l'urdinatore sò in un ambiente spartutu. Per cunsiquenza, ci pò esse congestione di rete per a cumunicazione trà altri ospiti.

Quandu a reta hè congestionatu, se un gran numaru di pacchetti sò cuntinuati da esse mandati, Pò causà prublemi cum'è ritardu è perdita di pacchetti. À questu puntu, a TCP retrancitu i dati, ma a ritransma Aumentà a carica annantu à a reta, anu risultatu in ritimu più grande è più di i pacchetti di u quadru. Questu pò entra in un ciculu viziosu è mantenevi più grande.

Cusì, TCP ùn pò micca ignurà ciò chì succede nantu à a reta. Quandu a reta hè congestionata, i sacrifici tcp si riduce u riduzzione di a quantità di dati chì manda.

Dunque, u control di u congente hè prupostu, chì si scopa di capisce a rete sana cù dati da u sveditore. Per regulà a quantità di dati u mittente duverebbe mandà, TCP definisce un cuncettu chjamatu a finestra di congestione. U supplementu di u cuntrollu di u congestione hà aghjustatu a dimensione di a finestra di congente secondu a cunghjunta à u gradu di a rete, dunque per cuntrullà a quantità di dati mandati da u sittore.

Chì hè una finestra di congestione? Chì ci vole à fà cù a finestra Mandata?

A finestra di congestione hè una variabile di u statale mantenuta da u mittente chì determina a quantità di dati chì u mittente pò mandà. A finestra di congestione cambia dinamicamente secondu u livellu di congestion di a rete.

L'inviu di a finestra hè accunsentutu à a dimensione di a finestra trà l'emittente è u ricevitore chì indica a quantità di dati chì u ricevitore pò riceve. A finestra di congestione è a finestra inviatura sò rilativi; A finestra di l'invia hè di solitu uguale à u minimu di a congestione è riceve finestre, vale à dì, snd = min (cwnd, rwnd).

A finestra di a finestra di a finestra di congestion cambia cum'è seguente:

Se ùn ci hè micca una congestione in a reta, vale à dì, ùn ci hè micca u timeout di ritrasmissione, a finestra di a congestione aumenta.

Se ci hè a congestione in a reta, a finestra di congestion diminuisce.

U mittente determina se a rete hè congestionata da l'osservazione se u pacchettu di l'acka di ricunniscenza hè ricevutu in u tempu specificatu. Se u mittente ùn riceve micca u pacchettu di ricunniscenza ACK in u tempu specificatu, hè cunsideratu chì a reta hè congestata.

In più di a finestra di congestione, hè ora di discutiri u tcoru di u congestione TCP. L'algoritmu di u cuntrollu di congestione TCP hè custituitu da trè parti principali:

Start Lento:In inizialmente, a Finestra CWND di congestion hè relativamente picculu, è u selveratore aumenta a finestra di congention esponcialmente à adattassi rapidamente a capacità di a reta.
Evitata di congestione:Dopu a finestra di congestione supera un certu sogliu, u mittente aumenta a finestra di congestione per rallentà a tarifa di crescita di a finestra di congestione è evità a rete.
Recuperazione rapida:Se a congestione si trova, u metà di a fine di a finestra di a congestione è entra in u locu di a ricuperazione veloce per a ricuperazione di a rete attraversu u rete ricivutu. E poi cuntinueghja aumentà a finestra di congestione.

Start Lento
Quandu una cunnessione TCP hè stabilita, a finestra di congestione hè inizialmente stabilita à un minimu mss (tamantu di u segmentu massimu). Sta manera, a tarifa Inviaziale Inviazione hè nantu à MSS / RTT Bytes / Secondu. U veru banda disponibile hè di solitu assai più grande di mst, cusì tcp vole truvà a tarifa di rinviamentu ottima, chì pò esse ottenuta per mezu à u principiu

In u prucessu di iniziu à lento - u valore di a finestra congestionica serà in a finale à 1 mss, è ogni volta u segmentu di pacativu trasmettativu, u valore di CWND diventerà per una u valore di CWND 2 mss. Dopu, u valore di CWND hè dogatu per ogni trasmissione di successu di un segmentu di u pacchettu, è cusì. U prucessu di crescita specifica hè mostratu in a seguente figura.

 Cuntrollu di congestion di rete

Tuttavia, l'inviu di a spedizione ùn pò micca sempre cresce; A crescita hà da finisce qualchì volta. Dunque, quandu a fine di a rata di a vendita? Lent-Start finisce l'aumentu di a tarifa inviata in una di parechje manere:

U primu modu hè u casu di a perdita di u pacchettu durante u prucessu di mandà lento. Quandu una perdita di u pacchettu accade, TCP stabilisce a finestra di a finestra di a finestra di u mittente à 1 è riavvia u prucessu di principiu lento. In questu puntu, un cuncettu di u singolinu di iniziu cunsigliu hè intesu, u valore iniziale hè a mità di u valore di u CWND chì genera a perdita di u packe. Vale à dì chì a congestione hè rilevata, u valore di u Ssthresh hè a mità di u valore di finestra.

U sicondu modu hè di correlà direttamente cù u valore di u singhen di u singhre Senth. Dapoi u valore di u Ssthresh hè a mità di u valore di a finestra quandu a congestione hè rilevata, a perdita di u pacchettu pò accade cù ogni radduppia quandu u cwnd hè più grande di u ssthresh. Dunque, hè megliu set à un cwnd à sstherh, chì pruvucarà TCP per passà à u modalità di cuntrollu di congestion è finiscinu lentu.

L'ultima manera chì u lento cumincianu ponu finisce hè se trè acque redundanti sò rilevati, TcP rende una retransmissione veloce è entra in u statu di ricuperazione. (Se ùn hè micca chjaru perchè ci sò trè pacchetti ack, serà spiegatu separatamente in u mecorismu di ritransmissione.)

Evitari di congestione
Quandu TCP entra in u Statu di Control di Congestion, Cwnd hè stabilitu à a mità di u singhroliu di u congestion Stershesh. Questu significa chì u valore di CWND ùn pò micca esse radduppiatu ogni volta chì un segmentu di u pacchettu hè ricevutu. Invece, un approcciu relativamente conservatore hè aduttatu in quale u valore di CWND hè aumentatu da un solu msmon (Long di segment di u pacchettu massimu di u pacchettu) Dopu ogni trasmissione hè finitu. Per esempiu, sì 10 segmenti di packet sò ricunnisciuti, u valore di CWND, aumentà solu da una mss. Questu hè un mudellu di crescita lineale è hà ancu un limitu superiore in a crescita. Quandu a perdita di u pacchettu si trova, u valore di CWND hè cambiatu à un mss, è u valore di u Sstrhresh hè stabilitu à a mità di CWND. O ancu fermerà a crescita di MSS quandu 3 risposte di ack redundanti sò ricevuti. Se trè gruppi redundanti sò sempre ricivuti dopu à u valore di u valore di u Sstrhresh hè registratu cum'è a mità di u valore di u cwnd è u vostru statu di ricuperazione veloce.

Ricuperazione veloce
In u statu di ricuperazione veloce, u valore di a finestra di a finestra di congestione hè aumentata da un mss per ogni accontu Redundante Redidatu, chì hè, ack chì ùn ghjunghje micca in sequenza. Questu hè per aduprà i segmenti di u pacchettu chì sò stati trasmessi cun successu in a reta per migliurà l'efficienza di trasmissione quant'è pussibule.

Quandu un ack di u segmentu di u pacchettu persu, tcp diminuisce u valore di CWND è poi entra in u statu di evità di congestion. Questu hè di cuntrullà a dimensione di a finestra di congestione è evità più aumentendu a congestione di a rete.

Sì un timeout si trova dopu à u statu di cuntrollu di congestion, a cundizione di rete diventa più seriu è tcp migra da u statu di evità di congestione à u statu di iniziu lento. In questu casu, u valore di a Finestra di u Congesteone CWND hè stabilitu à 1 mss, lunghezza di segmentu massimu è u valore di u Lentu Sinthest Singhresh hè stabilitu à a mità di CWND. U scopu di questu hè di riesce a dimensione di a dimensione di a dimensione di a rete dopu à a rete per equilibrà a tarifa di trasmissione è u gradu di congestione di rete.

Riassuntu
Cum'è protocollu di u trasportu affidatu, tcp implementi trasporti rilibili per u numeru di sequenza, ricunniscente, cuntrollu di ritressazione, cuntrollu di a gestione è finestra managemanda. Frà elli, i marchianu u numeru di cuntrollu di u flussu cuntrattu u sveditore mandatu da l'mittente sicondu l'esigenza chì riceve vera di u receptore, chì evite i prublemi di a fine di a fine di a rete. U mecanismu di cuntrollu di congestion evita l'occurrence di a congestione di a rete per aghjustà a quantità di dati mandati da u mittente. I cuncetti di a finestra di a finestra di congestione è mandendu a finestra, è a quantità di dati in u mittente hè cuntrullatu da aghjustendu dinamicamente a dimensione di a finestra di a congestion. Inizio lenta, di a prevenza di Congente è a Recuperazione Fast è e trè principali di u cuntrollu congenti di TCP, chì attaccà a dimensione di a zona differente è congettiva u gradu di a rete di a capacità.

In a sezione seguente, esamineremu u mecanismu di ritrasmissione di TCP in dettaglio. U mecanismu di ritrasmissione hè una parte impurtante di TCP per ottene a trasmissione affidabile. Assicura a trasmissione affidabile di dati per retransmittendu persu, inutilizzati o ritardati dati. U principiu di l'implementazione è a strategia di u mecanismu di ritrasmissione serà introduttu è analizata in dettaglio in a sezione seguente. Stà Tuned!


Tempu di Post: 24-2025