L-arma sigrieta tat-TCP: Kontroll tal-Fluss tan-Netwerk u Kontroll tal-Konġestjoni tan-Netwerk

Trasport tal-Affidabbiltà tat-TCP
Aħna lkoll familjari mal-protokoll TCP bħala protokoll ta' trasport affidabbli, imma kif jiżgura l-affidabbiltà tat-trasport?

Biex tinkiseb trasmissjoni affidabbli, jeħtieġ li jiġu kkunsidrati ħafna fatturi, bħall-korruzzjoni tad-dejta, it-telf, id-duplikazzjoni, u shards barra mill-ordni. Jekk dawn il-problemi ma jistgħux jiġu solvuti, trasmissjoni affidabbli ma tistax tinkiseb.

Għalhekk, it-TCP juża mekkaniżmi bħan-numru tas-sekwenza, it-tweġiba ta' konferma, il-kontroll tat-trażmissjoni mill-ġdid, il-ġestjoni tal-konnessjoni, u l-kontroll tat-twieqi biex jikseb trasmissjoni affidabbli.

F'dan id-dokument, se niffokaw fuq it-tieqa li tiżżerżaq, il-kontroll tal-fluss u l-kontroll tal-konġestjoni tat-TCP. Il-mekkaniżmu ta' ritrażmissjoni huwa kopert separatament fit-taqsima li jmiss.

Kontroll tal-Fluss tan-Netwerk
Il-Kontroll tal-Fluss tan-Netwerk jew magħruf bħala Kontroll tat-Traffiku tan-Netwerk huwa fil-fatt manifestazzjoni tar-relazzjoni sottili bejn il-produtturi u l-konsumaturi. Probabbilment iltqajt ma' dan ix-xenarju ħafna drabi fuq ix-xogħol jew f'intervisti. Jekk il-kapaċità tal-produttur li jipproduċi taqbeż bil-kbir il-kapaċità tal-konsumatur li jikkonsma, dan jikkawża li l-kju jikber b'mod indefinit. F'każ aktar serju, tista' tkun taf li meta l-messaġġi RabbitMQ jakkumulaw wisq, dan jista' jikkawża degradazzjoni tal-prestazzjoni tas-server MQ kollu. L-istess jgħodd għat-TCP; jekk jitħallew mhux ikkontrollati, wisq messaġġi jitpoġġew fin-netwerk, u l-konsumaturi jkunu qabżu l-kapaċità tagħhom, filwaqt li l-produtturi jkomplu jibagħtu messaġġi duplikati, li jaffettwa ħafna l-prestazzjoni tan-netwerk.

Biex jindirizza dan il-fenomenu, it-TCP jipprovdi mekkaniżmu biex min jibgħat id-dejta jikkontrolla l-ammont ta' dejta mibgħuta abbażi tal-kapaċità attwali ta' akkoljenza tar-riċevitur, li huwa magħruf bħala kontroll tal-fluss. Ir-riċevitur iżomm tieqa ta' riċeviment, filwaqt li min jibgħat id-dejta jżomm tieqa ta' tibgħat. Ta' min jinnota li dawn it-Twieqi huma biss għal konnessjoni TCP waħda u mhux il-konnessjonijiet kollha jaqsmu tieqa.

It-TCP jipprovdi kontroll tal-fluss billi juża varjabbli għal tieqa ta' riċeviment. It-tieqa ta' riċeviment tagħti lill-mittent indikazzjoni ta' kemm għad hemm spazju fil-cache disponibbli. Il-mittent jikkontrolla l-ammont ta' dejta mibgħuta skont il-kapaċità ta' aċċettazzjoni attwali tar-riċevitur.

Il-host tar-riċevitur jinnotifika lill-mittent bid-daqs tad-dejta li jista' jirċievi, u l-mittent jibgħat sa dan il-limitu. Dan il-limitu huwa d-daqs tat-tieqa, tiftakar il-header tat-TCP? Hemm qasam tat-tieqa ta' riċeviment, li jintuża biex jindika n-numru ta' bytes li r-riċevitur jista' jew lest li jirċievi.

