Pangunang mga Misteryo sa Network Packet Broker TCP Connections: Gipadayag ang panginahanglan sa Triple Handshake

Setup sa Koneksyon sa TCP
Kung mag-browse kami sa web, magpadala usa ka email, o magdula usa ka online nga dula, kanunay namon wala maghunahuna bahin sa komplikado nga koneksyon sa network sa luyo niini. Bisan pa, kini nga daw gagmay nga mga lakang nga nagsiguro sa lig-on nga komunikasyon tali kanamo ug sa server. Usa sa labing importante nga mga lakang mao ang TCP connection setup, ug ang kinauyokan niini mao ang three-way handshake.

Kini nga artikulo maghisgot sa prinsipyo, proseso ug importansya sa tulo-ka-paagi nga paglamano sa detalye. Sa sunod-sunod nga lakang, among ipasabut kung ngano nga kinahanglan ang tulo ka paagi nga paglamano, kung giunsa kini pagsiguro nga lig-on ug kasaligan ang koneksyon, ug kung unsa kini ka hinungdanon alang sa pagbalhin sa datos. Uban sa mas lawom nga pagsabot sa tulo-ka-paagi nga paglamano, makabaton kita ug mas maayong pagsabot sa nagpahiping mekanismo sa komunikasyon sa network ug mas klarong panglantaw sa kasaligan sa mga koneksyon sa TCP.

TCP Three-way Handshake Process ug State Transitions
Ang TCP kay usa ka connection-oriented transport protocol, nga nagkinahanglan ug connection establishment sa dili pa ang data transmission. Kini nga proseso sa pagtukod sa koneksyon gihimo pinaagi sa usa ka three-way handshake.

 TCP three-way handshake

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

Sa sinugdan, ang kliyente ug server kay SARADO. Una, ang server aktibo nga naminaw sa usa ka pantalan ug anaa sa LISTEN nga estado, nga nagpasabot nga ang server kinahanglan nga magsugod. Sunod, ang kliyente andam na nga magsugod sa pag-access sa webpage.Kinahanglan nga maghimo usa ka koneksyon sa server. Ang pormat sa unang pakete sa koneksyon mao ang mosunod:

 SYN Packet

Kung ang usa ka kliyente magsugod sa usa ka koneksyon, kini makamugna og usa ka random nga inisyal nga sequence number (client_isn) ug ibutang kini sa "Sequence number" field sa TCP header. Sa samang higayon, ang kliyente nagtakda sa posisyon sa bandila sa SYN ngadto sa 1 aron ipakita nga ang mogawas nga packet usa ka SYN packet. Gipakita sa kliyente nga gusto niini nga magtukod usa ka koneksyon sa server pinaagi sa pagpadala sa una nga pakete sa SYN sa server. Kini nga pakete wala maglangkob sa data sa layer sa aplikasyon (nga mao, gipadala nga datos). Niini nga punto, ang kahimtang sa kliyente gimarkahan ingon SYN-SENT.

SYN+ACK Packet

Sa diha nga ang usa ka server makadawat sa usa ka SYN packet gikan sa usa ka kliyente, kini random nga magsugod sa iyang kaugalingong serial number (server_isn) ug dayon ibutang kana nga numero sa "Serial number" field sa TCP header. Sunod, ang server mosulod sa client_isn + 1 sa "Acknowledgement number" field ug magbutang sa SYN ug ACK bits ngadto sa 1. Sa kataposan, ang server nagpadala sa packet ngadto sa kliyente, nga walay sulod nga application-layer data (ug walay data alang sa server ipadala). Niini nga panahon, ang server naa sa estado sa SYN-RCVD.

Pakete sa ACK

Sa higayon nga ang kliyente makadawat sa packet gikan sa server, kini kinahanglan nga mohimo sa mosunod nga mga pag-optimize aron sa pagtubag sa katapusan nga reply packet: Una, ang kliyente nagtakda sa ACK bit sa TCP header sa reply packet ngadto sa 1; Ikaduha, ang kliyente mosulod sa bili server_isn + 1 sa "Confirm answer number" field; Sa katapusan, gipadala sa kliyente ang pakete sa server. Kini nga pakete mahimong magdala og datos gikan sa kliyente ngadto sa server. Sa pagkompleto niini nga mga operasyon, ang kliyente mosulod sa ESTABLISHED nga estado.

Sa higayon nga ang server makadawat sa tubag nga pakete gikan sa kliyente, kini usab mobalhin ngadto sa ESTABLISHED nga estado.

