Zam sekrè TCP a: Kontwòl koule rezo ak kontwòl konjesyon rezo

Transpò fyab TCP
Nou tout abitye ak pwotokòl TCP kòm yon pwotokòl transpò serye, men kijan li asire fyab transpò a?

Pou reyalize yon transmisyon serye, anpil faktè bezwen konsidere, tankou koripsyon done, pèt, kopi, ak fragman ki pa nan lòd. Si pwoblèm sa yo pa rezoud, ou pa ka reyalize yon transmisyon serye.

Se poutèt sa, TCP itilize mekanis tankou nimewo sekans, repons akize resepsyon, kontwòl re-voye, jesyon koneksyon, ak kontwòl fenèt pou reyalize yon transmisyon serye.

Nan atik sa a, nou pral konsantre sou fenèt glisman an, kontwòl koule ak kontwòl konjesyon TCP a. Mekanis retransmisyon an kouvri separeman nan pwochen seksyon an.

Kontwòl koule rezo a
Kontwòl Koule Rezo a oubyen Kontwòl Trafik Rezo a se aktyèlman yon manifestasyon relasyon sibtil ant pwodiktè ak konsomatè yo. Ou pwobableman deja rankontre senaryo sa a anpil nan travay ou oubyen nan entèvyou. Si kapasite pwodiktè a pou pwodui depase anpil kapasite konsomatè a pou konsome, sa ap lakòz ke fil la ap grandi san limit. Nan yon ka ki pi grav, ou ka konnen ke lè mesaj RabbitMQ yo anpile twòp, sa ka lakòz degradasyon pèfòmans tout sèvè MQ a. Menm bagay la tou vre pou TCP; si yo pa kontwole l, twòp mesaj ap antre nan rezo a, epi konsomatè yo ap depase kapasite yo, pandan ke pwodiktè yo ap kontinye voye mesaj kopi, sa ki pral afekte anpil pèfòmans rezo a.

Pou adrese fenomèn sa a, TCP bay yon mekanis pou moun k ap voye done a kontwole kantite done ki voye a selon kapasite resepsyon reyèl moun k ap resevwa done a, sa yo rele kontwòl koule done. Moun k ap resevwa done a kenbe yon fenèt resepsyon, pandan moun k ap voye done a kenbe yon fenèt voye done. Li enpòtan pou note ke fenèt sa yo la sèlman pou yon sèl koneksyon TCP epi se pa tout koneksyon ki pataje yon fenèt.

TCP bay kontwòl koule done a lè l sèvi avèk yon varyab pou yon fenèt resepsyon. Fenèt resepsyon an bay moun k ap voye done a yon endikasyon sou konbyen espas kach ki toujou disponib. Moun k ap voye done a kontwole kantite done yo voye a selon kapasite akseptasyon reyèl moun k ap resevwa done a.

Moun k ap resevwa a avèti moun k ap voye mesaj la sou gwosè done li ka resevwa, epi moun k ap voye mesaj la voye jiska limit sa a. Limit sa a se gwosè fenèt la, ou sonje header TCP a? Gen yon chan fenèt pou resevwa mesaj la, ki itilize pou endike kantite okte moun k ap resevwa a kapab oswa vle resevwa.

Moun k ap voye done a ap voye yon pake sond fenèt detanzantan, ki sèvi pou detekte si moun k ap resevwa done a toujou kapab aksepte done. Lè memwa tanpon moun k ap resevwa done a an danje pou l debòde, yo mete gwosè fenèt la sou yon valè ki pi piti pou enstwi moun k ap voye done a pou l kontwole kantite done ki voye a.

Men yon dyagram kontwòl koule rezo:

Kontwòl Trafik

Kontwòl Konjesyon Rezo a
Anvan nou prezante kontwòl konjesyon, nou bezwen konprann ke anplis fenèt resepsyon an ak fenèt voye a, genyen tou yon fenèt konjesyon, ki sitou itilize pou rezoud pwoblèm nan ki vitès moun k ap voye a kòmanse voye done nan fenèt resepsyon an. Se poutèt sa, moun k ap voye TCP a kenbe fenèt konjesyon an tou. Nou bezwen yon algorithm pou deside konbyen done ki apwopriye pou voye, piske voye twò piti oswa twòp done pa ideyal, kidonk konsèp fenèt konjesyon an.

Nan kontwòl koule rezo anvan an, sa nou te evite se te lè moun k ap voye done a te ranpli kach moun k ap resevwa a ak done, men nou pa t konnen sa k t ap pase nan rezo a. Tipikman, rezo òdinatè yo nan yon anviwònman pataje. Kòm rezilta, ka gen konjesyon rezo akòz kominikasyon ant lòt òdinatè yo.

