senjata rahasia TCP: Network Flow Control lan Network Congestion Control

TCP Reliability Transport
Kita kabeh kenal karo protokol TCP minangka protokol transportasi sing bisa dipercaya, nanging kepiye carane njamin keandalan transportasi?

Kanggo nggayuh transmisi sing dipercaya, akeh faktor sing kudu digatekake, kayata korupsi data, mundhut, duplikasi, lan pecahan sing ora ana urutane. Yen masalah iki ora bisa ditanggulangi, transmisi dipercaya ora bisa digayuh.

Mula, TCP nggunakake mekanisme kayata nomer urutan, balesan pangakuan, kontrol kirim ulang, manajemen sambungan, lan kontrol jendhela kanggo entuk transmisi sing dipercaya.

Ing makalah iki, kita bakal fokus ing jendela geser, kontrol aliran lan kontrol kemacetan TCP. Mekanisme retransmisi dijamin kanthi kapisah ing bagean sabanjure.

Kontrol Aliran Jaringan
Kontrol Aliran Jaringan utawa dikenal minangka Kontrol Lalu Lintas Jaringan sejatine minangka manifestasi saka hubungan halus antarane produser lan konsumen. Sampeyan mbokmenawa wis kerep nemoni skenario iki ing karya utawa ing wawancara. Yen kapasitas produser kanggo ngasilake banget ngluwihi kapasitas konsumen kanggo ngonsumsi, bakal nyebabake antrian mundhak tanpa wates. Ing kasus sing luwih serius, sampeyan bisa uga ngerti yen pesen RabbitMQ numpuk akeh banget, bisa nyebabake degradasi kinerja kabeh server MQ. Padha bener kanggo TCP; yen ora dicenthang, akeh banget pesen bakal dilebokake ing jaringan, lan konsumen bakal ngluwihi kapasitas, nalika produser bakal terus ngirim pesen duplikat, sing bakal mengaruhi kinerja jaringan.

Kanggo ngatasi fenomena iki, TCP nyedhiyakake mekanisme kanggo pangirim kanggo ngontrol jumlah data sing dikirim adhedhasar kapasitas resepsi nyata saka panrima, sing dikenal minangka kontrol aliran. Panrima njaga jendhela nampa, nalika pangirim njaga jendhela kirim. Perlu dicathet yen Windows iki mung kanggo sambungan TCP siji lan ora kabeh sambungan nuduhake jendhela.

TCP nyedhiyakake kontrol aliran kanthi nggunakake variabel kanggo jendhela nampa. Jendhela nampa menehi pangirim indikasi babagan jumlah ruang cache sing isih kasedhiya. Pangirim ngontrol jumlah data sing dikirim miturut kapasitas acceptance nyata saka panrima.

Inang panrima ngandhani pangirim ukuran data sing bisa ditampa, lan pangirim ngirim nganti watesan iki. Watesan iki ukuran jendhela, elinga header TCP? Ana lapangan jendhela nampa, kang digunakake kanggo nunjukaké nomer bita panrima bisa utawa gelem nampa.

Host pangirim bakal ngirim paket probe jendhela, sing digunakake kanggo ndeteksi apa host panrima isih bisa nampa data. Nalika buffer panrima ing bebaya overflowing, ukuran jendhela disetel menyang Nilai cilik kanggo instruksi pangirim kanggo ngontrol jumlah data sing dikirim.

Punika diagram Kontrol Aliran Jaringan:

Kontrol Lalu Lintas

Kontrol Kemacetan Jaringan
Sadurunge ngenalake kontrol kemacetan, kita kudu ngerti manawa saliyane jendhela nampa lan jendela kirim, ana uga jendela kemacetan, sing utamane digunakake kanggo ngatasi masalah ing tingkat apa pangirim wiwit ngirim data menyang jendela nampa. Mulane, jendhela kemacetan uga dikelola dening pangirim TCP. Kita butuh algoritma kanggo mutusake jumlah data sing cocog kanggo dikirim, amarga ngirim data sing sithik banget utawa akeh banget ora cocog, mula konsep jendela kemacetan.

Ing kontrol aliran jaringan sadurunge, apa sing kita nyingkiri yaiku pangirim sing ngisi cache panrima kanthi data, nanging kita ora ngerti apa sing kedadeyan ing jaringan kasebut. Biasane, jaringan komputer ana ing lingkungan sing dienggo bareng. Akibaté, bisa uga ana kemacetan jaringan amarga komunikasi antarane host liyane.

Nalika jaringan rame, yen akeh paket terus dikirim, bisa nyebabake masalah kayata tundha lan mundhut paket. Ing titik iki, TCP bakal ngirim maneh data, nanging retransmission bakal nambah beban ing jaringan, nyebabake wektu tundha luwih gedhe lan mundhut paket luwih akeh. Iki bisa mlebu ing siklus ganas lan terus saya gedhe.

