Makamin sirri na TCP: Sarrafa Gudun Yanar Gizo da Kula da Cushewar hanyar sadarwa

TCP Dogaran Sufuri
Dukkanmu mun san ka'idar TCP a matsayin amintacciyar ka'idar sufuri, amma ta yaya yake tabbatar da amincin sufuri?

Don cimma amintaccen watsawa, ana buƙatar la'akari da abubuwa da yawa, kamar lalata bayanai, asara, kwafi, da ɓangarorin da ba su da tsari. Idan ba a iya magance waɗannan matsalolin ba, ba za a iya samun ingantaccen watsawa ba.

Saboda haka, TCP yana amfani da hanyoyi kamar lambar jeri, amsa amsawa, sake aikawa da sarrafawa, sarrafa haɗin kai, da sarrafa taga don cimma ingantaccen watsawa.

A cikin wannan takarda, za mu mayar da hankali kan taga mai zamewa, sarrafa kwarara da kuma kula da cunkoso na TCP. An rufe tsarin sake watsawa daban a cikin sashe na gaba.

Sarrafa Gudun Yanar Gizo
Sarrafa Gudun Yanar Gizo ko kuma sani azaman Gudanar da zirga-zirgar hanyar sadarwa shine ainihin bayyanar da dabarar alaƙar da ke tsakanin masu samarwa da masu siye. Wataƙila kun ci karo da wannan yanayin da yawa a wurin aiki ko a cikin hira. Idan ƙarfin samarwa mai samarwa ya zarce ƙarfin mabukaci don cinyewa, hakan zai sa layin yayi girma har abada. A cikin wani yanayi mai mahimmanci, ƙila za ku san cewa lokacin da saƙonnin RabbitMQ suka yi yawa, yana iya haifar da lalatawar sabar MQ gaba ɗaya. Hakanan gaskiya ne ga TCP; idan ba a kiyaye ba, za a sanya sakonni da yawa a cikin hanyar sadarwar, kuma masu amfani da su za su wuce karfinsu, yayin da furodusoshi za su ci gaba da aikawa da sakonnin kwafi, wanda zai yi tasiri sosai a aikin hanyar sadarwa.

Don magance wannan al'amari, TCP yana samar da wata hanya don mai aikawa don sarrafa adadin bayanan da aka aika bisa ga ainihin ƙarfin liyafar mai karɓa, wanda aka sani da sarrafa kwarara. Mai karɓa yana kula da taga mai karɓa, yayin da mai aikawa yana kula da taga aikawa. Ya kamata a lura cewa waɗannan Windows ɗin don haɗin TCP guda ɗaya ne kawai kuma ba duk haɗin gwiwa ke raba taga ba.

TCP yana ba da ikon sarrafa kwarara ta amfani da maɓalli don taga mai karɓa. Tagan mai karɓa yana ba mai aikawa nuni nunin adadin sarari na cache har yanzu. Mai aikawa yana sarrafa adadin bayanan da aka aika bisa ga ainihin ƙarfin karɓar mai karɓa.

Mai karɓa yana sanar da mai aikawa da girman bayanan da zai iya karɓa, kuma mai aikawa ya aika har zuwa wannan iyaka. Wannan iyaka shine girman taga, tuna da taken TCP? Akwai filin taga mai karɓa, wanda ake amfani da shi don nuna adadin bytes da mai karɓa zai iya ko yana son karɓa.

Mai watsa shiri zai aika da fakitin binciken taga lokaci-lokaci, wanda ake amfani da shi don gano ko har yanzu mai karɓar mai karɓa yana iya karɓar bayanai. Lokacin da buffer mai karɓar yana cikin haɗarin ambaliya, girman taga yana saita zuwa ƙaramin ƙima don umurci mai aikawa ya sarrafa adadin bayanan da aka aika.

Anan ga zane-zane mai sarrafa kwararar hanyar sadarwa:

Kula da zirga-zirga