Il-host li jibgħat id-dejta perjodikament jibgħat pakkett ta' window probe, li jintuża biex jiskopri jekk il-host li jirċievi d-dejta għadux kapaċi jaċċetta d-dejta. Meta l-buffer tar-riċevitur ikun fil-periklu li jimtela b'ħafna dejta, id-daqs tat-tieqa jiġi ssettjat għal valur iżgħar biex jagħti struzzjonijiet lill-mittent biex jikkontrolla l-ammont ta' dejta mibgħuta.

Hawn dijagramma tal-Kontroll tal-Fluss tan-Netwerk:

Kontroll tat-Traffiku

Kontroll tal-Konġestjoni tan-Netwerk
Qabel ma nintroduċu l-kontroll tal-konġestjoni, irridu nifhmu li minbarra t-tieqa ta' riċeviment u t-tieqa tat-trażmissjoni, hemm ukoll tieqa ta' konġestjoni, li tintuża prinċipalment biex issolvi l-problema ta' b'liema rata l-mittent jibda jibgħat id-dejta lit-tieqa ta' riċeviment. Għalhekk, it-tieqa ta' konġestjoni tinżamm ukoll mill-mittent tat-TCP. Għandna bżonn algoritmu biex niddeċiedu kemm dejta hija xierqa biex tintbagħat, peress li t-trażmissjoni ta' ftit wisq jew wisq dejta mhijiex ideali, għalhekk il-kunċett ta' tieqa ta' konġestjoni.

Fil-kontroll tal-fluss tan-netwerk preċedenti, dak li evitajna kien li l-mittent jimla l-cache tar-riċevitur bid-dejta, iżda ma konniex nafu x'kien qed jiġri fin-netwerk. Tipikament, in-netwerks tal-kompjuters ikunu f'ambjent kondiviż. Bħala riżultat, jista' jkun hemm konġestjoni fin-netwerk minħabba komunikazzjoni bejn hosts oħra.

Meta n-netwerk ikun konġestjonat, jekk numru kbir ta' pakketti jkomplu jintbagħtu, dan jista' jikkawża problemi bħal dewmien u telf ta' pakketti. F'dan il-punt, it-TCP jerġa' jittrażmetti d-dejta, iżda t-trażmissjoni mill-ġdid iżżid il-piż fuq in-netwerk, u dan jirriżulta f'dewmien akbar u aktar telf ta' pakketti. Dan jista' jidħol f'ċiklu vizzjuż u jibqa' jikber.

Għalhekk, it-TCP ma jistax jinjora dak li qed jiġri fuq in-netwerk. Meta n-netwerk ikun konġestjonat, it-TCP jissagrifika lilu nnifsu billi jnaqqas l-ammont ta' dejta li jibgħat.

Għalhekk, qed jiġi propost kontroll tal-konġestjoni, li għandu l-għan li jevita li n-netwerk kollu jimtela bid-dejta mingħand min jibgħat. Biex jirregola l-ammont ta' dejta li min jibgħat għandu jibgħat, it-TCP jiddefinixxi kunċett imsejjaħ it-tieqa tal-konġestjoni. L-algoritmu tal-kontroll tal-konġestjoni se jaġġusta d-daqs tat-tieqa tal-konġestjoni skont il-grad ta' konġestjoni tan-netwerk, sabiex jikkontrolla l-ammont ta' dejta mibgħuta minn min jibgħat.

X'inhi tieqa ta' konġestjoni? X'għandha x'taqsam din mat-tieqa tas-send?

It-Tieqa tal-Konġestjoni hija varjabbli ta' stat miżmuma mill-mittent li tiddetermina l-ammont ta' dejta li l-mittent jista' jibgħat. It-tieqa tal-konġestjoni tinbidel b'mod dinamiku skont il-livell ta' konġestjoni tan-netwerk.

