Transportasyon sa Kasaligan sa TCP
Kitang tanan pamilyar sa TCP protocol isip usa ka kasaligan nga transport protocol, apan unsaon niini pagsiguro sa kasaligan sa transportasyon?
Aron makab-ot ang kasaligang transmission, daghang mga butang ang kinahanglan nga tagdon, sama sa pagkadaot sa datos, pagkawala, pagdoble, ug mga wala sa han-ay nga mga shard. Kung kini nga mga problema dili masulbad, dili makab-ot ang kasaligang transmission.
Busa, ang TCP naggamit og mga mekanismo sama sa sequence number, acknowledgement reply, resend control, connection management, ug window control aron makab-ot ang kasaligang transmission.
Niini nga papel, atong hisgotan ang sliding window, flow control ug congestion control sa TCP. Ang mekanismo sa retransmission hisgutan nga gilain sa sunod nga seksyon.
Pagkontrol sa Dagayday sa Network
Ang Network Flow Control o nailhan nga Network Traffic Control usa ka pagpakita sa maliputon nga relasyon tali sa mga prodyuser ug mga konsumidor. Lagmit kanunay ka nang makasugat niini nga senaryo sa trabaho o sa mga interbyu. Kung ang kapasidad sa prodyuser sa paghimo og produkto molapas sa kapasidad sa konsumidor sa pagkonsumo, kini ang hinungdan sa pagdako sa pila nga walay katapusan. Sa mas seryoso nga kaso, mahimo nimong mahibal-an nga kung ang mga mensahe sa RabbitMQ magtapok pag-ayo, mahimo kini nga hinungdan sa pagkadaot sa performance sa tibuok MQ server. Parehas kini sa TCP; kung dili mabantayan, daghang mga mensahe ang ibutang sa network, ug ang mga konsumidor molapas sa ilang kapasidad, samtang ang mga prodyuser magpadayon sa pagpadala og mga doble nga mensahe, nga makaapekto pag-ayo sa performance sa network.
Aron masulbad kini nga panghitabo, ang TCP naghatag og mekanismo para sa nagpadala aron makontrol ang gidaghanon sa datos nga gipadala base sa aktuwal nga kapasidad sa pagdawat sa tigdawat, nga nailhan nga flow control. Ang tigdawat nagmintinar og receive window, samtang ang nagpadala nagmintinar og send window. Kinahanglan nga matikdan nga kini nga mga Windows alang lamang sa usa ka koneksyon sa TCP ug dili tanan nga koneksyon nag-ambit og usa ka window.
Ang TCP naghatag og flow control pinaagi sa paggamit og variable para sa receive window. Ang receive window mohatag sa nagpadala og indikasyon kon pila pa ka cache space ang anaa. Ang nagpadala ang mokontrol sa gidaghanon sa data nga gipadala sumala sa aktuwal nga kapasidad sa pagdawat sa tigdawat.
Ang receiver host mopahibalo sa nagpadala sa gidak-on sa datos nga madawat niini, ug ang nagpadala magpadala hangtod niini nga limitasyon. Kini nga limitasyon mao ang gidak-on sa bintana, nahinumdom ka ba sa TCP header? Adunay field sa receive window, nga gigamit aron ipakita ang gidaghanon sa mga byte nga mahimo o gusto nga madawat sa receiver.
Ang sender host matag karon ug unya magpadala og window probe packet, nga gamiton aron mahibal-an kung ang receiver host makadawat pa ba og data. Kung ang buffer sa receiver nameligro nga mo-awas, ang window size ibutang sa mas gamay nga kantidad aron tudloan ang sender nga kontrolon ang gidaghanon sa data nga ipadala.
Ania ang usa ka diagram sa Pagkontrol sa Daloy sa Network:
Pagkontrol sa Paghuot sa Network
Sa dili pa nato ipaila ang congestion control, kinahanglan natong masabtan nga dugang sa receive window ug send window, aduna usay congestion window, nga gigamit kasagaran aron masulbad ang problema sa kung unsa ka paspas magsugod ang pagpadala sa data sa sender ngadto sa receive window. Busa, ang congestion window gimentinar usab sa TCP sender. Kinahanglan nato ang usa ka algorithm aron makadesisyon kung pila ka data ang angay ipadala, tungod kay ang pagpadala og gamay ra o sobra ra nga data dili maayo, busa ang konsepto sa congestion window.
Sa miaging network flow control, ang among gilikayan mao ang pagpuno sa sender sa cache sa receiver og data, apan wala kami masayod unsay nahitabo sa network. Kasagaran, ang mga computer network naa sa usa ka shared environment. Tungod niini, mahimong adunay network congestion tungod sa komunikasyon tali sa ubang mga host.
Kon ang network huot, kon daghang mga packet ang padayong ipadala, kini mahimong hinungdan sa mga problema sama sa pagkalangan ug pagkawala sa mga packet. Niini nga punto, ang TCP mopadala pag-usab sa datos, apan ang pag-transmit pag-usab makadugang sa palas-anon sa network, nga moresulta sa mas dagkong mga pagkalangan ug dugang nga mga pagkawala sa packet. Mahimo kini nga mosulod sa usa ka mabangis nga siklo ug magpadayon sa pagdako.
Busa, dili mahimong ibaliwala sa TCP ang nahitabo sa network. Kung ang network nagdasok, gisakripisyo sa TCP ang kaugalingon pinaagi sa pagpakunhod sa gidaghanon sa datos nga ipadala niini.
Busa, gisugyot ang pagkontrol sa congestion, nga nagtumong sa paglikay sa pagpuno sa tibuok network sa datos gikan sa nagpadala. Aron makontrol ang gidaghanon sa datos nga kinahanglan ipadala sa nagpadala, ang TCP naghubit sa usa ka konsepto nga gitawag og congestion window. Ang congestion control algorithm mo-adjust sa gidak-on sa congestion window sumala sa congestion degree sa network, aron makontrol ang gidaghanon sa datos nga gipadala sa nagpadala.
Unsa ang congestion window? Unsay kalabotan niini sa send window?
Ang Congestion Window usa ka state variable nga gimentinar sa nagpadala nga nagtino sa gidaghanon sa datos nga mapadala sa nagpadala. Ang congestion window nag-usab-usab sumala sa lebel sa congestion sa network.
Ang Sending Window usa ka gikasabutan nga gidak-on sa bintana tali sa nagpadala ug tigdawat nga nagpakita sa gidaghanon sa datos nga madawat sa tigdawat. Ang congestion window ug ang sending window adunay kalabutan; ang sending window kasagaran katumbas sa minimum sa congestion ug receiving Windows, nga mao, swnd = min(cwnd, rwnd).
Ang congestion window mausab sama sa mosunod:
Kon walay congestion sa network, buot ipasabot, walay retransmission timeout nga mahitabo, motaas ang congestion window.
Kon adunay paghuot sa network, ang congestion window mokunhod.
Ang nagpadala motino kon ang network ba naghuot pinaagi sa pag-obserbar kon ang ACK acknowledgement packet nadawat ba sulod sa gitakdang oras. Kon ang nagpadala dili makadawat sa ACK acknowledgement packet sulod sa gitakdang oras, kini giisip nga ang network naghuot.
Gawas sa congestion window, panahon na usab nga hisgutan ang TCP congestion control algorithm. Ang TCP congestion control algorithm gilangkoban sa tulo ka nag-unang bahin:
Hinay nga Pagsugod:Sa sinugdanan, ang cwnd congestion window medyo gamay ra, ug ang sender mopadako sa congestion window sa paspas nga paagi aron dali nga mopahiangay sa kapasidad sa network.
Paglikay sa Paghuot sa Trapiko:Human molapas ang congestion window sa usa ka piho nga threshold, ang sender mopataas sa congestion window sa usa ka linear nga paagi aron mapahinay ang pagtubo sa congestion window ug malikayan ang overloading sa network.
Dali nga Pag-ayo:Kon mahitabo ang congestion, tungaon sa sender ang congestion window ug mosulod sa fast recovery state aron mahibal-an ang lokasyon sa network recovery pinaagi sa nadawat nga duplicate acks, ug dayon ipadayon ang pagpataas sa congestion window.
Hinay nga Pagsugod
Kung matukod ang koneksyon sa TCP, ang congestion window cwnd sa sinugdanan ibutang sa minimum nga MSS (maximum segment size) nga kantidad. Niining paagiha, ang inisyal nga sending rate mga MSS/RTT bytes/second. Ang aktuwal nga magamit nga bandwidth kasagaran mas dako kaysa MSS/RTT, busa gusto sa TCP nga makit-an ang labing maayo nga sending rate, nga makab-ot pinaagi sa slow-start.
Sa proseso sa hinay nga pagsugod, ang bili sa congestion window cwnd i-initialize ngadto sa 1 MSS, ug matag higayon nga ang na-transmit nga packet segment mailhan, ang bili sa cwnd madugangan og usa ka MSS, buot ipasabot, ang bili sa cwnd mahimong 2 MSS. Human niana, ang bili sa cwnd doblehon alang sa matag malampuson nga transmission sa usa ka packet segment, ug uban pa. Ang piho nga proseso sa pagtubo gipakita sa mosunod nga hulagway.
Apan, ang gikusgon sa pagpadala dili kanunay motubo; ang pagtubo kinahanglan nga matapos sa umaabot. Busa, kanus-a matapos ang pagtaas sa gikusgon sa pagpadala? Ang hinay nga pagsugod kasagaran matapos ang pagtaas sa gikusgon sa pagpadala sa usa sa daghang mga paagi:
Ang unang paagi mao ang kaso sa packet loss atol sa proseso sa pagpadala nga hinay ang pagsugod. Kung mahitabo ang packet loss, ang TCP magtakda sa congestion window cwnd sa nagpadala ngadto sa 1 ug i-restart ang slow-start process. Niini nga punto, ang konsepto sa slow start threshold ssthresh gipaila, kansang inisyal nga kantidad katunga sa kantidad sa cwnd nga makamugna og packet loss. Sa ato pa, kung mamatikdan ang congestion, ang kantidad sa ssthresh katunga sa kantidad sa window.
Ang ikaduhang paagi mao ang direktang pag-correlate sa bili sa slow-start threshold ssthresh. Tungod kay ang bili sa ssthresh katunga sa bili sa window kung ma-detect ang congestion, ang packet loss mahimong mahitabo sa matag pagdoble kung ang cwnd mas dako kay sa ssthresh. Busa, labing maayo nga ibutang ang cwnd sa ssthresh, nga maoy hinungdan nga ang TCP mobalhin sa congestion control mode ug mo-end slow-start.
Ang katapusang paagi nga matapos ang hinay nga pagsugod mao ang kung tulo ka redundant acks ang makit-an, ang TCP mohimo og paspas nga retransmission ug mosulod sa recovery state. (Kung dili klaro kung ngano nga adunay tulo ka ACK packets, kini ipasabut nga gilain sa mekanismo sa retransmission.)
Paglikay sa Paghuot sa Trapiko
Kon ang TCP mosulod sa congestion control state, ang cwnd ibutang sa katunga sa congestion threshold nga ssthresh. Kini nagpasabot nga ang bili sa cwnd dili madoble matag higayon nga madawat ang usa ka packet segment. Hinuon, usa ka medyo konserbatibo nga pamaagi ang gisagop diin ang bili sa cwnd dugangan lang og usa ka MSS (maximum packet segment length) human makompleto ang matag transmission. Pananglitan, bisan kon 10 ka packet segments ang giila, ang bili sa cwnd motaas lang og usa ka MSS. Kini usa ka linear growth model ug aduna usab kini upper bound sa growth. Kon mahitabo ang packet loss, ang bili sa cwnd mausab ngadto sa usa ka MSS, ug ang bili sa ssthresh ibutang sa katunga sa cwnd. O mohunong usab kini sa pagtubo sa MSS kon 3 ka redundant ACK responses ang madawat. Kon tulo ka redundant acks ang madawat gihapon human sa pag-katunga sa bili sa cwnd, ang bili sa ssthresh marekord isip katunga sa bili sa cwnd ug ang fast recovery state isulod.
Paspas nga Pag-ayo
Sa Fast Recovery state, ang bili sa congestion window cwnd madugangan og usa ka MSS para sa matag nadawat nga redundant ACK, buot ipasabot, ACK nga wala moabot sa sunod-sunod nga panahon. Kini aron magamit ang mga packet segment nga malampusong napadala sa network aron mapaayo ang transmission efficiency kutob sa mahimo.
Kon moabot ang ACK sa nawala nga packet segment, ang TCP mokunhod sa bili sa cwnd ug dayon mosulod sa congestion avoidance state. Kini aron makontrol ang gidak-on sa congestion window ug malikayan ang dugang nga pagdugang sa network congestion.
Kon adunay timeout nga mahitabo human sa congestion control state, ang kondisyon sa network mahimong mas grabe ug ang TCP mobalhin gikan sa congestion avoidance state ngadto sa slow-start state. Niini nga kaso, ang bili sa congestion window cwnd gitakda sa 1 MSS, ang maximum packet segment length, ug ang bili sa slow-start threshold ssthresh gitakda sa katunga sa cwnd. Ang katuyoan niini mao ang hinay-hinay nga pagdugang sa gidak-on sa congestion window human makabawi ang network aron mabalanse ang transmission rate ug ang degree sa network congestion.
Sumaryo
Isip usa ka kasaligan nga transport protocol, ang TCP nagpatuman sa kasaligan nga transport pinaagi sa sequence number, acknowledgement, retransmission control, connection management ug window control. Lakip niini, ang flow control mechanism nagkontrol sa gidaghanon sa data nga gipadala sa nagpadala sumala sa aktuwal nga kapasidad sa pagdawat sa tigdawat, nga naglikay sa mga problema sa network congestion ug pagkadaot sa performance. Ang congestion control mechanism naglikay sa pagkahitabo sa network congestion pinaagi sa pag-adjust sa gidaghanon sa data nga gipadala sa nagpadala. Ang mga konsepto sa congestion window ug sending window nalambigit sa usag usa, ug ang gidaghanon sa data sa nagpadala gikontrol pinaagi sa dinamikong pag-adjust sa gidak-on sa congestion window. Ang hinay nga pagsugod, paglikay sa congestion ug paspas nga pagbawi mao ang tulo ka nag-unang bahin sa TCP congestion control algorithm, nga nag-adjust sa gidak-on sa congestion window pinaagi sa lain-laing mga estratehiya aron mohaum sa kapasidad ug lebel sa congestion sa network.
Sa sunod nga seksyon, atong susihon pag-ayo ang mekanismo sa pag-retransmission sa TCP. Ang mekanismo sa pag-retransmission usa ka importante nga bahin sa TCP aron makab-ot ang kasaligan nga transmission. Gisiguro niini ang kasaligan nga transmission sa datos pinaagi sa pag-retransmit sa nawala, nadaot o nalangan nga datos. Ang prinsipyo ug estratehiya sa implementasyon sa mekanismo sa pag-retransmission ipaila ug analisahon pag-ayo sa sunod nga seksyon. Bantay lang!
Oras sa pag-post: Pebrero 24, 2025