Sarrafa cunkoso na hanyar sadarwa
Kafin gabatar da tsarin hana cunkoso, ya kamata mu fahimci cewa baya ga taga mai karba da tagar aikawa, akwai kuma tagar cunkoso, wacce aka fi amfani da ita wajen magance matsalar ta yadda mai aikawa zai fara aikawa da bayanai zuwa tagar karba. Don haka, tagar cunkoso kuma ana kiyaye ta ta mai aikawa na TCP. Muna buƙatar algorithm don yanke shawarar adadin bayanan da ya dace don aikawa, tun da aika bayanai kaɗan ko da yawa bai dace ba, saboda haka manufar taga cunkoso.

A cikin tsarin kula da hanyoyin sadarwa na baya, abin da muka guje wa shi ne mai aikawa ya cika ma'ajiyar mai karɓa da bayanai, amma ba mu san abin da ke faruwa a cikin hanyar sadarwa ba. Yawanci, cibiyoyin sadarwa na kwamfuta suna cikin mahalli na gama gari. A sakamakon haka, za a iya samun cunkoson hanyar sadarwa saboda sadarwa tsakanin sauran runduna.

Lokacin da hanyar sadarwa ta kasance cikin cunkoso, idan an ci gaba da aikawa da fakiti masu yawa, yana iya haifar da matsaloli kamar jinkirtawa da asarar fakiti. A wannan lokaci, TCP zai sake aikawa da bayanan, amma sakewa zai kara nauyi akan hanyar sadarwa, wanda zai haifar da jinkiri mai girma da kuma asarar fakiti. Wannan zai iya shiga cikin mummunan yanayi kuma ya ci gaba da girma.

Don haka, TCP ba zai iya watsi da abin da ke faruwa akan hanyar sadarwa ba. Lokacin da cibiyar sadarwa ta cika cunkoso, TCP yana sadaukar da kansa ta hanyar rage adadin bayanan da yake aikawa.

Don haka, ana ba da shawarar sarrafa cunkoso, wanda ke nufin gujewa cika dukkan hanyar sadarwa tare da bayanai daga mai aikawa. Don daidaita adadin bayanan da mai aikawa ya kamata ya aika, TCP ya bayyana ra'ayi da ake kira taga cunkoso. Algorithm na sarrafa cunkoso zai daidaita girman taga cunkoso bisa ga matakin cunkoso na hanyar sadarwa, don sarrafa adadin bayanan da mai aikawa ya aiko.

Menene taga cunkoso? Menene alakar wannan da taga aika?

Tagan Cunkoso madaidaicin jiha ne wanda mai aikawa ke kiyayewa wanda ke ƙayyade adadin bayanan da mai aikawa zai iya aikawa. Tagan cunkoso yana canzawa sosai bisa ga matakin cunkoso na hanyar sadarwa.

Tagar Aika yarjejeniya ce akan girman taga tsakanin mai aikawa da mai karɓa wanda ke nuna adadin bayanan da mai karɓa zai iya karɓa. Tagar cunkoso da taga mai aikawa suna da alaƙa; taga aika yawanci daidai yake da mafi ƙarancin cunkoso da karɓar Windows, wato, swnd = min(cwnd, rwnd).

Tagan cunkoso yana canzawa kamar haka:

Idan babu cunkoso a cikin hanyar sadarwar, watau, babu lokacin sake aikawa da ke faruwa, taga cunkoso yana ƙaruwa.

Idan akwai cunkoso a cikin hanyar sadarwa, taga cunkoso yana raguwa.

Mai aikawa yana ƙayyade ko hanyar sadarwar tana da cunkoso ta lura ko an karɓi fakitin amincewar ACK a cikin ƙayyadadden lokacin. Idan mai aikawa bai karɓi fakitin amincewar ACK ba a cikin ƙayyadadden lokacin, ana ɗaukar cewa hanyar sadarwar tana cunkoso.

Baya ga taga cunkoso, lokaci yayi da za a tattauna algorithm na sarrafa cunkoso na TCP. Algorithm na sarrafa cunkoso na TCP ya ƙunshi manyan sassa uku:

