Mga Pangunang Misteryo sa Network Packet Broker TCP Connections: Giwagtang ang misteryo sa panginahanglan alang sa Triple Handshake

Pag-setup sa Koneksyon sa TCP
Kon mag-browse ta sa web, magpadala og email, o magdula og online game, kasagaran wala nato mahunahuna ang komplikado nga koneksyon sa network sa luyo niini. Apan, kining daw gagmay nga mga lakang mao ang nagsiguro sa lig-on nga komunikasyon tali kanato ug sa server. Usa sa labing importante nga mga lakang mao ang pag-setup sa koneksyon sa TCP, ug ang kinauyokan niini mao ang three-way handshake.

Kini nga artikulo maghisgot sa prinsipyo, proseso, ug kamahinungdanon sa three-way handshake sa detalyado. Sunod-sunod, atong ipasabut nganong gikinahanglan ang three-way handshake, unsaon niini pagsiguro sa kalig-on ug kasaligan sa koneksyon, ug unsa kini ka importante alang sa pagbalhin sa datos. Uban sa mas lawom nga pagsabot sa three-way handshake, mas masabtan nato ang nagpahiping mga mekanismo sa komunikasyon sa network ug mas klaro nga panglantaw sa kasaligan sa mga koneksyon sa TCP.

Proseso sa TCP Three-way Handshake ug mga Pagbalhin sa Estado
Ang TCP usa ka connection-oriented transport protocol, nga nagkinahanglan og pag-establisar og koneksyon sa dili pa ang pagpadala sa datos. Kini nga proseso sa pag-establisar og koneksyon gihimo pinaagi sa three-way handshake.

 Paglamano sa tulo ka direksyon sa TCP

Atong tan-awon pag-ayo ang mga TCP packet nga gipadala sa matag koneksyon.

Sa sinugdanan, ang kliyente ug server parehong SIRADO. Una, ang server aktibong maminaw sa usa ka port ug naa sa LISTEN state, nga nagpasabot nga ang server kinahanglan nga sugdan. Sunod, ang kliyente andam na nga magsugod sa pag-access sa webpage. Kinahanglan kini nga magtukod og koneksyon sa server. Ang format sa unang connection packet mao ang mosunod:

 Pakete sa SYN

Kung ang usa ka kliyente magsugod og koneksyon, kini makamugna og random nga inisyal nga sequence number (client_isn) ug ibutang kini sa "Sequence number" nga field sa TCP header. Sa samang higayon, ang kliyente magbutang sa SYN flag position ngadto sa 1 aron ipakita nga ang mogawas nga packet usa ka SYN packet. Ang kliyente magpakita nga gusto niini nga magtukod og koneksyon sa server pinaagi sa pagpadala sa unang SYN packet ngadto sa server. Kini nga packet walay sulod nga data sa application layer (nga mao, ang data nga gipadala). Niini nga punto, ang status sa kliyente gimarkahan nga SYN-SENT.

Pakete sa SYN+ACK

Kon ang usa ka server makadawat og SYN packet gikan sa usa ka client, kini random nga mo-initialize sa kaugalingon niining serial number (server_isn) ug dayon ibutang ang maong numero sa "Serial number" field sa TCP header. Sunod, ang server mosulod sa client_isn + 1 sa "Acknowledgement number" field ug i-set ang SYN ug ACK bits ngadto sa 1. Sa katapusan, ang server magpadala sa packet ngadto sa client, nga walay sulod nga application-layer data (ug walay data nga ipadala sa server). Niining panahona, ang server anaa sa SYN-RCVD state.

Pakete sa ACK

Sa higayon nga madawat na sa kliyente ang packet gikan sa server, kinahanglan niini nga buhaton ang mosunod nga mga pag-optimize aron makatubag sa katapusang reply packet: Una, ang kliyente magtakda sa ACK bit sa TCP header sa reply packet ngadto sa 1; Ikaduha, ang kliyente mosulod sa bili nga server_isn + 1 sa "Confirm answer number" nga field; Sa katapusan, ang kliyente magpadala sa packet ngadto sa server. Kini nga packet makadala og datos gikan sa kliyente ngadto sa server. Kung makompleto na kini nga mga operasyon, ang kliyente mosulod sa ESTABLISHED nga estado.

Sa higayon nga madawat sa server ang reply packet gikan sa client, kini mobalhin usab sa ESTABLISHED state.