It-Tieqa li Tibgħat hija daqs ta' tieqa miftiehem bejn min jibgħat u min jirċievi li jindika l-ammont ta' dejta li r-riċevitur jista' jirċievi. It-tieqa tal-konġestjoni u t-tieqa li tibgħat huma relatati; it-tieqa li tibgħat ġeneralment tkun ugwali għall-minimu tat-Tieqa tal-konġestjoni u dik li tirċievi, jiġifieri, swnd = min(cwnd, rwnd).

It-tieqa tal-konġestjoni cwnd tinbidel kif ġej:

Jekk ma jkun hemm l-ebda konġestjoni fin-netwerk, jiġifieri, ma jseħħ l-ebda timeout ta' ritrażmissjoni, it-tieqa tal-konġestjoni tiżdied.

Jekk ikun hemm konġestjoni fin-netwerk, it-tieqa tal-konġestjoni tonqos.

Min jibgħat iċ-ċentru jiddetermina jekk in-netwerk huwiex konġestjonat billi josserva jekk il-pakkett ta' konferma tal-ACK jiġix riċevut fil-ħin speċifikat. Jekk min jibgħat iċ-ċentru ma jirċevix il-pakkett ta' konferma tal-ACK fil-ħin speċifikat, jitqies li n-netwerk huwa konġestjonat.

Minbarra t-tieqa tal-konġestjoni, wasal iż-żmien li niddiskutu l-algoritmu tal-kontroll tal-konġestjoni tat-TCP. L-algoritmu tal-kontroll tal-konġestjoni tat-TCP jikkonsisti fi tliet partijiet ewlenin:

Bidu bil-mod:Inizjalment, it-tieqa tal-konġestjoni cwnd hija relattivament żgħira, u min jibgħat iżżied it-tieqa tal-konġestjoni b'mod esponenzjali biex jadatta malajr għall-kapaċità tan-netwerk.
Evitar tal-Konġestjoni:Wara li t-tieqa tal-konġestjoni taqbeż ċertu limitu, min jibgħat iż-messaġġ iżid it-tieqa tal-konġestjoni b'mod lineari biex inaqqas ir-rata tat-tkabbir tat-tieqa tal-konġestjoni u jevita li n-netwerk jiġi mgħobbi żżejjed.
Irkupru Mgħaġġel:Jekk isseħħ konġestjoni, min jibgħat inaqqas it-tieqa tal-konġestjoni bin-nofs u jidħol fl-istat ta' rkupru mgħaġġel biex jiddetermina l-post tal-irkupru tan-netwerk permezz tal-acks duplikati li jirċievi, u mbagħad ikompli jżid it-tieqa tal-konġestjoni.

Bidu bil-mod
Meta tiġi stabbilita konnessjoni TCP, it-tieqa tal-konġestjoni cwnd inizjalment tiġi ssettjata għal valur minimu ta' MSS (daqs massimu tas-segment). B'dan il-mod, ir-rata inizjali tat-trażmissjoni hija ta' madwar MSS/RTT bytes/sekonda. Il-bandwidth attwali disponibbli ġeneralment ikun ħafna akbar minn MSS/RTT, għalhekk it-TCP irid isib ir-rata ottimali tat-trażmissjoni, li tista' tinkiseb permezz ta' bidu bil-mod.

Fil-proċess ta' bidu bil-mod, il-valur tat-tieqa tal-konġestjoni cwnd se jiġi inizjalizzat għal 1 MSS, u kull darba li s-segment tal-pakkett trasmess jiġi rikonoxxut, il-valur ta' cwnd se jiżdied b'MSS wieħed, jiġifieri, il-valur ta' cwnd se jsir 2 MSS. Wara dan, il-valur ta' cwnd jiġi rduppjat għal kull trasmissjoni b'suċċess ta' segment tal-pakkett, eċċ. Il-proċess speċifiku ta' tkabbir huwa muri fil-figura li ġejja.

 Kontroll tal-konġestjoni tan-netwerk

