Setup Sambungan TCP
Nalika urang ngotéktak wéb, ngirim email, atanapi maénkeun kaulinan online, urang sering henteu mikir ngeunaan sambungan jaringan anu kompleks di tukangeunana. Nanging, léngkah-léngkah anu katingalina leutik ieu anu mastikeun komunikasi stabil antara kami sareng server. Salah sahiji léngkah anu paling penting nyaéta setelan sambungan TCP, sareng inti ieu nyaéta sasalaman tilu arah.
Tulisan ieu bakal ngabahas prinsip, prosés sareng pentingna sasalaman tilu arah sacara rinci. Léngkah-léngkah, kami bakal ngajelaskeun naha sasalaman tilu arah diperyogikeun, kumaha mastikeun stabilitas sareng reliabilitas sambungan, sareng kumaha pentingna pikeun mindahkeun data. Kalayan pamahaman anu langkung jero ngeunaan sasalaman tilu arah, urang bakal nampi pamahaman anu langkung saé ngeunaan mékanisme dasar komunikasi jaringan sareng pandangan anu langkung jelas ngeunaan réliabilitas sambungan TCP.
TCP Prosés sasalaman Tilu arah jeung Transisi Propinsi
TCP mangrupikeun protokol angkutan anu berorientasi sambungan, anu peryogi ngadegkeun sambungan sateuacan pangiriman data. Prosés ngadegkeun sambungan ieu dipigawé ku sasalaman tilu arah.
Hayu urang tingali pakét TCP anu dikirim dina unggal sambungan.
Mimitina, klien sareng server TUTUP. Kahiji, server aktip listens on port sarta dina kaayaan LISTEN, nu hartina server kudu dimimitian. Salajengna, klien geus siap pikeun ngamimitian ngakses kaca web. Ieu perlu nyieun sambungan jeung server. Format pakét sambungan munggaran nyaéta kieu:
Lamun klien initiates sambungan a, eta dibangkitkeun angka runtuyan awal acak (client_isn) jeung nempatkeun eta dina widang "Jumlah runtuyan" tina lulugu TCP. Dina waktos anu sami, klien nyetél posisi bandéra SYN ka 1 pikeun nunjukkeun yén pakét kaluar nyaéta pakét SYN. Klién nunjukkeun yén éta hoyong ngadamel sambungan sareng server ku ngirim pakét SYN munggaran ka server. pakét ieu teu ngandung data lapisan aplikasi (nyaéta, data dikirim). Dina titik ieu, status klien ditandaan salaku SYN-SENT.
Nalika server narima pakét SYN ti klien, eta acak initializes angka serial sorangan (server_isn) lajeng nempatkeun angka nu dina widang "Nomer serial" tina lulugu TCP. Salajengna, server asupkeun client_isn + 1 dina widang "Nomer Pangakuan" tur nyetel duanana SYN na ACK bit ka 1. Tungtungna, server ngirimkeun pakét ka klien, nu ngandung euweuh data aplikasi-lapisan (jeung euweuh data pikeun server). ngirim). Dina waktos ayeuna, server aya dina kaayaan SYN-RCVD.
Sakali klien narima pakét ti server, éta perlu nedunan optimizations handap pikeun ngabales pakét reply final: Kahiji, klien nu susunan bit ACK tina lulugu TCP tina pakét reply kana 1; Kadua, klien ngasupkeun nilai server_isn + 1 dina widang "Konfirmasi jumlah jawaban"; Tungtungna, klien ngirim pakét ka server. pakét ieu bisa mawa data ti klien ka server. Saatos réngsé operasi ieu, klien bakal asup kana kaayaan ESTABLISHED.
Sakali server nampi pakét reply ti klien, éta ogé pindah ka kaayaan ESTABLISHED.
Sakumaha anjeun tiasa tingali tina prosés di luhur, nalika ngalakukeun sasalaman tilu arah, sasalaman katilu diidinan mawa data, tapi dua sasalaman anu munggaran henteu. Ieu patarosan anu sering ditanyakeun dina wawancara. Sakali sasalaman tilu arah parantos réngsé, kadua pihak asup kana kaayaan ESTABLISHED, nunjukkeun yén sambunganna parantos suksés didamel, dina waktos éta klien sareng server tiasa ngamimitian ngirim data ka masing-masing.
Naha tilu sasalaman? Henteu dua kali, opat kali?
Jawaban umum nyaéta, "Kusabab sasalaman tilu arah ngajamin kamampuan pikeun nampi sareng ngirim." Jawaban ieu bener, tapi ngan alesan permukaan, teu nempatkeun maju alesan utama. Di handap ieu, kuring bakal nganalisis alesan pikeun sasalaman triple tina tilu aspék pikeun deepen pamahaman kami ngeunaan masalah ieu.
Sasalaman tilu arah sacara efektif tiasa nyingkahan inisialisasi sambungan anu diulang-ulang (alesan utama)
Sasalaman tilu arah ngajamin yén kadua pihak parantos nampi nomer urutan awal anu dipercaya.
Sasalaman tilu arah ngahindarkeun runtah sumber.
Alesan 1: Hindarkeun Gabungan Duplikat Sajarah
Singkatna, alesan utama pikeun sasalaman tilu arah nyaéta pikeun ngahindarkeun kabingungan anu disababkeun ku initialization sambungan duplikat anu lami. Dina lingkungan jaringan anu kompleks, pangiriman pakét data henteu salawasna dikirim ka host tujuan saluyu sareng waktos anu ditangtukeun, sareng pakét data lami tiasa dugi ka host tujuan heula kusabab kamacetan jaringan sareng alesan sanésna. Pikeun ngahindarkeun ieu, TCP ngagunakeun sasalaman tilu arah pikeun nyieun sambungan.
Nalika klien ngirimkeun sababaraha pakét panyiapan sambungan SYN sakaligus, dina kaayaan sapertos kamacetan jaringan, ieu tiasa lumangsung:
1- pakét SYN heubeul sumping ka server saméméh pakét SYN panganyarna.
2- Server bakal ngawalon pakét SYN + ACK ka klien saatos nampi pakét SYN anu lami.
3- Nalika klien narima SYN + pakét ACK, nangtukeun yén sambungan mangrupa sambungan sajarah (nomer runtuyan kadaluwarsa atanapi timeout) nurutkeun konteks sorangan, lajeng ngirimkeun pakét RST ka server pikeun abort sambungan.
Kalayan sambungan dua sasalaman, teu aya deui jalan pikeun nangtukeun naha sambungan ayeuna mangrupikeun sambungan sajarah. Sasalaman tilu arah ngamungkinkeun klien pikeun nangtukeun naha sambungan ayeuna mangrupikeun sambungan sajarah dumasar kana kontéks nalika siap ngirim pakét katilu:
1- Lamun mangrupa sambungan sajarah (nomer runtuyan kadaluwarsa atanapi timeout), pakét dikirim ku sasalaman katilu mangrupa pakét RST pikeun abort sambungan sajarah.
2- Lamun lain sambungan sajarah, pakét dikirim pikeun katilu kalina mangrupa pakét ACK, sarta dua pihak komunikasi hasil ngadegkeun sambungan.
Ku alatan éta, alesan utama nu TCP ngagunakeun sasalaman tilu arah téh nya éta initializes sambungan pikeun nyegah sambungan sajarah.
Alesan 2: Pikeun nyingkronkeun nomer urutan awal duanana pihak
Kadua sisi protokol TCP kedah ngajaga nomer urut, anu mangrupikeun faktor konci pikeun mastikeun pangiriman anu dipercaya. Nomer urutan maénkeun peran penting dina sambungan TCP. Éta ngalakukeun ieu:
Panarima tiasa ngaleungitkeun duplikat data sareng mastikeun katepatan data.
Panarima tiasa nampi pakét dina urutan nomer sekuen pikeun mastikeun integritas data.
● Jumlah runtuyan bisa nangtukeun pakét data nu geus katampa ku pihak séjén, sangkan pangiriman data dipercaya.
Ku alatan éta, nalika nyieun sambungan TCP, klien ngirimkeun pakét SYN kalawan nomer runtuyan awal sarta merlukeun server pikeun reply kalawan pakét ACK nunjukkeun sukses panarimaan pakét SYN klien urang. Lajeng, server ngirimkeun pakét SYN kalawan nomer runtuyan awal ka klien tur ngantosan klien ngabales, sakali jeung sakabeh, pikeun mastikeun yén angka runtuyan awal anu reliably nyingkronkeun.
Sanajan sasalaman opat arah oge bisa dipercaya pikeun nyingkronkeun nomer runtuyan awal duanana pihak, lengkah kadua jeung katilu bisa digabungkeun kana hambalan tunggal, hasilna sasalaman tilu arah. Sanajan kitu, dua sasalaman ngan bisa ngajamin yén angka runtuyan awal hiji pihak geus hasil narima ku pihak séjén, tapi euweuh jaminan yén angka runtuyan awal duanana pihak bisa dikonfirmasi. Ku alatan éta, sasalaman tilu arah mangrupikeun pilihan anu pangsaéna pikeun mastikeun stabilitas sareng réliabilitas sambungan TCP.
Alesan 3: Hindarkeun Wasting Sumberdaya
Lamun ngan aya "dua sasalaman", nalika pamundut SYN klien diblokir dina jaringan, klien nu teu bisa nampa pakét ACK dikirim ku server, jadi SYN bakal resent. Sanajan kitu, saprak euweuh sasalaman katilu, server teu bisa nangtukeun lamun klien narima pangakuan ACK pikeun ngadegkeun sambungan nu. Ku alatan éta, server ngan bisa proactively nyieun sambungan sanggeus narima unggal pamundut SYN. Ieu ngakibatkeun di handap:
Runtah sumberdaya: Lamun pamundut SYN klien urang diblokir, hasilna transmisi ulang sababaraha pakét SYN, server bakal nyieun sababaraha sambungan teu valid kaleuleuwihan sanggeus narima pamundut teh. Ieu ngakibatkeun runtah teu perlu sumberdaya server.
ingetan pesen: Alatan kurangna sasalaman katilu, server teu boga jalan uninga naha klien nu neuleu narima pangakuan ACK pikeun ngadegkeun sambungan nu. Hasilna, upami pesen macét dina jaringan, klien bakal terus-terusan ngirimkeun pamundut SYN, nyababkeun server terus-terusan ngadamel sambungan énggal. Ieu bakal ningkatkeun kamacetan jaringan sareng reureuh sareng négatip mangaruhan kinerja jaringan sacara umum.
Ku alatan éta, guna mastikeun stabilitas jeung reliabilitas sambungan jaringan, TCP ngagunakeun tilu arah sasalaman pikeun ngadegkeun sambungan pikeun nyegah lumangsungna masalah ieu.
Ringkesan
TheJaringan Packet caloNgadegkeun sambungan TCP dipigawé ku sasalaman tilu arah. Salila sasalaman tilu arah, klien mimiti ngirim pakét sareng bandéra SYN ka server, nunjukkeun yén éta hoyong ngadamel sambungan. Saatos nampi pamenta ti klien, server ngabales pakét kalayan SYN sareng ACK bandéra ka klien, nunjukkeun yén pamundut sambungan katampi, sareng ngirimkeun nomer sekuen awalna. Tungtungna, klien ngabales ku bandéra ACK ka server pikeun nunjukkeun yén sambungan geus hasil ngadegkeun. Ku kituna, dua pihak dina kaayaan ESTABLISHED sarta bisa ngamimitian ngirim data ka unggal lianna.
Sacara umum, prosés sasalaman tilu arah pikeun ngadegkeun sambungan TCP dirancang pikeun mastikeun stabilitas sambungan jeung reliabilitas, ulah kabingungan jeung runtah sumberdaya leuwih sambungan sajarah, sarta mastikeun yén duanana pihak anu bisa nampa tur ngirim data.
waktos pos: Jan-08-2025