Sama sa imong makita sa proseso sa ibabaw, kung maghimo og three-way handshake, ang ikatulong handshake gitugotan nga magdala og datos, apan ang unang duha ka handshake dili. Kini usa ka pangutana nga kanunay gipangutana sa mga interbyu. Kung makompleto na ang three-way handshake, ang duha ka partido mosulod sa ESTABLISHED nga estado, nga nagpakita nga ang koneksyon malampuson nga natukod, diin ang kliyente ug server makasugod na sa pagpadala og datos sa usag usa.

Ngano tulo ka beses man nga maglamano? Dili kaduha, upat ka beses?
Ang kasagarang tubag mao, "Tungod kay ang three-way handshake naggarantiya sa abilidad sa pagdawat ug pagpadala." Sakto kini nga tubag, apan kini ang panggawas nga hinungdan lamang, wala maghisgot sa pangunang hinungdan. Sa mosunod, akong analisahon ang mga hinungdan sa triple handshake gikan sa tulo ka aspeto aron mapalalom ang atong pagsabot niini nga isyu.

Ang three-way handshake epektibong makalikay sa pagsugod sa mga koneksyon nga gisubli-subli sa kasaysayan (ang pangunang hinungdan)
Ang three-way handshake naggarantiya nga ang duha ka partido nakadawat og kasaligang inisyal nga sequence number.
Ang tulo-ka-paagi nga paglamano makalikay sa pag-usik sa mga kahinguhaan.

Rason 1: Likayi ang mga Historical Duplicate Joins
Sa laktod nga pagkasulti, ang pangunang rason sa three-way handshake mao ang paglikay sa kalibog nga gipahinabo sa daan nga duplicate connection initialization. Sa usa ka komplikado nga network environment, ang pagpadala sa data packets dili kanunay ipadala sa destination host sumala sa gitakdang oras, ug ang daan nga data packets mahimong moabot una sa destination host tungod sa network congestion ug uban pang mga hinungdan. Aron malikayan kini, ang TCP mogamit og three-way handshake aron matukod ang koneksyon.

Ang three-way handshake makalikay sa makasaysayanong duplicate nga koneksyon

Kon ang usa ka kliyente magpadala og daghang SYN connection establishment packets nga sunod-sunod, sa mga sitwasyon sama sa network congestion, ang mosunod mahimong mahitabo:

1- Ang daan nga mga SYN packet moabot sa server sa dili pa ang pinakabag-o nga mga SYN packet.
2- Ang server motubag og SYN + ACK packet sa kliyente human madawat ang daan nga SYN packet.
3- Kung madawat sa kliyente ang SYN + ACK packet, mahibal-an niini nga ang koneksyon usa ka historical nga koneksyon (sequence number na-expire o na-timeout) sumala sa kaugalingon nga konteksto, ug dayon ipadala ang RST packet sa server aron hunongon ang koneksyon.

Sa two-handshake connection, walay paagi aron mahibal-an kung ang kasamtangang koneksyon usa ka historical connection. Ang three-way handshake nagtugot sa kliyente sa pagtino kung ang kasamtangang koneksyon usa ka historical connection base sa konteksto kung andam na kini ipadala ang ikatulong pakete:

1- Kon kini usa ka historical connection (expire o timeout ang sequence number), ang packet nga gipadala sa third handshake usa ka RST packet aron undangon ang historical connection.
2- Kon dili kini usa ka historical nga koneksyon, ang packet nga gipadala sa ikatulong higayon usa ka ACK packet, ug ang duha ka partido nga nagkomunikar malampusong nakatukod sa koneksyon.

Busa, ang pangunang rason nganong gigamit sa TCP ang three-way handshake kay kini ang mo-initialize sa koneksyon aron malikayan ang mga historical connections.

Rason 2: Aron i-synchronize ang inisyal nga mga numero sa sunod-sunod sa duha ka partido
Ang duha ka kilid sa TCP protocol kinahanglan nga magmintinar og sequence number, nga usa ka importanteng butang aron masiguro ang kasaligan nga transmission. Ang sequence number adunay importanteng papel sa mga koneksyon sa TCP. Kini ang ilang gibuhat:

Mahimong tangtangon sa tigdawat ang doble nga datos ug masiguro ang katukma niini.

Ang tigdawat makadawat og mga pakete sa han-ay sa sequence number aron masiguro ang integridad sa datos.

● Ang sequence number makaila sa data packet nga nadawat sa pikas nga partido, nga makapahimo sa kasaligang pagpadala sa datos.