Madankollu, ir-rata tat-trażmissjoni mhux dejjem tista' tikber; it-tkabbir irid jieqaf xi darba. Allura, meta tintemm iż-żieda fir-rata tat-trażmissjoni? Bidu bil-mod tipikament itemm iż-żieda fir-rata tat-trażmissjoni b'wieħed minn diversi modi:

L-ewwel mod huwa l-każ ta' telf ta' pakketti matul il-proċess ta' trażmissjoni ta' bidu bil-mod. Meta jseħħ telf ta' pakkett, it-TCP jistabbilixxi t-tieqa ta' konġestjoni cwnd tal-mittent għal 1 u jerġa' jibda l-proċess ta' bidu bil-mod. F'dan il-punt, jiġi introdott il-kunċett ta' limitu ta' bidu bil-mod ssthresh, li l-valur inizjali tiegħu huwa nofs il-valur ta' cwnd li jiġġenera telf ta' pakketti. Jiġifieri, meta tiġi skoperta konġestjoni, il-valur ta' ssthresh huwa nofs il-valur tat-tieqa.

It-tieni mod huwa li tikkorrelata direttament mal-valur tal-limitu ta' bidu bil-mod ssthresh. Peress li l-valur ta' ssthresh huwa nofs il-valur tat-tieqa meta tiġi skoperta l-konġestjoni, jista' jseħħ telf ta' pakketti b'kull irduppjar meta cwnd ikun akbar minn ssthresh. Għalhekk, l-aħjar li tissettja cwnd għal ssthresh, li jikkawża li TCP jaqleb għall-modalità ta' kontroll tal-konġestjoni u jtemm il-bidu bil-mod.

