Gosod Cysylltiad TCP
Pan fyddwn yn pori'r we, yn anfon e-bost, neu'n chwarae gêm ar-lein, yn aml nid ydym yn meddwl am y cysylltiad rhwydwaith cymhleth y tu ôl iddo. Fodd bynnag, y camau hyn sy'n ymddangos yn fach sy'n sicrhau cyfathrebu sefydlog rhyngom ni a'r gweinydd. Un o'r camau pwysicaf yw'r gosodiad cysylltiad TCP, a chraidd hyn yw'r ysgwyd llaw tair ffordd.
Bydd yr erthygl hon yn trafod egwyddor, proses a phwysigrwydd yr ysgwyd llaw tair ffordd yn fanwl. Cam wrth gam, byddwn yn esbonio pam mae angen yr ysgwyd llaw tair ffordd, sut mae'n sicrhau sefydlogrwydd a dibynadwyedd cysylltiad, a pha mor bwysig ydyw ar gyfer trosglwyddo data. Gyda dealltwriaeth ddyfnach o'r ysgwyd llaw tair ffordd, byddwn yn cael gwell dealltwriaeth o fecanweithiau sylfaenol cyfathrebu rhwydwaith a golwg gliriach ar ddibynadwyedd cysylltiadau TCP.
Proses Ysgwyd Llaw Tair Ffordd TCP a Thrawsnewidiadau Gwladol
Mae TCP yn brotocol trafnidiaeth sy'n canolbwyntio ar gysylltiad, sy'n gofyn am sefydlu cysylltiad cyn trosglwyddo data. Gwneir y broses sefydlu cysylltiad hon trwy ysgwyd llaw tair ffordd.
Gadewch i ni edrych yn agosach ar y pecynnau TCP sy'n cael eu hanfon ym mhob cysylltiad.
I ddechrau, mae'r cleient a'r gweinydd AR GAU. Yn gyntaf, mae'r gweinydd yn gwrando'n weithredol ar borthladd ac mae yn y cyflwr GWRANDO, sy'n golygu bod yn rhaid cychwyn y gweinydd. Nesaf, mae'r cleient yn barod i ddechrau cyrchu'r dudalen we. Mae angen iddo sefydlu cysylltiad â'r gweinydd. Mae fformat y pecyn cysylltiad cyntaf fel a ganlyn:
Pan fydd cleient yn cychwyn cysylltiad, mae'n cynhyrchu rhif dilyniant cychwynnol ar hap (client_isn) ac yn ei osod yn y maes "Rhif dilyniant" ym mhennyn TCP. Ar yr un pryd, mae'r cleient yn gosod safle baner SYN i 1 i nodi mai pecyn SYN yw'r pecyn sy'n mynd allan. Mae'r cleient yn nodi ei fod yn dymuno sefydlu cysylltiad â'r gweinydd trwy anfon y pecyn SYN cyntaf i'r gweinydd. Nid yw'r pecyn hwn yn cynnwys data haen cais (hynny yw, data a anfonwyd). Ar y pwynt hwn, mae statws y cleient wedi'i nodi fel SYN-SENT.
Pan fydd gweinydd yn derbyn pecyn SYN gan gleient, mae'n cychwyn ei rif cyfresol ei hun ar hap (server_isn) ac yna'n rhoi'r rhif hwnnw yn y maes "Rhif cyfresol" ym mhennyn TCP. Nesaf, mae'r gweinydd yn mynd i mewn i client_isn + 1 yn y maes "Rhif cydnabyddiaeth" ac yn gosod darnau SYN ac ACK i 1. Yn olaf, mae'r gweinydd yn anfon y pecyn i'r cleient, sy'n cynnwys dim data haen cais (a dim data ar gyfer y gweinydd i anfon). Ar yr adeg hon, mae'r gweinydd mewn cyflwr SYN-RCVD.
Unwaith y bydd y cleient yn derbyn y pecyn gan y gweinydd, mae angen iddo berfformio'r optimizations canlynol i ymateb i'r pecyn ateb terfynol: Yn gyntaf, mae'r cleient yn gosod rhan ACK pennawd TCP y pecyn ateb i 1; Yn ail, mae'r cleient yn mynd i mewn i'r gwerth server_isn + 1 yn y maes "Cadarnhau rhif ateb"; Yn olaf, mae'r cleient yn anfon y pecyn i'r gweinydd. Gall y pecyn hwn gludo data o'r cleient i'r gweinydd. Ar ôl cwblhau'r gweithrediadau hyn, bydd y cleient yn mynd i mewn i'r cyflwr SEFYDLEDIG.
Unwaith y bydd y gweinydd yn derbyn y pecyn ateb gan y cleient, mae hefyd yn newid i'r cyflwr SEFYDLEDIG.
Fel y gwelwch o'r broses uchod, wrth berfformio ysgwyd llaw tair ffordd, caniateir i'r trydydd ysgwyd llaw gario data, ond nid yw'r ddau ysgwyd llaw cyntaf yn cael ei wneud. Mae hwn yn gwestiwn a ofynnir yn aml mewn cyfweliadau. Unwaith y bydd yr ysgwyd llaw tair ffordd wedi'i gwblhau, mae'r ddau barti yn mynd i mewn i'r cyflwr SEFYDLEDIG, gan nodi bod y cysylltiad wedi'i sefydlu'n llwyddiannus, ac ar yr adeg honno gall y cleient a'r gweinydd ddechrau anfon data at ei gilydd.
Pam tri ysgwyd llaw? Ddim ddwywaith, pedair gwaith?
Yr ateb cyffredin yw, "Oherwydd bod yr ysgwyd llaw tair ffordd yn gwarantu'r gallu i dderbyn ac anfon." Mae'r ateb hwn yn gywir, ond dim ond y rheswm wyneb ydyw, nid yw'n cyflwyno'r prif reswm. Yn y canlynol, byddaf yn dadansoddi'r rhesymau dros yr ysgwyd llaw triphlyg o dair agwedd er mwyn dyfnhau ein dealltwriaeth o'r mater hwn.
Gall yr ysgwyd llaw tair ffordd osgoi cychwyn cysylltiadau a ailadroddir yn hanesyddol yn effeithiol (y prif reswm)
Mae'r ysgwyd llaw tair ffordd yn gwarantu bod y ddau barti wedi derbyn rhif dilyniant cychwynnol dibynadwy.
Mae'r ysgwyd llaw tair ffordd yn osgoi gwastraffu adnoddau.
Rheswm 1: Osgoi Ymuniadau Dyblyg Hanesyddol
Yn gryno, y prif reswm dros yr ysgwyd llaw tair ffordd yw osgoi dryswch a achosir gan yr hen gychwyn cysylltiad dyblyg. Mewn amgylchedd rhwydwaith cymhleth, nid yw trosglwyddo pecynnau data bob amser yn cael ei anfon at y gwesteiwr cyrchfan yn unol â'r amser penodedig, a gall hen becynnau data gyrraedd y gwesteiwr cyrchfan yn gyntaf oherwydd tagfeydd rhwydwaith a rhesymau eraill. Er mwyn osgoi hyn, mae TCP yn defnyddio ysgwyd llaw tair ffordd i sefydlu'r cysylltiad.
Pan fydd cleient yn anfon pecynnau sefydlu cysylltiad SYN lluosog yn olynol, mewn sefyllfaoedd fel tagfeydd rhwydwaith, gall y canlynol ddigwydd:
1- Mae'r hen becynnau SYN yn cyrraedd y gweinydd cyn y pecynnau SYN diweddaraf.
2- Bydd y gweinydd yn ateb pecyn SYN + ACK i'r cleient ar ôl derbyn yr hen becyn SYN.
3- Pan fydd y cleient yn derbyn y pecyn SYN + ACK, mae'n penderfynu bod y cysylltiad yn gysylltiad hanesyddol (rhif y dilyniant wedi dod i ben neu'r terfyn amser) yn ôl ei gyd-destun ei hun, ac yna'n anfon y pecyn RST i'r gweinydd i erthylu'r cysylltiad.
Gyda chysylltiad dwy ysgwyd llaw, nid oes unrhyw ffordd i benderfynu a yw'r cysylltiad presennol yn gysylltiad hanesyddol. Mae'r ysgwyd llaw tair ffordd yn caniatáu i'r cleient benderfynu a yw'r cysylltiad presennol yn gysylltiad hanesyddol yn seiliedig ar y cyd-destun pan fydd yn barod i anfon y trydydd pecyn:
1- Os yw'n gysylltiad hanesyddol (rhif y dilyniant wedi dod i ben neu'n terfyn amser), mae'r pecyn a anfonir gan y trydydd ysgwyd llaw yn becyn RST i erthylu'r cysylltiad hanesyddol.
2- Os nad yw'n gysylltiad hanesyddol, mae'r pecyn a anfonir am y trydydd tro yn becyn ACK, ac mae'r ddau barti sy'n cyfathrebu yn sefydlu'r cysylltiad yn llwyddiannus.
Felly, y prif reswm y mae TCP yn defnyddio'r ysgwyd llaw tair ffordd yw ei fod yn cychwyn y cysylltiad i atal cysylltiadau hanesyddol.
Rheswm 2: Cydamseru rhifau dilyniant cychwynnol y ddau barti
Rhaid i ddwy ochr y protocol TCP gynnal rhif dilyniant, sy'n ffactor allweddol i sicrhau trosglwyddiad dibynadwy. Mae rhifau dilyniant yn chwarae rhan bwysig mewn cysylltiadau TCP. Maent yn gwneud y canlynol:
Gall y derbynnydd ddileu data dyblyg a sicrhau cywirdeb y data.
Gall y derbynnydd dderbyn pecynnau yn nhrefn y rhif dilyniant i sicrhau cywirdeb y data.
● Gall y rhif dilyniant nodi'r pecyn data a dderbyniwyd gan y parti arall, gan alluogi trosglwyddo data dibynadwy.
Felly, ar ôl sefydlu cysylltiad TCP, mae'r cleient yn anfon pecynnau SYN gyda'r rhif dilyniant cychwynnol ac yn ei gwneud yn ofynnol i'r gweinydd ateb gyda phecyn ACK yn nodi derbyniad llwyddiannus pecyn SYN y cleient. Yna, mae'r gweinydd yn anfon y pecyn SYN gyda'r rhif dilyniant cychwynnol i'r cleient ac yn aros i'r cleient ateb, unwaith ac am byth, i sicrhau bod y niferoedd dilyniant cychwynnol yn cael eu cydamseru'n ddibynadwy.
Er bod ysgwyd llaw pedair ffordd hefyd yn bosibl i gydamseru rhifau dilyniant cychwynnol y ddwy ochr yn ddibynadwy, gellir cyfuno'r ail a'r trydydd cam yn un cam, gan arwain at ysgwyd llaw tair ffordd. Fodd bynnag, ni all y ddau ysgwyd llaw ond warantu bod rhif dilyniant cychwynnol un parti yn cael ei dderbyn yn llwyddiannus gan y parti arall, ond nid oes unrhyw sicrwydd y gellir cadarnhau rhif dilyniant cychwynnol y ddau barti. Felly, yr ysgwyd llaw tair ffordd yw'r dewis gorau i'w gymryd er mwyn sicrhau sefydlogrwydd a dibynadwyedd cysylltiadau TCP.
Rheswm 3: Osgoi Gwastraffu Adnoddau
Os mai dim ond "ysgwyd dwy law" sydd, pan fydd cais SYN y cleient wedi'i rwystro yn y rhwydwaith, ni all y cleient dderbyn y pecyn ACK a anfonwyd gan y gweinydd, felly bydd y SYN yn ddig. Fodd bynnag, gan nad oes trydydd ysgwyd llaw, ni all y gweinydd benderfynu a gafodd y cleient gydnabyddiaeth ACK i sefydlu'r cysylltiad. Felly, dim ond ar ôl derbyn pob cais SYN y gall y gweinydd sefydlu cysylltiad yn rhagweithiol. Mae hyn yn arwain at y canlynol:
Gwastraff adnoddau: Os caiff cais SYN y cleient ei rwystro, gan arwain at drosglwyddo sawl pecyn SYN dro ar ôl tro, bydd y gweinydd yn sefydlu cysylltiadau annilys diangen lluosog ar ôl derbyn y cais. Mae hyn yn arwain at wastraff diangen o adnoddau gweinydd.
Cadw neges: Oherwydd diffyg trydydd ysgwyd llaw, nid oes gan y gweinydd unrhyw ffordd o wybod a yw'r cleient wedi derbyn cydnabyddiaeth ACK yn gywir i sefydlu'r cysylltiad. O ganlyniad, os bydd negeseuon yn mynd yn sownd yn y rhwydwaith, bydd y cleient yn parhau i anfon ceisiadau SYN dro ar ôl tro, gan achosi i'r gweinydd sefydlu cysylltiadau newydd yn gyson. Bydd hyn yn cynyddu tagfeydd ac oedi rhwydwaith ac yn effeithio'n negyddol ar berfformiad cyffredinol y rhwydwaith.
Felly, er mwyn sicrhau sefydlogrwydd a dibynadwyedd y cysylltiad rhwydwaith, mae TCP yn defnyddio'r ysgwyd llaw tair ffordd i sefydlu'r cysylltiad er mwyn osgoi'r problemau hyn.
Crynodeb
Mae'rBrocer Pecyn RhwydwaithMae sefydlu cysylltiad TCP yn cael ei wneud gydag ysgwyd llaw tair ffordd. Yn ystod yr ysgwyd llaw tair ffordd, mae'r cleient yn gyntaf yn anfon pecyn gyda baner SYN i'r gweinydd, gan nodi ei fod am sefydlu cysylltiad. Ar ôl derbyn y cais gan y cleient, mae'r gweinydd yn ateb pecyn gyda baneri SYN ac ACK i'r cleient, gan nodi bod y cais cysylltiad yn cael ei dderbyn, ac yn anfon ei rif dilyniant cychwynnol ei hun. Yn olaf, mae'r cleient yn ateb gyda baner ACK i'r gweinydd i nodi bod y cysylltiad wedi'i sefydlu'n llwyddiannus. Felly, mae'r ddau barti yn y cyflwr SEFYDLEDIG a gallant ddechrau anfon data at ei gilydd.
Yn gyffredinol, mae'r broses ysgwyd llaw tair ffordd ar gyfer sefydlu cysylltiad TCP wedi'i chynllunio i sicrhau sefydlogrwydd a dibynadwyedd cysylltiad, osgoi dryswch a gwastraff adnoddau dros gysylltiadau hanesyddol, a sicrhau bod y ddau barti yn gallu derbyn ac anfon data.
Amser post: Ionawr-08-2025