Lè rezo a konjeste, si yon gwo kantite pake kontinye ap voye, sa ka lakòz pwoblèm tankou reta ak pèt pake. Nan pwen sa a, TCP ap retransmèt done yo, men retransmisyon an ap ogmante chay sou rezo a, sa ki lakòz pi gwo reta ak plis pèt pake. Sa ka antre nan yon sik visye epi kontinye vin pi gwo.

Kidonk, TCP pa ka inyore sa k ap pase sou rezo a. Lè rezo a konjeste, TCP sakrifye tèt li lè li diminye kantite done li voye.

Se poutèt sa, yo pwopoze kontwòl konjesyon, ki vize pou evite ranpli tout rezo a ak done ki soti nan moun k ap voye a. Pou kontwole kantite done moun k ap voye a ta dwe voye, TCP defini yon konsèp yo rele fenèt konjesyon an. Algorit kontwòl konjesyon an pral ajiste gwosè fenèt konjesyon an selon degre konjesyon rezo a, pou kontwole kantite done moun k ap voye a voye.

Kisa yon fenèt konjesyon ye? Ki rapò sa genyen ak fenèt voye a?

Fenèt Konjesyon an se yon varyab eta ke moun k ap voye done a jere epi ki detèmine kantite done moun k ap voye done a ka voye. Fenèt konjesyon an chanje dinamikman selon nivo konjesyon rezo a.

Fenèt Voye a se yon gwosè fenèt yo dakò sou li ant moun k ap voye a ak moun k ap resevwa a ki endike kantite done moun k ap resevwa a ka resevwa. Fenèt konjesyon an ak fenèt voye a gen rapò; fenèt voye a anjeneral egal a minimòm fenèt konjesyon an ak fenèt resepsyon an, sa vle di, swnd = min(cwnd, rwnd).

Fenèt konjesyon cwnd lan chanje jan sa a:

Si pa gen konjesyon nan rezo a, sa vle di, pa gen okenn delè retransmisyon ki rive, fenèt konjesyon an ogmante.

Si gen konjesyon nan rezo a, fenèt konjesyon an diminye.

Moun k ap voye mesaj la detèmine si rezo a konjeste lè li obsève si pake akize ACK a resevwa nan tan ki espesifye a. Si moun k ap voye mesaj la pa resevwa pake akize ACK a nan tan ki espesifye a, yo konsidere rezo a konjeste.

Anplis fenèt konjesyon an, li lè pou nou diskite sou algorithm kontwòl konjesyon TCP a. Algorithm kontwòl konjesyon TCP a gen twa pati prensipal:

Kòmanse dousman:Okòmansman, fenèt konjesyon cwnd la relativman piti, epi moun k ap voye mesaj la ogmante fenèt konjesyon an eksponansyèlman pou adapte rapidman ak kapasite rezo a.
Evite Konjesyon:Apre fenèt konjesyon an depase yon sèten papòt, moun k ap voye mesaj la ogmante fenèt konjesyon an nan yon fason lineyè pou ralanti to kwasans fenèt konjesyon an epi evite twòp chaj sou rezo a.
Rekiperasyon rapid:Si gen konjesyon, moun k ap voye mesaj la diminye fenèt konjesyon an pa mwatye epi li antre nan eta rekiperasyon rapid la pou detèmine kote rekiperasyon rezo a atravè rekonesans kopi yo resevwa a, epi li kontinye ogmante fenèt konjesyon an.

Kòmanse dousman
Lè yon koneksyon TCP etabli, fenèt konjesyon cwnd la okòmansman fikse sou yon valè MSS minimòm (gwosè segman maksimòm). Nan fason sa a, vitès voye inisyal la se anviwon MSS/RTT okte/segond. Pleasant aktyèl ki disponib la anjeneral pi gwo pase MSS/RTT, kidonk TCP vle jwenn vitès voye optimal la, ki ka reyalize pa mwayen yon demaraj ralanti.

Nan pwosesis demaraj dousman an, valè fenèt konjesyon cwnd lan pral inisyalize a 1 MSS, epi chak fwa yo rekonèt segman pake ki transmèt la, valè cwnd lan pral ogmante pa yon MSS, sa vle di, valè cwnd lan pral vin 2 MSS. Apre sa, valè cwnd lan double pou chak transmisyon siksè yon segman pake, epi konsa. Pwosesis kwasans espesifik la montre nan figi ki anba la a.

 Kontwòl konjesyon rezo a

Sepandan, to anvwa a pa ka toujou ogmante; kwasans lan dwe fini yon lè. Donk, ki lè ogmantasyon to anvwa a fini? Anjeneral, yon kòmansman dousman fini ogmantasyon nan to anvwa a nan youn nan plizyè fason:

Premye fason an se ka pèt pake pandan pwosesis voye a ki kòmanse dousman. Lè yon pèt pake rive, TCP mete fenèt konjesyon cwnd moun k ap voye a sou 1 epi li rekòmanse pwosesis kòmanse dousman an. Nan pwen sa a, yo prezante yon konsèp papòt kòmanse dousman ssthresh, ki gen valè inisyal la se mwatye valè cwnd ki jenere pèt pake. Sa vle di, lè yo detekte konjesyon, valè ssthresh la se mwatye valè fenèt la.