Slow Start:Da farko, taga cunkoson cwn yana da ƙanƙanta, kuma mai aikawa yana ƙara tagar cunkoso da sauri don daidaitawa da ƙarfin hanyar sadarwa.
Gujewa cunkoso:Bayan da taga cunkoso ya wuce wani kofa, mai aikawa yana ƙara taga cunkoso a cikin layi ɗaya don rage girman ci gaban taga cunkoso da kuma guje wa wuce gona da iri na hanyar sadarwa.
Maida sauri:Idan cunkoso ya faru, mai aikawa ya raba taga cunkoso kuma ya shiga yanayin farfadowa da sauri don sanin wurin da za a dawo da hanyar sadarwa ta hanyar kwafin acks ɗin da aka karɓa, sannan ya ci gaba da ƙara taga cunkoso.

Slow Fara
Lokacin da aka kafa haɗin TCP, da farko an saita cwnd taga cunkoso zuwa mafi ƙarancin ƙimar MSS (mafi girman girman sashi). Ta wannan hanyar, ƙimar aikawa ta farko shine kusan MSS/RTT bytes/na biyu. Haƙiƙanin bandwidth ɗin da ake samu yawanci ya fi MSS/RTT girma, don haka TCP yana son nemo mafi kyawun adadin aikawa, wanda za'a iya samu ta hanyar jinkirin farawa.

A cikin tsarin farawa sannu a hankali, ƙimar cwnd taga za a fara farawa zuwa 1 MSS, kuma duk lokacin da aka amince da sashin fakitin da aka watsa, ƙimar cwnd za ta ƙaru da MSS ɗaya, wato, ƙimar cwnd zai zama 2 MSS. Bayan haka, ana ninka darajar cwnd don kowane nasarar watsawar ɓangaren fakiti, da sauransu. Ana nuna takamaiman tsarin girma a cikin adadi mai zuwa.

 Kula da cunkoson hanyar sadarwa

Koyaya, adadin aikawa ba koyaushe zai iya girma ba; girma ya ƙare wani lokaci. Don haka, yaushe ne karuwar adadin aika ya ƙare? Slow-fara yawanci yana ƙare haɓakar ƙimar aikawa ta ɗaya daga cikin hanyoyi da yawa:

Hanya ta farko ita ce yanayin asarar fakiti yayin aikin aikawa da jinkirin farawa. Lokacin da asarar fakiti ta faru, TCP yana saita taga cunkoson mai aikawa zuwa 1 kuma ta sake farawa tsarin jinkirin farawa. A wannan lokaci, an gabatar da ra'ayi na jinkirin farawa ssthresh, wanda ƙimar farko shine rabin ƙimar cwnd wanda ke haifar da asarar fakiti. Wato, lokacin da aka gano cunkoso, ƙimar ssthresh shine rabin darajar taga.

Hanya ta biyu ita ce daidaita kai tsaye tare da ƙimar jinkirin farawa bakin kofa ssthresh. Tunda ƙimar ssthresh shine rabin ƙimar taga lokacin da aka gano cunkoso, asarar fakiti na iya faruwa tare da kowane ninki biyu lokacin da cwnd ya fi ssthresh girma. Saboda haka, yana da kyau a saita cwnd zuwa ssthresh, wanda zai sa TCP ya canza zuwa yanayin sarrafa cunkoso kuma ya ƙare jinkirin farawa.

Hanya ta ƙarshe da jinkirin farawa zai iya ƙare shine idan an gano acks guda uku, TCP yana yin saurin sakewa kuma ya shiga yanayin dawowa. (Idan ba a bayyana dalilin da ya sa akwai fakitin ACK guda uku ba, za a bayyana shi daban a cikin tsarin sake aikawa.)