Mangkono, TCP ora bisa nglirwakake apa sing kedadeyan ing jaringan. Nalika jaringan rame, TCP ngorbanake awake dhewe kanthi nyuda jumlah data sing dikirim.

Mulane, kontrol kemacetan diusulake, sing tujuane supaya ora ngisi kabeh jaringan kanthi data saka pangirim. Kanggo ngatur jumlah data sing kudu dikirim pangirim, TCP nemtokake konsep sing disebut jendhela rame. Algoritma kontrol kemacetan bakal nyetel ukuran jendela kemacetan miturut tingkat kemacetan jaringan, supaya bisa ngontrol jumlah data sing dikirim dening pangirim.

Apa iku jendhela kemacetan? Apa hubungane karo jendela kirim?

Jendhela Kemacetan minangka variabel negara sing dikelola dening pangirim sing nemtokake jumlah data sing bisa dikirim pangirim. Jendhela kemacetan diganti kanthi dinamis miturut tingkat kemacetan jaringan.

Jendela Ngirim minangka ukuran jendhela sing disepakati antarane pangirim lan panrima sing nuduhake jumlah data sing bisa ditampa dening panrima. Jendhela kemacetan lan jendhela ngirim gegandhengan; jendhela ngirim biasane padha karo minimal rame lan nampa Windows, sing, swnd = min(cwnd, rwnd).

Jendhela kemacetan cwnd diganti kaya ing ngisor iki:

Yen ora ana kemacetan ing jaringan, yaiku, ora ana wektu entek transmisi maneh, jendhela kemacetan mundhak.

Yen ana rame ing jaringan, jendhela rame bakal suda.

Pangirim nemtokake manawa jaringan macet kanthi mirsani apa paket pangenalan ACK ditampa ing wektu sing ditemtokake. Yen pangirim ora nampa paket pangenalan ACK ing wektu sing ditemtokake, dianggep jaringan kasebut rame.

Saliyane ing jendhela rame, iku wektu kanggo ngrembug algoritma kontrol rame TCP. Algoritma kontrol congestion TCP kasusun saka telung bagean utama:

Wiwit alon:Kaping pisanan, jendhela kemacetan cwnd relatif cilik, lan pangirim nambah jendhela kemacetan kanthi eksponensial supaya cepet adaptasi karo kapasitas jaringan.
Nyegah kemacetan:Sawise jendhela kemacetan ngluwihi ambang tartamtu, pangirim nambahake jendhela kemacetan kanthi cara linear kanggo nyuda tingkat wutah saka jendhela kemacetan lan ngindhari kakehan jaringan.
Recovery cepet:Yen rame ana, pangirim setengah saka jendhela rame lan lumebu ing negara Recovery cepet kanggo nemtokake lokasi Recovery jaringan liwat acks duplikat ditampa, lan banjur terus nambah jendhela rame.

Wiwit alon
Nalika sambungan TCP ditetepake, cwnd jendhela kemacetan wiwitane disetel menyang nilai MSS minimal (ukuran segmen maksimal). Kanthi cara iki, tingkat kirim awal kira-kira bita MSS/RTT/detik. Bandwidth sing kasedhiya biasane luwih gedhe tinimbang MSS/RTT, mula TCP pengin golek tingkat ngirim sing optimal, sing bisa digayuh kanthi alon-alon.

Ing proses slow-start, nilai cwnd jendhela kemacetan bakal diinisialisasi dadi 1 MSS, lan saben segmen paket sing dikirimake diakoni, nilai cwnd bakal ditambah siji MSS, yaiku, nilai cwnd bakal dadi 2 MSS. Sawisé iku, nilai cwnd tikel kaping pindho kanggo saben transmisi sukses segmen paket, lan liya-liyane. Proses wutah tartamtu ditampilake ing gambar ing ngisor iki.

 Kontrol kemacetan jaringan

Nanging, tingkat ngirim ora bisa tansah tuwuh; wutah kudu mungkasi arang-arang. Dadi, kapan kenaikan tarif ngirim rampung? Wiwitan alon biasane mungkasi kenaikan tarif kirim kanthi salah siji saka sawetara cara:

Cara pisanan yaiku kasus mundhut paket sajrone proses ngirim wiwitan alon. Nalika mundhut paket ana, TCP nyetel jendhela rame pangirim cwnd kanggo 1 lan miwiti maneh proses alon-wiwitan. Ing titik iki, konsep ambang wiwitan alon ssthresh ngenalaken, kang nilai awal iku setengah saka nilai cwnd sing ngasilake paket mundhut. Yaiku, nalika kemacetan dideteksi, nilai ssthresh setengah saka nilai jendela.