L-aħħar mod kif jista' jintemm bidu bil-mod huwa jekk jiġu skoperti tliet acks żejda, it-TCP iwettaq ritrażmissjoni veloċi u jidħol fl-istat ta' rkupru. (Jekk mhux ċar għaliex hemm tliet pakketti ACK, dan se jiġi spjegat separatament fil-mekkaniżmu ta' ritrażmissjoni.)

Evitar tal-Konġestjoni
Meta t-TCP jidħol fl-istat ta' kontroll tal-konġestjoni, cwnd jiġi ssettjat għal nofs il-limitu tal-konġestjoni ssthresh. Dan ifisser li l-valur ta' cwnd ma jistax jiġi rduppjat kull darba li jiġi riċevut segment ta' pakkett. Minflok, jiġi adottat approċċ relattivament konservattiv fejn il-valur ta' cwnd jiżdied b'MSS wieħed biss (tul massimu tas-segment tal-pakkett) wara li titlesta kull trasmissjoni. Pereżempju, anke jekk jiġu rikonoxxuti 10 segmenti ta' pakketti, il-valur ta' cwnd jiżdied biss b'MSS wieħed. Dan huwa mudell ta' tkabbir lineari u għandu wkoll limitu massimu fuq it-tkabbir. Meta jseħħ telf ta' pakketti, il-valur ta' cwnd jinbidel għal MSS, u l-valur ta' ssthresh jiġi ssettjat għal nofs cwnd. Jew inkella jwaqqaf ukoll it-tkabbir tal-MSS meta jiġu riċevuti 3 tweġibiet ACK żejda. Jekk tliet acks żejda xorta jiġu riċevuti wara li jitnaqqas bin-nofs il-valur ta' cwnd, il-valur ta' ssthresh jiġi rreġistrat bħala nofs il-valur ta' cwnd u jidħol fl-istat ta' rkupru mgħaġġel.

Irkupru Mgħaġġel
Fl-istat ta' Rkupru Mgħaġġel, il-valur tat-tieqa tal-konġestjoni cwnd jiżdied b'MSS wieħed għal kull ACK riċevut żejjed, jiġifieri, ACK li ma jasalx f'sekwenza. Dan biex isir użu mis-segmenti tal-pakketti li ġew trażmessi b'suċċess fin-netwerk biex tittejjeb l-effiċjenza tat-trażmissjoni kemm jista' jkun.

Meta jasal ACK tas-segment tal-pakkett mitluf, it-TCP inaqqas il-valur ta' cwnd u mbagħad jidħol fl-istat ta' evitar tal-konġestjoni. Dan biex jikkontrolla d-daqs tat-tieqa tal-konġestjoni u jevita li tiżdied aktar il-konġestjoni tan-netwerk.

Jekk iseħħ timeout wara l-istat ta' kontroll tal-konġestjoni, il-kundizzjoni tan-netwerk issir aktar serja u t-TCP jemigra mill-istat ta' evitar tal-konġestjoni għall-istat ta' bidu bil-mod. F'dan il-każ, il-valur tat-tieqa tal-konġestjoni cwnd huwa ssettjat għal 1 MSS, it-tul massimu tas-segment tal-pakkett, u l-valur tal-limitu ta' bidu bil-mod ssthresh huwa ssettjat għal nofs cwnd. L-iskop ta' dan huwa li jiżdied gradwalment id-daqs tat-tieqa tal-konġestjoni wara li n-netwerk jirkupra biex jibbilanċja r-rata ta' trażmissjoni u l-grad ta' konġestjoni tan-netwerk.

Sommarju
Bħala protokoll ta' trasport affidabbli, it-TCP jimplimenta trasport affidabbli permezz tan-numru tas-sekwenza, ir-rikonoxximent, il-kontroll tar-ritrażmissjoni, il-ġestjoni tal-konnessjoni u l-kontroll tat-tieqa. Fost dawn, il-mekkaniżmu tal-kontroll tal-fluss jikkontrolla l-ammont ta' dejta mibgħuta mill-mittent skont il-kapaċità attwali ta' riċeviment tar-riċevitur, li jevita l-problemi ta' konġestjoni tan-netwerk u d-degradazzjoni tal-prestazzjoni. Il-mekkaniżmu tal-kontroll tal-konġestjoni jevita l-okkorrenza ta' konġestjoni fin-netwerk billi jaġġusta l-ammont ta' dejta mibgħuta mill-mittent. Il-kunċetti tat-tieqa tal-konġestjoni u t-tieqa tat-trażmissjoni huma relatati ma' xulxin, u l-ammont ta' dejta għand il-mittent huwa kkontrollat ​​billi jiġi aġġustat dinamikament id-daqs tat-tieqa tal-konġestjoni. Bidu bil-mod, evitar tal-konġestjoni u rkupru veloċi huma t-tliet partijiet ewlenin tal-algoritmu tal-kontroll tal-konġestjoni tat-TCP, li jaġġustaw id-daqs tat-tieqa tal-konġestjoni permezz ta' strateġiji differenti biex jadattaw għall-kapaċità u l-grad ta' konġestjoni tan-netwerk.

Fit-taqsima li jmiss, se neżaminaw fid-dettall il-mekkaniżmu ta' ritrażmissjoni tat-TCP. Il-mekkaniżmu ta' ritrażmissjoni huwa parti importanti mit-TCP biex tinkiseb trażmissjoni affidabbli. Dan jiżgura t-trażmissjoni affidabbli tad-dejta billi jerġa' jittrażmetti dejta mitlufa, korrotta jew ittardjata. Il-prinċipju tal-implimentazzjoni u l-istrateġija tal-mekkaniżmu ta' ritrażmissjoni se jiġu introdotti u analizzati fid-dettall fit-taqsima li jmiss. Ibqgħu magħna!


Ħin tal-posta: 24 ta' Frar 2025