Sama sa imong makita gikan sa proseso sa ibabaw, kung maghimo usa ka tulo ka paagi nga paglamano, ang ikatulo nga paglamano gitugotan nga magdala data, apan ang una nga duha nga paglamano dili. Kini usa ka pangutana nga kanunay gipangutana sa mga interbyu. Sa diha nga ang tulo-ka-way nga handshake makompleto, ang duha ka partido mosulod sa ESTABLISHED nga estado, nga nagpakita nga ang koneksyon malampuson nga natukod, diin ang kliyente ug server mahimong magsugod sa pagpadala sa data sa usag usa.

Nganong tulo ka kamot? Dili kaduha, upat ka beses?
Ang kasagarang tubag mao, "Tungod kay ang three-way handshake naggarantiya sa abilidad sa pagdawat ug pagpadala." Kini nga tubag husto, apan kini mao lamang ang pang-ibabaw nga rason, wala ibutang sa unahan ang nag-unang rason. Sa musunod, akong analisahon ang mga rason sa triple handshake gikan sa tulo ka aspeto aron molalom ang atong pagsabot niini nga isyu.

Ang three-way handshake epektibo nga makalikay sa pagsugod sa makasaysayanon nga gibalikbalik nga mga koneksyon (ang panguna nga hinungdan)
Ang three-way handshake naggarantiya nga ang duha ka partido nakadawat ug kasaligang inisyal nga sequence number.
Ang three-way handshake makalikay sa pag-usik sa mga kahinguhaan.

Rason 1: Likayi ang Historical Duplicate Joins
Sa laktud nga pagkasulti, ang panguna nga hinungdan sa tulo ka paagi nga paglamano mao ang paglikay sa kalibog nga gipahinabo sa daan nga doble nga pagsugod sa koneksyon. Sa usa ka komplikado nga palibot sa network, ang pagpadala sa mga pakete sa datos dili kanunay ipadala sa destinasyon nga host sumala sa gitakda nga oras, ug ang daan nga mga pakete sa datos mahimong una nga moabut sa destinasyon nga host tungod sa paghuot sa network ug uban pang mga hinungdan. Aron malikayan kini, ang TCP naggamit ug tulo ka paagi nga paglamano aron maestablisar ang koneksyon.

three-way handshake molikay sa makasaysayanong duplicate nga koneksyon

Kung ang usa ka kliyente nagpadala daghang mga pakete sa pagtukod sa koneksyon sa SYN nga sunud-sunod, sa mga sitwasyon sama sa paghuot sa network, ang mga musunud mahimong mahitabo:

1- Ang daan nga mga pakete sa SYN moabut sa server sa wala pa ang labing bag-o nga mga pakete sa SYN.
2- Ang server motubag ug SYN + ACK packet sa kliyente human madawat ang daan nga SYN packet.
3- Sa diha nga ang kliyente makadawat sa SYN + ACK packet, kini nagtino nga ang koneksyon mao ang usa ka makasaysayanon nga koneksyon (sequence number expired o timeout) sumala sa kaugalingon nga konteksto, ug dayon ipadala ang RST packet ngadto sa server aron i-abort ang koneksyon.

Uban sa koneksyon sa duha ka handshake, walay paagi aron mahibal-an kung ang kasamtangan nga koneksyon usa ka kasaysayan nga koneksyon. Ang three-way handshake nagtugot sa kliyente nga mahibal-an kung ang karon nga koneksyon usa ka makasaysayan nga koneksyon base sa konteksto kung andam na ipadala ang ikatulo nga pakete:

1- Kung kini usa ka historikal nga koneksyon (sequence number expired o timeout), ang packet nga gipadala sa ikatulo nga handshake usa ka RST packet aron i-abort ang historical connection.
2- Kung dili kini usa ka makasaysayan nga koneksyon, ang pakete nga gipadala sa ikatulong higayon usa ka pakete sa ACK, ug ang duha nga nagkomunikar nga partido malampuson nga nagtukod sa koneksyon.

Busa, ang nag-unang rason nga ang TCP naggamit sa tulo-ka-paagi nga handshake mao nga kini nag-initialize sa koneksyon aron mapugngan ang kasaysayan nga mga koneksyon.

Rason 2: Aron i-synchronize ang inisyal nga sequence number sa duha ka partido
Ang duha ka kilid sa TCP protocol kinahanglang magmentinar ug sequence number, nga usa ka importanteng butang aron maseguro ang kasaligang transmission. Ang mga numero sa han-ay adunay importante nga papel sa mga koneksyon sa TCP. Gihimo nila ang mosunod:

Mahimong wagtangon sa tigdawat ang doble nga datos ug masiguro ang katukma sa datos.

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

● Ang sequence number makaila sa data packet nga nadawat sa laing partido, nga makapahimo sa kasaligang data transmission.