Dezyèm fason an se korele dirèkteman ak valè papòt demaraj ralanti ssthresh la. Piske valè ssthresh la se mwatye valè fenèt la lè yo detekte konjesyon, pèt pake ka rive ak chak doubleman lè cwnd pi gran pase ssthresh. Se poutèt sa, li pi bon pou mete cwnd sou ssthresh, sa ki pral lakòz TCP chanje nan mòd kontwòl konjesyon epi fini demaraj ralanti a.

Dènye fason yon demaraj dousman ka fini se si yo detekte twa pakè ACK redondan, TCP fè yon retransmisyon rapid epi antre nan eta rekiperasyon an. (Si li pa klè poukisa gen twa pakè ACK, y ap eksplike sa separeman nan mekanis retransmisyon an.)

Evite Konjesyon
Lè TCP antre nan eta kontwòl konjesyon an, cwnd fikse a mwatye papòt konjesyon ssthresh la. Sa vle di ke valè cwnd pa ka double chak fwa yo resevwa yon segman pake. Okontrè, yo adopte yon apwòch relativman konsèvatif kote yo ogmante valè cwnd pa yon sèl MSS (longè maksimòm segman pake) apre chak transmisyon fini. Pa egzanp, menm si yo rekonèt 10 segman pake, valè cwnd ap ogmante sèlman pa yon sèl MSS. Sa a se yon modèl kwasans lineyè epi li genyen tou yon limit siperyè sou kwasans. Lè pèt pake rive, yo chanje valè cwnd an yon MSS, epi yo fikse valè ssthresh la a mwatye cwnd. Oswa li pral sispann kwasans MSS la tou lè yo resevwa 3 repons ACK redondan. Si yo toujou resevwa twa ACK redondan apre yo fin diminye valè cwnd a pa mwatye, yo anrejistre valè ssthresh la kòm mwatye valè cwnd epi yo antre nan eta rekiperasyon rapid la.

Rekiperasyon rapid
Nan eta Rekiperasyon Rapid la, valè fenèt konjesyon cwnd la ogmante pa yon MSS pou chak ACK redondan ki resevwa, sa vle di, ACK ki pa rive nan sekans. Sa a se pou itilize segman pake ki te transmèt avèk siksè nan rezo a pou amelyore efikasite transmisyon an otank posib.

Lè yon ACK nan segman pake pèdi a rive, TCP diminye valè cwnd epi antre nan eta pou evite konjesyon. Sa a se pou kontwole gwosè fenèt konjesyon an epi evite ogmante plis konjesyon rezo a.

Si yon delè rive apre eta kontwòl konjesyon an, kondisyon rezo a vin pi grav epi TCP a migre soti nan eta pou evite konjesyon an pou ale nan eta demaraj dousman an. Nan ka sa a, valè fenèt konjesyon cwnd la fikse a 1 MSS, longè maksimòm segman pake a, epi valè papòt demaraj dousman ssthresh la fikse a mwatye cwnd. Objektif sa a se pou ogmante gwosè fenèt konjesyon an piti piti apre rezo a fin refè pou balanse vitès transmisyon an ak degre konjesyon rezo a.

Rezime
Kòm yon pwotokòl transpò serye, TCP aplike transpò serye pa nimewo sekans, akize resepsyon, kontwòl retransmisyon, jesyon koneksyon ak kontwòl fenèt. Pami yo, mekanis kontwòl koule a kontwole kantite done ke moun k ap voye a voye selon kapasite resepsyon reyèl moun k ap resevwa a, sa ki evite pwoblèm konjesyon rezo ak degradasyon pèfòmans. Mekanis kontwòl konjesyon an evite konjesyon rezo a lè li ajiste kantite done ke moun k ap voye a voye. Konsèp fenèt konjesyon ak fenèt voye yo gen rapò youn ak lòt, epi kantite done ki rive nan moun k ap voye a kontwole lè li ajiste gwosè fenèt konjesyon an yon fason dinamik. Demaraj dousman, evite konjesyon ak rekiperasyon rapid se twa pati prensipal algoritm kontwòl konjesyon TCP a, ki ajiste gwosè fenèt konjesyon an atravè diferan estrateji pou adapte ak kapasite ak degre konjesyon rezo a.

Nan pwochen seksyon an, nou pral egzamine mekanis retransmisyon TCP a an detay. Mekanis retransmisyon an se yon pati enpòtan nan TCP pou reyalize yon transmisyon serye. Li asire transmisyon done yo serye lè li retransmèt done ki pèdi, ki pèvèti oswa ki an reta. Prensip aplikasyon ak estrateji mekanis retransmisyon an pral prezante epi analize an detay nan pwochen seksyon an. Rete branche!


Dat piblikasyon: 24 Fevriye 2025