Busa, sa pag-establisar og TCP connection, ang client magpadala og SYN packets nga adunay inisyal nga sequence number ug mangayo sa server nga motubag gamit ang ACK packet nga nagpakita sa malampusong pagdawat sa SYN packet sa client. Dayon, ang server magpadala sa SYN packet nga adunay inisyal nga sequence number ngadto sa client ug maghulat sa client nga motubag, sa makausa ug alang sa tanan, aron masiguro nga ang inisyal nga sequence numbers kasaligan nga na-synchronize.

I-synchronize ang inisyal nga serial number sa duha ka partido

Bisan tuod posible usab ang four-way handshake aron masaligan ang pag-synchronize sa inisyal nga sequence number sa duha ka partido, ang ikaduha ug ikatulo nga mga lakang mahimong iusa sa usa ka lakang, nga moresulta sa three-way handshake. Bisan pa, ang duha ka handshake makagarantiya lamang nga ang inisyal nga sequence number sa usa ka partido malampuson nga madawat sa pikas partido, apan walay garantiya nga ang inisyal nga sequence number sa duha ka partido makumpirma. Busa, ang three-way handshake mao ang labing maayong kapilian aron masiguro ang kalig-on ug kasaligan sa mga koneksyon sa TCP.

Rason 3: Likayi ang Pag-usik sa mga Kapanguhaan
Kon "two-handshake" lang ang mahitabo, kon ang client SYN request gibabagan sa network, ang client dili makadawat sa ACK packet nga gipadala sa server, busa ang SYN ipadala pag-usab. Apan, tungod kay walay ikatulong handshake, ang server dili makatino kon ang client nakadawat ba og ACK acknowledgement aron maestablisar ang koneksyon. Busa, ang server mahimo lamang nga proactive nga makaestablisar og koneksyon human madawat ang matag SYN request. Kini mosangpot sa mosunod:

Pag-usik sa mga kahinguhaan: Kon ang SYN request sa kliyente mababagan, nga moresulta sa balik-balik nga pagpadala sa daghang SYN packets, ang server magtukod og daghang redundant invalid connections human madawat ang request. Kini mosangpot sa wala kinahanglana nga pag-usik sa mga kahinguhaan sa server.

Pagtipig sa mensahe: Tungod sa kakulang sa ikatulong handshake, ang server walay paagi aron mahibal-an kung ang kliyente nakadawat ba sa husto nga pag-ila sa ACK aron matukod ang koneksyon. Tungod niini, kung ang mga mensahe ma-stuck sa network, ang kliyente magpadayon sa pagpadala sa mga SYN request balik-balik, hinungdan nga ang server kanunay nga magtukod og bag-ong mga koneksyon. Kini makadugang sa paghuot ug pagkalangan sa network ug negatibo nga makaapekto sa kinatibuk-ang performance sa network.

Likayi ang pag-usik sa mga kahinguhaan

Busa, aron masiguro ang kalig-on ug kasaligan sa koneksyon sa network, gigamit sa TCP ang three-way handshake aron matukod ang koneksyon aron malikayan ang pagkahitabo niini nga mga problema.

Sumaryo
AngTigbaligya og Pakete sa NetworkAng pagtukod og koneksyon sa TCP gihimo pinaagi sa three-way handshake. Atol sa three-way handshake, ang kliyente magpadala una og packet nga adunay SYN flag ngadto sa server, nga nagpakita nga gusto niini nga magtukod og koneksyon. Human madawat ang request gikan sa kliyente, ang server motubag og packet nga adunay SYN ug ACK flags ngadto sa kliyente, nga nagpakita nga ang connection request gidawat, ug magpadala sa kaugalingon niining inisyal nga sequence number. Sa katapusan, ang kliyente motubag gamit ang ACK flag ngadto sa server aron ipakita nga ang koneksyon malampusong natukod. Busa, ang duha ka partido anaa sa ESTABLISHED state ug makasugod na sa pagpadala og data sa usag usa.

Sa kinatibuk-an, ang three-way handshake process para sa pag-establisar sa TCP connection gidisenyo aron masiguro ang kalig-on ug kasaligan sa koneksyon, malikayan ang kalibog ug pag-usik sa mga kahinguhaan tungod sa mga historical connection, ug masiguro nga ang duha ka partido makadawat ug makapadala og datos.


Oras sa pag-post: Enero-08-2025