Transportasi Kaandalan TCP
Urang sadayana wawuh sareng protokol TCP salaku protokol transportasi anu tiasa dipercaya, tapi kumaha éta mastikeun reliabilitas transportasi?
Pikeun ngahontal transmisi anu tiasa dipercaya, seueur faktor anu kedah dipertimbangkeun, sapertos korupsi data, leungitna, duplikasi, sareng pecahan anu teu teratur. Upami masalah ieu teu tiasa direngsekeun, transmisi anu tiasa dipercaya moal tiasa kahontal.
Ku kituna, TCP ngagunakeun mékanisme sapertos nomer runtuyan, balesan pangakuan, kontrol kirim ulang, manajemen sambungan, sareng kontrol jandela pikeun ngahontal transmisi anu tiasa dipercaya.
Dina tulisan ieu, urang bakal fokus kana jandela geser, kontrol aliran sareng kontrol kongesti TCP. Mékanisme retransmisi dibahas sacara misah dina bagian salajengna.
Kontrol Aliran Jaringan
Kontrol Aliran Jaringan atanapi anu dikenal salaku Kontrol Lalu Lintas Jaringan sabenerna mangrupikeun manifestasi tina hubungan anu halus antara produsen sareng konsumen. Anjeun panginten sering mendakan skenario ieu di tempat damel atanapi dina wawancara. Upami kapasitas produsen pikeun ngahasilkeun jauh ngaleuwihan kapasitas konsumen pikeun ngonsumsi, éta bakal nyababkeun antrian nambahan tanpa wates. Dina kasus anu langkung serius, anjeun panginten terang yén nalika pesen RabbitMQ numpuk teuing, éta tiasa nyababkeun turunna kinerja sakumna server MQ. Hal anu sami leres pikeun TCP; upami henteu dipariksa, seueur teuing pesen anu bakal disimpen kana jaringan, sareng konsumen bakal ngaleuwihan kapasitasna, sedengkeun produsen bakal teras ngirim pesen duplikat, anu bakal mangaruhan pisan kinerja jaringan.
Pikeun ngungkulan fénoména ieu, TCP nyayogikeun mékanisme pikeun pangirim pikeun ngontrol jumlah data anu dikirim dumasar kana kapasitas panarima anu saleresna, anu katelah kontrol aliran. Panarima ngajaga jandela panarima, sedengkeun pangirim ngajaga jandela kirim. Perlu dicatet yén Windows ieu ngan ukur pikeun hiji sambungan TCP sareng henteu sadaya sambungan ngabagi jandela.
TCP nyadiakeun kontrol aliran ku cara ngagunakeun variabel pikeun jandela panarima. Jandéla panarima masihan pangirim indikasi sabaraha rohangan cache anu masih sayogi. Pangirim ngontrol jumlah data anu dikirim numutkeun kapasitas panampi anu saleresna ti panarima.
Host panarima ngabéjaan ka pangirim ngeunaan ukuran data anu tiasa ditampi, sareng pangirim ngirim dugi ka wates ieu. Wates ieu nyaéta ukuran jandela, émut kana header TCP? Aya widang jandela panarima, anu dianggo pikeun nunjukkeun jumlah bait anu tiasa atanapi daék ditampi ku panarima.
Host pangirim sacara périodik bakal ngirim pakét probe jandela, anu dianggo pikeun ngadeteksi naha host panarima masih tiasa nampi data. Nalika buffer panarima aya dina bahaya luber, ukuran jandela disetel ka nilai anu langkung alit pikeun nitah pangirim pikeun ngontrol jumlah data anu dikirim.
Ieu diagram Kontrol Aliran Jaringan:
Kontrol Kongési Jaringan
Sateuacan ngenalkeun kontrol kongesti, urang kedah ngartos yén salian ti jandela panarima sareng jandela kirim, aya ogé jandela kongesti, anu utamina dianggo pikeun ngarengsekeun masalah iraha pangirim mimiti ngirim data ka jandela panarima. Ku alatan éta, jandela kongesti ogé dijaga ku pangirim TCP. Urang peryogi algoritma pikeun mutuskeun sabaraha data anu pantes dikirim, kumargi ngirim data sakedik teuing atanapi seueur teuing henteu idéal, ku kituna aya konsép jandela kongesti.
Dina kontrol aliran jaringan samemehna, anu urang hindari nyaéta pangirim ngeusian cache panarima ku data, tapi urang teu terang naon anu kajantenan dina jaringan. Biasana, jaringan komputer aya dina lingkungan anu dibagi. Hasilna, tiasa aya panyumbatan jaringan kusabab komunikasi antara host anu sanés.
Nalika jaringan macét, upami seueur pakét anu teras dikirim, éta tiasa nyababkeun masalah sapertos reureuh sareng leungitna pakét. Dina tahap ieu, TCP bakal ngirimkeun deui data, tapi pangiriman deui bakal ningkatkeun beban dina jaringan, anu nyababkeun reureuh anu langkung ageung sareng langkung seueur leungitna pakét. Ieu tiasa lebet kana siklus anu setan sareng teras-terasan ageung.
Ku kituna, TCP teu tiasa ngalalaworakeun naon anu kajantenan dina jaringan. Nalika jaringan padet, TCP ngorbankeun dirina ku cara ngirangan jumlah data anu dikirimkeun.
Ku kituna, diusulkeun pikeun nyegah sakabéh jaringan pinuh ku data ti pangirim. Pikeun ngatur jumlah data anu kedah dikirim ku pangirim, TCP ngahartikeun konsép anu disebut jandela kongesti. Algoritma kontrol kongesti bakal nyaluyukeun ukuran jandela kongesti numutkeun tingkat kongesti jaringan, supados tiasa ngontrol jumlah data anu dikirim ku pangirim.
Naon ari jandela panyumbatan? Naon hubunganana ieu sareng jandela pangiriman?
Jandéla Kongesti nyaéta variabel kaayaan anu dijaga ku pangirim anu nangtukeun jumlah data anu tiasa dikirim ku pangirim. Jandéla kongesti robih sacara dinamis numutkeun tingkat kongesti jaringan.
Jandéla Pangirim nyaéta ukuran jandéla anu disatujuan antara pangirim sareng panarima anu nunjukkeun jumlah data anu tiasa ditampi ku panarima. Jandéla panyumbatan sareng jandéla pangirim aya patalina; jandéla pangirim biasana sami sareng minimum tina jandéla panyumbatan sareng panarima, nyaéta, swnd = min(cwnd, rwnd).
Jandéla panyumbatan robah sapertos kieu:
Upami teu aya kongesti dina jaringan, nyaéta, teu aya waktos retransmisi anu kaluar, jandela kongesti bakal ningkat.
Upami aya panyumbatan dina jaringan, jandela panyumbatan bakal turun.
Pangirim nangtukeun naha jaringan macét ku cara niténan naha pakét pangakuan ACK ditampi dina waktos anu ditangtukeun. Upami pangirim henteu nampi pakét pangakuan ACK dina waktos anu ditangtukeun, jaringan dianggap macét.
Salian ti jandela panyumbatan, ayeuna waktuna ngabahas algoritma kontrol panyumbatan TCP. Algoritma kontrol panyumbatan TCP diwangun ku tilu bagian utama:
Mimitian Lambat:Mimitina, jandela kongesti cwnd relatif leutik, sareng pangirim ningkatkeun jandela kongesti sacara éksponénsial pikeun gancang adaptasi sareng kapasitas jaringan.
Ngahindarkeun kamacetan:Saatos jandela kongesti ngaleuwihan ambang batas anu tangtu, pangirim ningkatkeun jandela kongesti sacara linier pikeun ngalambatkeun laju kamekaran jandela kongesti sareng nyingkahan kaleuwihan jaringan.
Pamulihan Gancang:Upami aya panyumbatan, pangirim bakal ngabagi satengah jandela panyumbatan sareng lebet kana kaayaan pamulihan gancang pikeun nangtukeun lokasi pamulihan jaringan ngalangkungan acks duplikat anu ditampi, teras teras ningkatkeun jandela panyumbatan.
Mimitian Lambat
Nalika sambungan TCP dijieun, cwnd jandela kongesti mimitina disetel ka nilai MSS (ukuran segmen maksimum) minimum. Ku cara kieu, laju pangiriman awal nyaéta sakitar MSS/RTT bait/detik. Bandwidth anu sayogi saleresna biasana langkung ageung tibatan MSS/RTT, janten TCP hoyong mendakan laju pangiriman anu optimal, anu tiasa kahontal ku cara ngamimitian laun.
Dina prosés slow-start, nilai cwnd jandela kongesti bakal diinisialisasi ka 1 MSS, sareng unggal waktos segmen pakét anu dikirimkeun diakui, nilai cwnd bakal ningkat hiji MSS, nyaéta, nilai cwnd bakal janten 2 MSS. Saatos éta, nilai cwnd digandakeun pikeun unggal transmisi segmen pakét anu suksés, sareng saterasna. Prosés kamekaran khusus dipidangkeun dina gambar di handap ieu.
Nanging, laju pangiriman teu salawasna tiasa ningkat; kamekaran éta kedah réngsé iraha waé. Janten, iraha kanaékan laju pangiriman réngsé? Mimitian laun biasana mungkas kanaékan laju pangiriman ku sababaraha cara:
Cara anu kahiji nyaéta kasus leungitna pakét nalika prosés ngirim mimiti laun. Nalika leungitna pakét kajantenan, TCP nyetel cwnd jandela kongesti pangirim ka 1 sareng ngamimitian deui prosés mimiti laun. Dina titik ieu, konsép ambang mimiti laun ssthresh diwanohkeun, anu nilai awalna satengah tina nilai cwnd anu ngahasilkeun leungitna pakét. Nyaéta, nalika kongesti dideteksi, nilai ssthresh nyaéta satengah tina nilai jandela.
Cara kadua nyaéta sacara langsung ngahubungkeun sareng nilai ambang mimiti laun ssthresh. Kusabab nilai ssthresh satengah tina nilai jandela nalika panyumbatan dideteksi, leungitna pakét tiasa kajantenan unggal dua kali lipat nalika cwnd langkung ageung tibatan ssthresh. Ku alatan éta, langkung saé nyetel cwnd ka ssthresh, anu bakal nyababkeun TCP ngalih ka mode kontrol panyumbatan sareng réngsé mimiti laun.
Cara pamungkas pikeun ngeureunkeun slow start nyaéta upami tilu redundant acks dideteksi, TCP ngalakukeun retransmission gancang sareng lebet kana kaayaan recovery. (Upami teu jelas kunaon aya tilu pakét ACK, éta bakal dijelaskeun sacara misah dina mékanisme retransmission.)
Ngahindarkeun Kamacetan
Nalika TCP asup kana kaayaan kontrol kongesti, cwnd disetel ka satengah tina ambang kongesti ssthresh. Ieu ngandung harti yén nilai cwnd teu tiasa digandakeun unggal waktos segmen pakét ditampi. Sabalikna, pendekatan anu relatif konservatif diadopsi dimana nilai cwnd ningkat ngan ukur hiji MSS (panjang segmen pakét maksimum) saatos unggal transmisi réngsé. Salaku conto, sanaos 10 segmen pakét diakui, nilai cwnd ngan ukur bakal ningkat hiji MSS. Ieu mangrupikeun modél pertumbuhan linier sareng ogé gaduh wates luhur dina pertumbuhan. Nalika leungitna pakét kajantenan, nilai cwnd dirobih janten MSS, sareng nilai ssthresh disetel ka satengah tina cwnd. Atanapi éta ogé bakal ngeureunkeun pertumbuhan MSS nalika 3 réspon ACK redundan ditampi. Upami tilu ack redundan masih ditampi saatos ngirangan satengah nilai cwnd, nilai ssthresh kacatet salaku satengah nilai cwnd sareng kaayaan pamulihan gancang diasupkeun.
Pamulihan Gancang
Dina kaayaan Fast Recovery, nilai cwnd jandela kongesti ningkat ku hiji MSS pikeun unggal ACK redundan anu ditampi, nyaéta, ACK anu henteu sumping sacara berurutan. Ieu pikeun ngamangpaatkeun segmen pakét anu parantos suksés dikirimkeun dina jaringan pikeun ningkatkeun efisiensi transmisi sabisa-bisa.
Nalika ACK tina segmen pakét anu leungit sumping, TCP ngirangan nilai cwnd teras lebet kana kaayaan nyingkahan kongesti. Ieu pikeun ngontrol ukuran jandela kongesti sareng nyingkahan paningkatan kongesti jaringan salajengna.
Upami aya waktos kaluar saatos kaayaan kontrol kongesti, kaayaan jaringan janten langkung serius sareng TCP migrasi tina kaayaan nyingkahan kongesti ka kaayaan mimiti laun. Dina hal ieu, nilai cwnd jandela kongesti disetel ka 1 MSS, panjang segmen pakét maksimum, sareng nilai ssthresh ambang mimiti laun disetel ka satengah tina cwnd. Tujuan ieu nyaéta pikeun ningkatkeun deui ukuran jandela kongesti sacara laun saatos jaringan pulih pikeun ngimbangan laju transmisi sareng tingkat kongesti jaringan.
Ringkesan
Salaku protokol transportasi anu tiasa dipercaya, TCP nerapkeun transportasi anu tiasa dipercaya ku nomer runtuyan, pangakuan, kontrol transmisi ulang, manajemen sambungan sareng kontrol jandela. Di antarana, mékanisme kontrol aliran ngontrol jumlah data anu dikirim ku pangirim numutkeun kapasitas panampi anu saleresna ti panarima, anu nyingkahan masalah panyumbatan jaringan sareng degradasi kinerja. Mékanisme kontrol panyumbatan nyingkahan kajadian panyumbatan jaringan ku cara nyaluyukeun jumlah data anu dikirim ku pangirim. Konsép jandela panyumbatan sareng jandela pangiriman aya hubunganana, sareng jumlah data di pangirim dikontrol ku cara nyaluyukeun ukuran jandela panyumbatan sacara dinamis. Mimitian anu laun, nyingkahan panyumbatan sareng pamulihan anu gancang mangrupikeun tilu bagian utama tina algoritma kontrol panyumbatan TCP, anu nyaluyukeun ukuran jandela panyumbatan ngalangkungan strategi anu béda pikeun nyaluyukeun kana kapasitas sareng tingkat panyumbatan jaringan.
Dina bagian salajengna, urang bakal nalungtik mékanisme transmisi ulang TCP sacara rinci. Mékanisme transmisi ulang mangrupikeun bagian penting tina TCP pikeun ngahontal transmisi anu tiasa dipercaya. Éta mastikeun transmisi data anu tiasa dipercaya ku cara ngirimkeun deui data anu leungit, rusak, atanapi telat. Prinsip sareng strategi palaksanaan mékanisme transmisi ulang bakal diwanohkeun sareng dianalisis sacara rinci dina bagian salajengna. Teraskeun!
Waktos posting: 24-Peb-2025

