TCP tengingaruppsetning
Þegar við vöfrum á vefnum, sendum tölvupóst eða spilum netleik, hugsum við oft ekki um flókna nettengingu á bak við það. Hins vegar eru það þessi litlu skref að því er virðist sem tryggja stöðug samskipti milli okkar og netþjónsins. Eitt mikilvægasta skrefið er TCP-tengingaruppsetningin og kjarninn í þessu er þríhliða handabandið.
Þessi grein mun fjalla ítarlega um meginregluna, ferlið og mikilvægi þríhliða handabandsins. Skref fyrir skref munum við útskýra hvers vegna þríhliða handabandi er þörf, hvernig það tryggir tengingarstöðugleika og áreiðanleika og hversu mikilvægt það er fyrir gagnaflutning. Með dýpri skilningi á þríhliða handabandinu munum við öðlast betri skilning á undirliggjandi aðferðum netsamskipta og skýrari sýn á áreiðanleika TCP tenginga.
TCP Þriggja-vega handabandi ferli og ástandsbreytingar
TCP er tengingarmiðuð flutningssamskiptaregla sem krefst tengingar fyrir gagnaflutning. Þetta tengingarferli er gert með þríhliða handabandi.
Skoðum nánar TCP pakkana sem eru sendir í hverri tengingu.
Í upphafi eru bæði biðlarinn og þjónninn LOKAÐUR. Í fyrsta lagi hlustar þjónninn virkan á port og er í HLUSTA ástandinu, sem þýðir að þjónninn verður að vera ræstur. Næst er viðskiptavinurinn tilbúinn til að hefja aðgang að vefsíðunni. Hann þarf að koma á tengingu við netþjóninn. Snið fyrsta tengipakkans er sem hér segir:
Þegar viðskiptavinur kemur af stað tengingu myndar hann handahófskennt upphafsraðnúmer (client_isn) og setur það í "Röðnúmer" reitinn í TCP hausnum. Á sama tíma setur viðskiptavinurinn SYN fánastöðuna á 1 til að gefa til kynna að pakkinn á útleið sé SYN pakki. Viðskiptavinurinn gefur til kynna að hann vilji koma á tengingu við netþjóninn með því að senda fyrsta SYN pakkann á netþjóninn. Þessi pakki inniheldur ekki forritalagsgögn (þ.e. send gögn). Á þessum tímapunkti er staða viðskiptavinar merkt sem SYN-SENT.
Þegar netþjónn fær SYN pakka frá biðlara frumstillir hann af handahófi eigið raðnúmer (server_isn) og setur það númer í "Raðnúmer" reitinn í TCP hausnum. Næst slær þjónninn inn client_isn + 1 í reitinn „Viðurkenningarnúmer“ og stillir bæði SYN og ACK bita á 1. Að lokum sendir þjónninn pakkann til biðlarans, sem inniheldur engin forritalagsgögn (og engin gögn fyrir þjóninn) að senda). Á þessum tíma er þjónninn í SYN-RCVD ástandi.
Þegar viðskiptavinurinn hefur fengið pakkann frá þjóninum þarf hann að framkvæma eftirfarandi fínstillingar til að svara síðasta svarpakkanum: Í fyrsta lagi setur viðskiptavinurinn ACK bita TCP haus svarpakkans á 1; Í öðru lagi slær viðskiptavinurinn inn gildið server_isn + 1 í "Staðfesta svarnúmer" reitinn; Að lokum sendir viðskiptavinurinn pakkann til netþjónsins. Þessi pakki getur flutt gögn frá biðlaranum til netþjónsins. Þegar þessum aðgerðum er lokið mun viðskiptavinurinn fara í STAÐLAÐ ástand.
Þegar þjónninn hefur fengið svarpakkann frá viðskiptavininum skiptir hann einnig yfir í STAÐLAÐ ástand.
Eins og þú sérð af ferlinu hér að ofan, þegar þríhliða handaband er framkvæmt, er þriðja handtakið heimilt að bera gögn, en fyrstu tvö handtökin ekki. Þetta er spurning sem oft er spurt í viðtölum. Þegar þríhliða handabandinu er lokið fara báðir aðilar inn í STABLISHED ástandið, sem gefur til kynna að tengingunni hafi tekist, en þá geta viðskiptavinurinn og þjónninn byrjað að senda gögn sín á milli.
Af hverju þrjú handtök? Ekki tvisvar, fjórum sinnum?
Algengt svar er: "Vegna þess að þríhliða handabandið tryggir getu til að taka á móti og senda." Þetta svar er rétt, en það er aðeins yfirborðsástæðan, setur ekki fram aðalástæðuna. Hér á eftir mun ég greina ástæður þreföldu handabandi frá þremur hliðum til að dýpka skilning okkar á þessu máli.
Þriggja leiða handabandið getur í raun komið í veg fyrir frumstillingu á sögulegum endurteknum tengingum (aðalástæðan)
Þríhliða handabandið tryggir að báðir aðilar hafi fengið áreiðanlegt upphafsraðnúmer.
Þríhliða handabandið kemur í veg fyrir sóun á auðlindum.
Ástæða 1: Forðastu sögulegar tvítekningar
Í hnotskurn er aðalástæðan fyrir þríhliða handabandinu að forðast rugling sem stafar af gömlu tvíteknu tengingunni. Í flóknu netumhverfi er sending gagnapakka ekki alltaf send til ákvörðunarhýsilsins í samræmi við tilgreindan tíma og gamlir gagnapakkar gætu borist fyrst til áfangastaðarins vegna netþrengsla og annarra ástæðna. Til að forðast þetta notar TCP þríhliða handabandi til að koma á tengingunni.
Þegar viðskiptavinur sendir marga SYN-tengingarpakka í röð, í aðstæðum eins og netþrengslum, getur eftirfarandi átt sér stað:
1- Gömlu SYN pakkarnir koma á netþjóninn á undan nýjustu SYN pakkunum.
2- Miðlarinn mun svara SYN + ACK pakka til viðskiptavinarins eftir að hafa fengið gamla SYN pakkann.
3- Þegar viðskiptavinurinn fær SYN + ACK pakkann ákvarðar hann að tengingin sé söguleg tenging (raðnúmer útrunnið eða tími útrunninn) í samræmi við sitt eigið samhengi, og sendir síðan RST pakkann til netþjónsins til að hætta við tenginguna.
Með tveggja handabandi tengingu er engin leið til að ákvarða hvort núverandi tenging sé söguleg tenging. Þríhliða handabandið gerir viðskiptavininum kleift að ákvarða hvort núverandi tenging sé söguleg tenging byggt á samhenginu þegar hann er tilbúinn til að senda þriðja pakkann:
1- Ef um söguleg tenging er að ræða (raðnúmer útrunnið eða tími er liðinn), er pakkinn sem sendur er með þriðja handtakinu RST pakki til að hætta við sögulegu tenginguna.
2- Ef það er ekki söguleg tenging er pakkinn sem sendur er í þriðja skiptið ACK pakki og samskiptaaðilarnir tveir komu á tengingunni.
Þess vegna er aðalástæðan fyrir því að TCP notar þríhliða handtakið að það frumstillir tenginguna til að koma í veg fyrir sögulegar tengingar.
Ástæða 2: Til að samstilla fyrstu raðnúmer beggja aðila
Báðar hliðar TCP samskiptareglunnar verða að viðhalda raðnúmeri, sem er lykilatriði til að tryggja áreiðanlega sendingu. Raðnúmer gegna mikilvægu hlutverki í TCP tengingum. Þau gera eftirfarandi:
Móttakandinn getur útrýmt tvíteknum gögnum og tryggt nákvæmni gagna.
Viðtakandinn getur tekið á móti pökkum í röð raðnúmersins til að tryggja heilleika gagnanna.
● Raðnúmerið getur auðkennt gagnapakkann sem móttekinn hefur verið af hinum aðilanum, sem gerir áreiðanlega gagnaflutninga kleift.
Þess vegna, þegar TCP tenging er komið á, sendir viðskiptavinurinn SYN pakka með upphaflegu raðnúmerinu og krefst þess að þjónninn svari með ACK pakka sem gefur til kynna árangursríka móttöku á SYN pakka viðskiptavinarins. Síðan sendir þjónninn SYN pakkann með upphaflegu raðnúmerinu til viðskiptavinarins og bíður eftir að viðskiptavinurinn svari, í eitt skipti fyrir öll, til að tryggja að upphafsraðnúmerin séu áreiðanlega samstillt.
Þó að fjórhliða handaband sé einnig mögulegt til að samstilla upphafsraðnúmer beggja aðila á áreiðanlegan hátt, er hægt að sameina annað og þriðja skrefið í eitt skref, sem leiðir til þríhliða handabands. Hins vegar geta handtökin tvö aðeins tryggt að upphafsraðnúmer annars aðila berist vel af hinum aðilanum, en það er engin trygging fyrir því að hægt sé að staðfesta upphafsraðnúmer beggja aðila. Þess vegna er þríhliða handabandið besti kosturinn til að tryggja stöðugleika og áreiðanleika TCP tenginga.
Ástæða 3: Forðastu að sóa auðlindum
Ef það er aðeins "tveir handaband", þegar SYN beiðni viðskiptavinarins er læst á netinu, getur viðskiptavinurinn ekki tekið á móti ACK pakkanum sem þjónninn sendir, þannig að SYN verður endursendur. Hins vegar, þar sem það er ekkert þriðja handtak, getur þjónninn ekki ákvarðað hvort viðskiptavinurinn hafi fengið ACK-viðurkenningu til að koma á tengingunni. Þess vegna getur þjónninn aðeins komið á tengingu með fyrirbyggjandi hætti eftir að hafa fengið hverja SYN beiðni. Þetta leiðir til eftirfarandi:
Sóun á fjármagni: Ef SYN beiðni viðskiptavinarins er læst, sem leiðir til endurtekinnar sendingar á mörgum SYN pakka, mun þjónninn koma á mörgum ógildum ógildum tengingum eftir að hafa fengið beiðnina. Þetta leiðir til óþarfa sóun á auðlindum netþjóna.
Varðveisla skilaboða: Vegna skorts á þriðja handabandi hefur þjónninn enga leið til að vita hvort viðskiptavinurinn hafi fengið ACK-viðurkenninguna rétt til að koma á tengingunni. Þar af leiðandi, ef skilaboð festast á netinu, mun viðskiptavinurinn halda áfram að senda SYN beiðnir aftur og aftur, sem veldur því að þjónninn kemur stöðugt á nýjum tengingum. Þetta mun auka netþrengsli og seinkun og hafa neikvæð áhrif á heildarafköst netsins.
Þess vegna, til að tryggja stöðugleika og áreiðanleika nettengingarinnar, notar TCP þríhliða handabandi til að koma á tengingunni til að koma í veg fyrir að þessi vandamál komi upp.
Samantekt
TheNetpakkamiðlariTCP tenging er gerð með þríhliða handabandi. Meðan á þríhliða handabandinu stendur sendir viðskiptavinurinn fyrst pakka með SYN fánanum til netþjónsins, sem gefur til kynna að hann vilji koma á tengingu. Eftir að hafa fengið beiðnina frá viðskiptavininum svarar þjónninn pakka með SYN og ACK fánum til viðskiptavinarins, sem gefur til kynna að tengingarbeiðnin sé samþykkt, og sendir sitt eigið upphafsraðnúmer. Að lokum svarar viðskiptavinurinn með ACK flaggi til þjónsins til að gefa til kynna að tengingunni hafi tekist. Þannig eru aðilarnir tveir í STAÐFÖRUÐ ástandi og geta byrjað að senda gögn sín á milli.
Almennt séð er þríhliða handabandsferlið fyrir stofnun TCP-tengingar hannað til að tryggja stöðugleika og áreiðanleika tenginga, forðast rugling og sóun á auðlindum yfir sögulegum tengingum og tryggja að báðir aðilar geti tekið á móti og sent gögn.
Pósttími: Jan-08-2025