Cara kapindho yaiku hubungan langsung karo nilai ssthresh ambang alon-alon. Amarga nilai ssthresh iku setengah saka nilai jendhela nalika kemacetan dideteksi, mundhut paket bisa kedadeyan saben tikel nalika cwnd luwih gedhe tinimbang ssthresh. Mulane, luwih becik nyetel cwnd dadi ssthresh, sing bakal nyebabake TCP ngalih menyang mode kontrol rame lan mungkasi wiwitan alon.

Cara pungkasan sing wiwitan alon bisa mungkasi yen telung acks keluwih dideteksi, TCP nindakake retransmission cepet lan lumebu ing negara Recovery. (Yen ora jelas kenapa ana telung paket ACK, bakal diterangake kanthi kapisah ing mekanisme transmisi ulang.)

Nyingkiri Kemacetan
Nalika TCP lumebu ing negara kontrol kemacetan, cwnd disetel kanggo setengah ssthresh batesan rame. Iki tegese nilai cwnd ora bisa tikel kaping pindho saben bagean paket ditampa. Nanging, pendekatan sing relatif konservatif diadopsi sing nilai cwnd tambah mung siji MSS (dawa segmen paket maksimal) sawise saben transmisi rampung. Contone, sanajan 10 segmen paket diakoni, nilai cwnd mung bakal nambah siji MSS. Iki minangka model pertumbuhan linier lan uga duwe wates ndhuwur babagan pertumbuhan. Nalika mundhut paket, nilai cwnd diganti dadi MSS, lan nilai ssthresh disetel dadi setengah saka cwnd. Utawa uga bakal mungkasi wutah MSS nalika 3 respon ACK keluwih ditampa. Yen telung acks keluwih isih ditampa sawise setengah Nilai saka cwnd, Nilai saka ssthresh direkam minangka setengah Nilai saka cwnd lan negara Recovery cepet ngetik.

Recovery Cepet
Ing negara Recovery Fast, Nilai saka cwnd jendhela rame tambah siji MSS kanggo saben ACK keluwih ditampa, sing, ACK sing ora teka ing urutan. Iki kanggo nggunakake bagean paket sing wis sukses ditularaké ing jaringan kanggo nambah efficiency transmisi sabisa.

Nalika ACK saka segmen paket sing ilang teka, TCP nyuda nilai cwnd lan banjur mlebu ing negara panyegahan kemacetan. Iki kanggo ngontrol ukuran jendela kemacetan lan supaya ora nambah kemacetan jaringan.

Yen ana wektu entek sawise negara kontrol rame, kondisi jaringan dadi luwih serius lan TCP migrasi saka kahanan panyegahan rame menyang negara wiwitan alon. Ing kasus iki, nilai cwnd jendhela kemacetan disetel dadi 1 MSS, dawa segmen paket maksimal, lan nilai ssthresh batesan wiwitan alon disetel dadi setengah saka cwnd. Tujuane kanggo nambah ukuran jendela kemacetan kanthi bertahap sawise jaringan pulih kanggo ngimbangi tingkat transmisi lan tingkat kemacetan jaringan.

Ringkesan
Minangka protokol transportasi sing dipercaya, TCP ngleksanakake transportasi sing dipercaya miturut nomer urutan, pengakuan, kontrol transmisi ulang, manajemen sambungan lan kontrol jendhela. Antarane wong-wong mau, mekanisme kontrol aliran ngontrol jumlah data sing dikirim dening pangirim miturut kapasitas panrima nyata saka panrima, sing ngindhari masalah kemacetan jaringan lan degradasi kinerja. Mekanisme kontrol kemacetan nyegah kedadeyan kemacetan jaringan kanthi nyetel jumlah data sing dikirim dening pangirim. Konsep jendhela kemacetan lan jendhela pangirim gegandhengan karo siji liyane, lan jumlah data ing pangirim dikontrol kanthi nyetel ukuran jendela kemacetan kanthi dinamis. Wiwit alon, panyegahan kemacetan lan pemulihan cepet minangka telung bagean utama algoritma kontrol kemacetan TCP, sing nyetel ukuran jendela rame liwat macem-macem strategi kanggo adaptasi karo kapasitas lan tingkat kemacetan jaringan.

Ing bagean sabanjure, kita bakal nliti mekanisme transmisi ulang TCP kanthi rinci. Mekanisme transmisi ulang minangka bagean penting saka TCP kanggo entuk transmisi sing dipercaya. Iki njamin transmisi data sing dipercaya kanthi ngirim maneh data sing ilang, rusak utawa telat. Prinsip implementasine lan strategi mekanisme transmisi ulang bakal diterangake lan dianalisis kanthi rinci ing bagean sabanjure. Tetep dirungokake!


Wektu kirim: Feb-24-2025