Gujewa cunkoso
Lokacin da TCP ya shiga cikin yanayin sarrafa cunkoso, an saita cwnd zuwa rabin cunkoso ssthresh. Wannan yana nufin ba za a iya ninka ƙimar cwnd duk lokacin da aka karɓi ɓangaren fakiti ba. Madadin haka, ana ɗaukar tsarin ra'ayin mazan jiya wanda ƙimar cwnd ke ƙaruwa da MSS ɗaya kawai (mafi girman girman fakiti) bayan an gama kowane watsawa. Misali, ko da an san sassan fakiti 10, ƙimar cwnd za ta ƙaru da MSS ɗaya kawai. Wannan sigar girma ce ta madaidaiciya kuma tana da iyaka ta sama akan girma. Lokacin da asarar fakiti ta faru, ana canza ƙimar cwnd zuwa MSS, kuma an saita ƙimar ssthresh zuwa rabin cwnd. Ko kuma zai dakatar da haɓakar MSS lokacin da aka karɓi amsawar ACK guda 3. Idan har yanzu ana karɓar acks guda uku bayan an raba darajar cwnd, ana rubuta ƙimar ssthresh a matsayin rabin ƙimar cwnd kuma an shigar da yanayin dawowa cikin sauri.

Maida Saurin Farfadowa
A cikin Fast farfadowa da na'ura, darajar Cwnd taga yana ƙaruwa da MSS ɗaya ga kowane mai karɓar ACK, wato, ACK wanda ba ya zuwa a jere. Wannan don yin amfani da sassan fakitin da aka samu nasarar watsawa a cikin hanyar sadarwa don inganta ingantaccen watsawa gwargwadon yiwuwa.

Lokacin da ACK na ɓangaren fakitin da ya ɓace ya zo, TCP yana rage ƙimar cwnd sannan ya shiga yanayin gujewa cunkoso. Wannan shi ne don sarrafa girman taga cunkoso da kuma guje wa kara yawan cunkoson hanyar sadarwa.

Idan ɓata lokaci ya faru bayan yanayin kula da cunkoso, yanayin cibiyar sadarwa ya zama mafi tsanani kuma TCP yana ƙaura daga yanayin gujewa cunkoso zuwa yanayin jinkirin farawa. A wannan yanayin, an saita ƙimar cwnd taga cunkoso zuwa 1 MSS, matsakaicin tsayin ɓangaren fakiti, kuma an saita ƙimar ssthresh mai saurin farawa zuwa rabin cwnd. Manufar wannan ita ce sake ƙara girman girman tagar cunkoso bayan hanyar sadarwar ta farfado don daidaita yawan watsawa da kuma matakan cunkoson hanyoyin sadarwa.

Takaitawa
A matsayin amintacciyar ka'idar sufuri, TCP tana aiwatar da ingantaccen sufuri ta lambar jeri, yarda, sarrafa sakewa, sarrafa haɗin kai da sarrafa taga. Daga cikin su, tsarin sarrafa kwararar ruwa yana sarrafa adadin bayanan da mai aikawa ya aika daidai da ainihin ƙarfin karɓar mai karɓa, wanda ke guje wa matsalolin cunkoso na hanyar sadarwa da kuma lalata aiki. Tsarin sarrafa cunkoso yana guje wa faruwar cunkoson hanyar sadarwa ta hanyar daidaita adadin bayanan da mai aikawa ya aika. Ma'anar taga cunkoso da taga mai aikawa suna da alaƙa da juna, kuma ana sarrafa adadin bayanai a mai aikawa ta hanyar daidaita girman tagar cunkoso. Farawa sannu a hankali, gujewa cunkoso da saurin dawowa shine manyan sassa uku na TCP na sarrafa cunkoso algorithm, wanda ke daidaita girman taga cunkoso ta hanyar dabaru daban-daban don daidaitawa da iya aiki da matakin cunkoso na cibiyar sadarwa.

A cikin sashe na gaba, za mu bincika tsarin sake aikawa da TCP daki-daki. Tsarin sakewa shine muhimmin sashi na TCP don cimma ingantaccen watsawa. Yana tabbatar da ingantaccen watsa bayanai ta hanyar sake watsa bayanan da suka ɓace, ɓarna ko jinkirtawa. Za a gabatar da ka'idar aiwatarwa da dabarun tsarin sakewa da kuma yin nazari dalla-dalla a cikin sashe na gaba. Ku ci gaba da saurare!


Lokacin aikawa: Fabrairu-24-2025