ʻO ka halihali hilinaʻi TCP
Ua kamaʻāina mākou a pau i ka protocol TCP ma ke ʻano he protocol transport hilinaʻi, akā pehea e hōʻoia ai i ka hilinaʻi o ka halihali?
No ka hoʻokō pono ʻana i ka hoʻouna ʻana, pono e noʻonoʻo ʻia nā mea he nui, e like me ka palaho ʻikepili, ka nalowale, ka hoʻopili ʻana, a me nā shards out-of-order. Inā ʻaʻole hiki ke hoʻoponopono ʻia kēia mau pilikia, ʻaʻole hiki ke hoʻokō ʻia ka hoʻoili pono.
No laila, hoʻohana ʻo TCP i nā ʻano hana e like me ka helu kaʻina, ka pane ʻae, ka mana hoʻouna hou, ka hoʻokele pili, a me ka hoʻokele puka makani e hoʻokō pono i ka hoʻouna ʻana.
Ma kēia pepa, e kālele ana mākou i ka puka aniani hoʻoheheʻe, ka mana kahe a me ka hoʻomalu ʻana o TCP. Hoʻokaʻawale ʻia ka mīkini hoʻouna hou i ka ʻāpana aʻe.
Manaʻo Kaheʻe Pūnaewele
ʻO Network Flow Control a i ʻole ʻike ʻia ʻo Network Traffic Control he hōʻike maoli ia o ka pilina maʻalahi ma waena o nā mea hana a me nā mea kūʻai aku. Ua ʻike nui paha ʻoe i kēia hiʻohiʻona ma ka hana a i ʻole ma nā nīnauele. Inā ʻoi aku ka nui o ka mana o ka mea hana e hana ma mua o ka hiki o ka mea kūʻai aku e ʻai, e ulu mau ka pila. Ma kahi hihia koʻikoʻi, ʻike paha ʻoe i ka wā e hōʻiliʻili nui ai nā memo RabbitMQ, hiki iā ia ke hōʻemi i ka hana o ka server MQ holoʻokoʻa. Pela no ka TCP; inā haʻalele ʻole ʻia, e hoʻokomo ʻia nā leka he nui i loko o ka pūnaewele, a ʻoi aku ka nui o nā mea kūʻai aku ma mua o ko lākou hiki, ʻoiai nā mea hana e hoʻomau i ka hoʻouna ʻana i nā leka pālua, e hoʻopilikia nui i ka hana o ka pūnaewele.
No ka hoʻoponopono ʻana i kēia ʻano, hāʻawi ʻo TCP i kahi mīkini no ka mea hoʻouna e hoʻomalu i ka nui o ka ʻikepili i hoʻouna ʻia ma muli o ka hiki ke hoʻokipa maoli o ka mea hoʻokipa, i ʻike ʻia ʻo ka mana kahe. Mālama ka mea hoʻokipa i kahi puka hoʻokipa, ʻoiai ka mea hoʻouna e mālama i kahi puka hoʻouna. Pono e hoʻomaopopo ʻia ʻo kēia mau Windows wale nō no ka pilina TCP hoʻokahi a ʻaʻole nā pili āpau e kaʻana like i kahi pukaaniani.
Hāʻawi ʻo TCP i ka mana kahe ma ka hoʻohana ʻana i kahi loli no ka puka makani loaʻa. Hāʻawi ka puka hoʻokipa i ka mea hoʻouna i hōʻike i ka nui o ka lumi huna i loaʻa. Mālama ka mea hoʻouna i ka nui o ka ʻikepili i hoʻouna ʻia e like me ka hiki ke ʻae maoli o ka mea loaʻa.
Hoʻomaopopo ka mea hoʻokipa i ka mea hoʻouna i ka nui o ka ʻikepili hiki ke loaʻa iā ia, a hoʻouna ka mea hoʻouna i kēia palena. ʻO kēia palena ka nui o ka puka makani, e hoʻomanaʻo i ke poʻo TCP? Aia kahi kahua puka puka loaʻa, i hoʻohana ʻia e hōʻike i ka helu o nā bytes i hiki a makemake paha ka mea hoʻokipa.
Na ka mea hoʻouna hoʻouna e hoʻouna i kēlā me kēia manawa i ka ʻeke puka aniani, i hoʻohana ʻia e ʻike inā hiki i ka mea hoʻokipa ke ʻae i ka ʻikepili. Ke pilikia ka pale o ka mea hoʻokipa, ua hoʻonohonoho ʻia ka nui o ka puka makani i kahi waiwai liʻiliʻi e aʻo i ka mea hoʻouna e hoʻokele i ka nui o ka ʻikepili i hoʻouna ʻia.
Eia ke kiʻi hoʻomalu kahe o ka Pūnaewele:
Ka hoʻomalu ʻana i ka ʻupena
Ma mua o ka hoʻokomo ʻana i ka mana congestion, pono mākou e hoʻomaopopo i ka hoʻohui ʻana i ka puka aniani a me ka puka makani hoʻouna, aia pū kekahi puka makani congestion, kahi i hoʻohana nui ʻia e hoʻoponopono i ka pilikia o ka manawa e hoʻomaka ai ka mea hoʻouna e hoʻouna i ka ʻikepili i ka puka aniani. No laila, mālama ʻia ka puka aniani e ka mea hoʻouna TCP. Pono mākou i kahi algorithm e hoʻoholo ai i ka nui o ka ʻikepili kūpono e hoʻouna ai, ʻoiai ʻo ka hoʻouna ʻana i ka liʻiliʻi a i ʻole ka nui o ka ʻikepili ʻaʻole kūpono, no laila ke manaʻo o ka puka aniani.
Ma ka mana kahe o ka pūnaewele mua, ʻo ka mea a mākou i pale aku ai, ʻo ia ka mea hoʻouna e hoʻopiha ana i ka huna huna o ka mea hoʻokipa me ka ʻikepili, akā ʻaʻole mākou i ʻike i ka mea e hana nei i ka pūnaewele. ʻO ka maʻamau, aia nā pūnaewele kamepiula i kahi kaiapuni like. ʻO ka hopena, hiki ke hoʻopili ʻia ka pūnaewele ma muli o ke kamaʻilio ʻana ma waena o nā pūʻali ʻē aʻe.
Ke hoʻopili ʻia ka pūnaewele, inā hoʻomau ʻia ka nui o nā ʻeke e hoʻouna ʻia, hiki ke hoʻopilikia i nā pilikia e like me ka lohi a me ka nalowale o nā ʻeke. I kēia manawa, e hoʻouna hou ʻo TCP i ka ʻikepili, akā e hoʻonui ka hoʻihoʻi ʻana i ke kaumaha ma ka pūnaewele, e hopena i ka lohi nui a me ka nui o nā poho packet. Hiki i kēia ke komo i loko o kahi pōʻai ʻino a hoʻomau i ka ulu nui.
No laila, ʻaʻole hiki iā TCP ke haʻalele i ka mea e hana nei ma ka pūnaewele. Ke hoʻopaʻa ʻia ka pūnaewele, hāʻawi ʻo TCP iā ia iho ma ka hoʻemi ʻana i ka nui o ka ʻikepili e hoʻouna ai.
No laila, manaʻo ʻia ka mana congestion, kahi e pale ai i ka hoʻopiha ʻana i ka pūnaewele holoʻokoʻa me ka ʻikepili mai ka mea hoʻouna. No ka hoʻoponopono ʻana i ka nui o ka ʻikepili e hoʻouna ai ka mea hoʻouna, wehewehe ʻo TCP i kahi manaʻo i kapa ʻia ʻo ka puka aniani. E hoʻoponopono ka algorithm congestion control i ka nui o ka puka aniani e like me ka degere congestion o ka pūnaewele, i mea e hoʻomalu ai i ka nui o ka ʻikepili i hoʻouna ʻia e ka mea hoʻouna.
He aha ke ʻano o ka puka aniani? He aha ka pili o kēia me ka puka hoʻouna?
ʻO ka Window Congestion kahi ʻano hoʻololi mokuʻāina i mālama ʻia e ka mea hoʻouna e hoʻoholo ai i ka nui o ka ʻikepili i hiki i ka mea hoʻouna ke hoʻouna. Hoʻololi ikaika ka puka aniani e like me ke kiʻekiʻe o ka congestion o ka pūnaewele.
ʻO ka Sending Window kahi i ʻae ʻia ma ka nui o ka puka makani ma waena o ka mea hoʻouna a me ka mea hoʻokipa e hōʻike ana i ka nui o ka ʻikepili i hiki ke loaʻa i ka mea lawe. Ua pili ka puka aniani a me ka puka hoʻouna; ʻO ka puka makani hoʻouna maʻamau e like me ka liʻiliʻi o ka congestion a me ka loaʻa ʻana o Windows, ʻo ia hoʻi, swnd = min(cwnd, rwnd).
Hoʻololi ka puka makani congestion cwnd penei:
Inā ʻaʻohe congestion i loko o ka pūnaewele, ʻo ia hoʻi, ʻaʻohe manawa o ka hoʻouna hou ʻana, piʻi ka puka aniani.
Inā loaʻa ka congestion ma ka pūnaewele, e emi ana ka puka makani.
Na ka mea hoʻouna e hoʻoholo inā paʻa ka pūnaewele ma ka nānā ʻana i ka loaʻa ʻana o ka ʻeke hōʻoia ACK i loko o ka manawa i ʻōlelo ʻia. Inā ʻaʻole i loaʻa i ka mea hoʻouna ka ʻeke hōʻoia ACK i loko o ka manawa i ʻōlelo ʻia, manaʻo ʻia ua paʻa ka pūnaewele.
Ma waho aʻe o ka puka makani congestion, ʻo ia ka manawa e kūkākūkā ai i ka TCP congestion control algorithm. ʻEkolu mau ʻāpana nui ʻo TCP congestion control algorithm:
Hoʻomaka lohi:I ka hoʻomaka ʻana, liʻiliʻi liʻiliʻi ka puka makani congestion cwnd, a hoʻonui ka mea hoʻouna i ka puka makani congestion e hoʻololi koke i ka hiki o ka pūnaewele.
ʻAʻole ʻāpiki:Ma hope o ka hoʻonui ʻana o ka puka aniani i kahi paepae, e hoʻonui ka mea hoʻouna i ka puka aniani ma ke ʻano laina e hoʻolōʻihi i ka ulu ʻana o ka puka aniani a pale i ka hoʻonui ʻana i ka pūnaewele.
Hoʻihoʻi wikiwiki:Inā loaʻa ka congestion, hoʻokaʻawale ka mea hoʻouna i ka ʻāpana o ka puka aniani a komo i ke kūlana hoʻihoʻi wikiwiki e hoʻoholo i kahi o ka hoʻihoʻi hou ʻana o ka pūnaewele ma o nā acks i loaʻa, a laila hoʻomau i ka hoʻonui ʻana i ka puka aniani.
Hoʻomaka lohi
Ke hoʻokumu ʻia kahi pilina TCP, ua hoʻonohonoho mua ʻia ka puka makani congestion cwnd i ka liʻiliʻi liʻiliʻi o ka waiwai MSS (nui ka nui o ka māhele). Ma kēia ala, ʻo ka helu hoʻouna mua e pili ana i MSS/RTT bytes/second. ʻOi aku ka nui o ka bandwidth i loaʻa ma mua o MSS/RTT, no laila makemake ʻo TCP e ʻimi i ka helu hoʻouna maikaʻi loa, hiki ke loaʻa ma o ka hoʻomaka lohi.
Ma ke kaʻina hoʻomaka lohi, e hoʻomaka ka waiwai o ka cwnd window congestion i 1 MSS, a i kēlā me kēia manawa e ʻae ʻia ka māhele paʻi i hoʻouna ʻia, e hoʻonui ʻia ka waiwai o cwnd e hoʻokahi MSS, ʻo ia hoʻi, lilo ka waiwai o cwnd i 2 MSS. Ma hope o kēlā, pāpālua ʻia ka waiwai o cwnd no kēlā me kēia hoʻouna kūleʻa o kahi ʻāpana packet, a pēlā aku. Hōʻike ʻia ke kaʻina hana ulu kikoʻī ma kēia kiʻi.
Eia naʻe, ʻaʻole hiki ke hoʻonui i ka helu hoʻouna; pono e pau ka ulu ana i kekahi manawa. No laila, i ka manawa hea e pau ai ka piʻi ʻana o ka hoʻouna? Hoʻopau maʻamau ka hoʻomaka lohi i ka piʻi ʻana o ka uku hoʻouna ma kekahi o nā ala:
ʻO ke ala mua, ʻo ia ka hihia o ka poho ʻeke i ka wā o ka hoʻouna ʻana o ka hoʻomaka lohi. Ke loaʻa ka poho ʻeke, hoʻonohonoho ʻo TCP i ka puka makani hoʻokuʻu o ka mea hoʻouna i ka 1 a hoʻomaka hou i ke kaʻina hana lohi. I kēia manawa, hoʻokomo ʻia kahi manaʻo o ka paepae hoʻomaka ssthresh, nona ka waiwai mua he hapalua o ka waiwai o cwnd e hoʻohua ai i ka poho packet. ʻO ia hoʻi, ke ʻike ʻia ka congestion, ʻo ka waiwai o ssthresh ka hapalua o ka waiwai pukaaniani.
ʻO ke ala ʻelua e hoʻopili pololei me ka waiwai o ka ssthresh paepae hoʻomaka. No ka mea, ʻo ka waiwai o ka ssthresh ka hapalua o ka waiwai puka makani ke ʻike ʻia ka hoʻopaʻa ʻana, hiki ke nalowale i ka ʻeke me kēlā me kēia pālua ke ʻoi aku ka nui o ka cwnd ma mua o ka ssthresh. No laila, ʻoi aku ka maikaʻi o ka hoʻonohonoho ʻana i ka cwnd i ssthresh, kahi e hoʻololi ai ʻo TCP i ke ʻano hoʻomalu congestion a hoʻopau i ka hoʻomaka lohi.
ʻO ke ala hope loa e hoʻomaka ai ka hoʻomaka lohi inā ʻike ʻia ʻekolu acks redundant, hana ʻo TCP i kahi hoʻihoʻi wikiwiki a komo i ke kūlana hoʻihoʻi. (Inā ʻaʻole maopopo i ke kumu he ʻekolu mau ʻeke ACK, e wehewehe ʻokoʻa ʻia ia ma ke ʻano retransmission.)
Hoʻopaʻa ʻana
Ke komo ʻo TCP i ka mokuʻāina hoʻomalu congestion, hoʻonohonoho ʻia ka cwnd i ka hapalua o ka ssthresh paepae congestion. 'O ia ho'i, 'a'ole hiki ke pāpālua 'ia ka waiwai o cwnd i kēlā me kēia manawa i loa'a mai ka māhele packet. Akā, hoʻohana ʻia kahi ʻano conservative kahi e hoʻonui ʻia ai ka waiwai o ka cwnd e hoʻokahi MSS (ka lōʻihi o ka ʻāpana packet kiʻekiʻe) ma hope o ka pau ʻana o kēlā me kēia hoʻouna. No ka laʻana, inā e ʻae ʻia nā ʻāpana ʻeke he 10, e piʻi wale ka waiwai o cwnd i hoʻokahi MSS. He kumu hoʻohālike laina laina kēia a loaʻa nō hoʻi kahi palena kiʻekiʻe o ka ulu ʻana. Ke hoʻololi ʻia ka waiwai o cwnd i MSS, a hoʻonoho ʻia ka waiwai o ka ssthresh i ka hapalua o ka cwnd. A i ʻole e hoʻōki i ka ulu ʻana o MSS ke loaʻa nā pane ACK redundant 3. Inā loaʻa mau ʻekolu ack redundant ma hope o ka hoʻokaʻawale ʻana i ka waiwai o cwnd, ua hoʻopaʻa ʻia ka waiwai o ssthresh ma ke ʻano he hapalua o ka waiwai o cwnd a ua hoʻokomo ʻia ke kūlana hoʻihoʻi wikiwiki.
Hoʻihoʻi wikiwiki
Ma ka moku'āina Fast Recovery, ho'onui 'ia ka waiwai o ka puka makani congestion cwnd e ho'okahi MSS no kēlā me kēia ACK redundant i loa'a, 'o ia ho'i, ACK i hiki 'ole ma ke ka'ina. ʻO kēia ka hoʻohana ʻana i nā ʻāpana packet i hoʻouna maikaʻi ʻia i ka pūnaewele e hoʻomaikaʻi i ka pono o ka hoʻouna ʻana e like me ka hiki.
I ka hiki ʻana mai o kahi ACK o ka ʻāpana ʻeke i nalowale, hoʻemi ʻo TCP i ka waiwai o cwnd a laila komo i ke kūlana pale ʻana. ʻO kēia ka mea e kāohi ai i ka nui o ka puka aniani a pale i ka hoʻonui ʻana i ka hoʻonui ʻana i ka pūnaewele.
Inā loaʻa kahi manawa hoʻopau ma hope o ke kūlana hoʻomalu hoʻopaʻa ʻana, ʻoi aku ka koʻikoʻi o ke kūlana o ka pūnaewele a neʻe ka TCP mai ke kūlana pale ʻana i ke kūlana hoʻomaka lohi. I kēia hihia, ua hoʻonohonoho ʻia ka waiwai o ka puka makani congestion cwnd i 1 MSS, ka lōʻihi o ka ʻāpana packet lōʻihi, a ua hoʻonohonoho ʻia ka waiwai o ka paepae hoʻomaka ssthresh i ka hapalua o ka cwnd. ʻO ke kumu o kēia e hoʻonui hou i ka nui o ka puka aniani ma hope o ka hoʻihoʻi ʻana o ka pūnaewele e kaulike i ka wikiwiki o ka hoʻouna ʻana a me ke kiʻekiʻe o ka hoʻopili pūnaewele.
Hōʻuluʻulu manaʻo
Ma ke ʻano he protocol transport hilinaʻi, hoʻokō ʻo TCP i ka halihali hilinaʻi ma ka helu kaʻina, ka ʻae, ka mana retransmission, ka hoʻokele pili ʻana a me ka mana puka makani. I waena o lākou, ka mana kahe e hoʻomalu i ka nui o ka ʻikepili i hoʻouna ʻia e ka mea hoʻouna e like me ka hiki ke loaʻa maoli o ka mea hoʻokipa, ka mea e pale ai i nā pilikia o ka congestion network a me ka degradation hana. Ke pale aku nei ka mīkini hoʻomalu congestion i ka hiki ʻana mai o ka congestion congestion ma ka hoʻoponopono ʻana i ka nui o ka ʻikepili i hoʻouna ʻia e ka mea hoʻouna. ʻO nā manaʻo o ka puka makani congestion a me ka puka makani hoʻouna e pili ana kekahi i kekahi, a ʻo ka nui o ka ʻikepili i ka mea hoʻouna e hoʻomalu ʻia e ka hoʻololi ʻana i ka nui o ka puka makani congestion. ʻO ka hoʻomaka lohi, ka ʻalo ʻana a me ka hoʻihoʻi wikiwiki ʻana nā ʻāpana nui ʻekolu o ka TCP congestion control algorithm, e hoʻoponopono i ka nui o ka puka aniani ma o nā hoʻolālā like ʻole e hoʻololi ai i ka hiki a me ka degere congestion o ka pūnaewele.
Ma ka ʻāpana aʻe, e nānā pono mākou i ka mīkini hoʻouna hou o TCP. He ʻāpana koʻikoʻi ka mīkini hoʻouna hou i ka TCP e hoʻokō i ka hoʻouna pono. E hōʻoiaʻiʻo i ka hoʻoili pono ʻana o ka ʻikepili ma o ka hoʻouna hou ʻana i nā ʻikepili i nalowale, ʻino a lohi paha. E hoʻolauna ʻia a nānā ʻia ke kumu hoʻokō a me ka hoʻolālā o ka mīkini hoʻouna hou ʻia ma ka ʻāpana aʻe. E noho mālie!
Ka manawa hoʻouna: Feb-24-2025