Busa, sa pag-establisar og koneksyon sa TCP, ang kliyente nagpadala sa mga pakete sa SYN nga adunay inisyal nga sequence number ug nagkinahanglan nga ang server motubag sa usa ka ACK packet nga nagpakita sa malampuson nga pagdawat sa SYN packet sa kliyente. Dayon, ang server nagpadala sa SYN packet nga adunay inisyal nga sequence number ngadto sa kliyente ug maghulat sa kliyente nga motubag, sa makausa ug alang sa tanan, aron masiguro nga ang mga inisyal nga sequence number masaligan nga gi-synchronize.

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

Bisan kung ang usa ka upat ka paagi nga paglamano posible usab nga kasaligan nga i-synchronize ang inisyal nga mga numero sa pagkasunod-sunod sa duha ka partido, ang ikaduha ug ikatulo nga mga lakang mahimong mahiusa sa usa ka lakang, nga moresulta sa usa ka tulo nga paagi nga paglamano. Bisan pa, ang duha ka paglamano makagarantiya lamang nga ang inisyal nga sequence number sa usa ka partido malampuson nga nadawat sa pikas nga partido, apan walay garantiya nga ang inisyal nga sequence number sa duha ka partido mahimong makumpirma. Busa, ang three-way handshake mao ang labing maayong pagpili nga buhaton aron masiguro ang kalig-on ug kasaligan sa mga koneksyon sa TCP.

Rason 3: Likayi ang Pag-usik sa mga Kapanguhaan
Kung adunay usa lamang ka "two-handshake", kung ang kliyente nga SYN request gibabagan sa network, ang kliyente dili makadawat sa ACK packet nga gipadala sa server, mao nga ang SYN mahimong masuko. Bisan pa, tungod kay wala’y ikatulo nga paglamano, dili mahibal-an sa server kung ang kliyente nakadawat usa ka pag-ila sa ACK aron matukod ang koneksyon. Busa, ang server mahimo ra nga aktibo nga magtukod usa ka koneksyon pagkahuman makadawat sa matag hangyo sa SYN. Kini mosangpot sa mosunod:

Pag-usik sa mga kahinguhaan: Kung ang hangyo sa SYN sa kliyente gibabagan, nga moresulta sa gibalikbalik nga pagpasa sa daghang mga pakete sa SYN, ang server magtukod og daghang mga dili balido nga koneksyon pagkahuman madawat ang hangyo. Nagdala kini sa wala kinahanglana nga pag-usik sa mga kapanguhaan sa server.

Pagpabilin sa mensahe: Tungod sa kakulang sa usa ka ikatulo nga handshake, ang server walay paagi sa pagkahibalo kon ang kliyente sa husto nga pagdawat sa ACK acknowledgement sa pagtukod sa koneksyon. Ingon usa ka sangputanan, kung ang mga mensahe ma-stuck sa network, ang kliyente magpadayon sa pagpadala sa mga hangyo sa SYN nga balik-balik, hinungdan nga ang server kanunay nga magtukod mga bag-ong koneksyon. Kini makadugang sa paghuot sa network ug paglangan ug negatibong 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, ang TCP naggamit sa tulo ka paagi nga paglamano aron matukod ang koneksyon aron malikayan ang pagtungha niini nga mga problema.

Summary
AngNetwork Packet BrokerAng pagtukod sa koneksyon sa TCP gihimo gamit ang tulo ka paagi nga paglamano. Atol sa three-way handshake, ang kliyente una nga nagpadala og usa ka pakete nga adunay bandila sa SYN ngadto sa server, nga nagpakita nga gusto kini nga magtukod og koneksyon. Human madawat ang hangyo gikan sa kliyente, ang server motubag sa usa ka pakete nga adunay SYN ug ACK nga mga bandera ngadto sa kliyente, nga nagpakita nga ang hangyo sa koneksyon gidawat, ug nagpadala sa kaugalingon nga inisyal nga sequence number. Sa katapusan, ang kliyente motubag sa usa ka bandila sa ACK sa server aron ipakita nga ang koneksyon malampuson nga natukod. Sa ingon, ang duha ka partido naa sa ESTABLISHED nga estado ug mahimong magsugod sa pagpadala data sa usag usa.

Sa kinatibuk-an, ang tulo ka paagi nga proseso sa paglamano alang sa pagtukod sa koneksyon sa TCP gidisenyo aron masiguro ang kalig-on ug kasaligan sa koneksyon, paglikay sa kalibog ug pag-usik sa mga kapanguhaan sa mga koneksyon sa kasaysayan, ug pagsiguro nga ang duha ka partido makadawat ug makapadala mga datos.


Oras sa pag-post: Ene-08-2025