Konfigurasi Sambungan TCP
Nalika kita browsing web, ngirim email, utawa muter game online, kita asring ora mikir bab sambungan jaringan Komplek konco iku. Nanging, iki langkah-langkah cilik sing njamin komunikasi sing stabil ing antarane kita lan server. Salah sawijining langkah sing paling penting yaiku persiyapan sambungan TCP, lan inti saka iki yaiku salaman telung arah.
Artikel iki bakal ngrembug prinsip, proses lan pentinge jabat tangan telung arah kanthi rinci. Langkah demi langkah, kita bakal nerangake kenapa salaman telung arah dibutuhake, kepiye njamin stabilitas lan linuwih sambungan, lan kepiye pentinge transfer data. Kanthi pangerten sing luwih jero babagan jabat tangan telung arah, kita bakal entuk pangerten sing luwih apik babagan mekanisme dhasar komunikasi jaringan lan tampilan sing luwih jelas babagan linuwih sambungan TCP.
Proses Salaman Telung Arah TCP lan Transisi Negara
TCP minangka protokol transportasi berorientasi sambungan, sing mbutuhake panyiapan sambungan sadurunge transmisi data. Proses nggawe sambungan iki ditindakake kanthi salaman telung arah.
Ayo dideleng kanthi luwih rinci babagan paket TCP sing dikirim ing saben sambungan.
Kaping pisanan, klien lan server TUTUP. Kaping pisanan, server aktif ngrungokake port lan ana ing negara LISTEN, tegese server kudu diwiwiti. Sabanjure, klien siyap miwiti ngakses kaca web. Sampeyan kudu nggawe sambungan karo server. Format paket sambungan pisanan kaya ing ngisor iki:
Nalika klien miwiti sambungan, njedulake nomer urutan awal acak (client_isn) lan panggonan ing kolom "Nomer urutan" saka header TCP. Ing wektu sing padha, klien nyetel posisi gendera SYN dadi 1 kanggo nuduhake yen paket sing metu minangka paket SYN. Klien nuduhake yen pengin nggawe sambungan karo server kanthi ngirim paket SYN pisanan menyang server. Paket iki ora ngemot data lapisan aplikasi (yaiku, data sing dikirim). Ing titik iki, status klien ditandhani minangka SYN-SENT.
Nalika server nampa paket SYN saka klien, iku acak initializes nomer serial dhewe (server_isn) lan banjur nempatno nomer kasebut ing kolom "Nomer Seri" saka header TCP. Sabanjure, server ngetik client_isn + 1 ing kolom "Nomer Pengakuan" lan nyetel bit SYN lan ACK dadi 1. Pungkasan, server ngirim paket menyang klien, sing ora ngemot data lapisan aplikasi (lan ora ana data kanggo server. ngirim). Ing wektu iki, server ing negara SYN-RCVD.
Sawise klien nampa paket saka server, iku perlu kanggo nindakake optimizations ing ngisor iki kanggo nanggepi paket balesan final: First, klien nyetel bit ACK saka header TCP saka paket balesan kanggo 1; Kapindho, klien ngetik nilai server_isn + 1 ing kolom "Konfirmasi nomer jawaban"; Pungkasan, klien ngirim paket menyang server. Paket iki bisa nggawa data saka klien menyang server. Sawise rampung operasi kasebut, klien bakal mlebu negara ESTABLISHED.
Sawise server nampa paket balesan saka klien, uga ngalih menyang negara ESTABLISHED.
Nalika sampeyan bisa ndeleng saka proses ndhuwur, nalika nindakake salaman telung cara, salaman katelu diijini kanggo nindakake data, nanging loro salaman pisanan ora. Iki minangka pitakonan sing asring ditakoni ing wawancara. Sawise jabat tangan telung arah rampung, loro-lorone pihak mlebu negara ESTABLISHED, nuduhake yen sambungan wis kasil digawe, ing titik kasebut klien lan server bisa miwiti ngirim data menyang siji liyane.
Kok telu salaman? Ora kaping pindho, kaping papat?
Jawaban umum yaiku, "Amarga jabat tangan telung arah njamin kemampuan kanggo nampa lan ngirim." Jawaban iki bener, nanging mung alesan lumahing, ora sijine nerusake alesan utama. Ing ngisor iki, aku bakal nganalisa alasan kanggo jabat tangan telung saka telung aspek kanggo nambah pemahaman babagan masalah iki.
Jabat tangan telung arah bisa kanthi efektif ngindhari wiwitan sambungan sing bola-bali historis (alesan utama)
Salaman telung arah njamin yen loro pihak wis nampa nomer urutan wiwitan sing bisa dipercaya.
Salaman telung arah ngindhari mbuang sumber daya.
Alesan 1: Ngindhari Gabungan Duplikat Historis
Cekakipun, alesan utama kanggo jabat tangan telung cara kanggo ngindhari kebingungan disebabake initialization sambungan duplikat lawas. Ing lingkungan jaringan sing kompleks, pangiriman paket data ora mesthi dikirim menyang host tujuan sesuai karo wektu sing ditemtokake, lan paket data lawas bisa teka ing host tujuan luwih dhisik amarga kemacetan jaringan lan alasan liyane. Kanggo ngindhari iki, TCP nggunakake jabat tangan telung arah kanggo nggawe sambungan kasebut.
Nalika klien ngirim pirang-pirang paket panyiapan sambungan SYN kanthi berturut-turut, ing kahanan kayata kemacetan jaringan, kedadeyan ing ngisor iki:
1- Paket SYN lawas teka ing server sadurunge paket SYN paling anyar.
2- Server bakal mangsuli paket SYN + ACK kanggo klien sawise nampa paket SYN lawas.
3- Nalika klien nampa paket SYN + ACK, nemtokake sambungan sing sambungan sajarah (nomer urutan kadaluwarsa utawa wektu entek) miturut konteks dhewe, lan banjur ngirim paket RST kanggo server kanggo abort sambungan.
Kanthi sambungan salaman loro, ora ana cara kanggo nemtokake manawa sambungan saiki minangka sambungan historis. Jabat tangan telung arah ngidini klien nemtokake manawa sambungan saiki minangka sambungan historis adhedhasar konteks nalika wis siyap ngirim paket katelu:
1- Yen sambungan sajarah (nomer urutan kadaluwarsa utawa wektu entek), paket dikirim dening jabat tangan katelu minangka paket RST kanggo abort sambungan sajarah.
2- Yen dudu sambungan sajarah, paket sing dikirim kaping telune minangka paket ACK, lan loro pihak sing komunikasi bisa nggawe sambungan kasebut.
Mulane, alesan utama sing TCP nggunakake jabat tangan telung cara iku initializes sambungan kanggo nyegah sambungan sajarah.
Alesan 2: Kanggo nyinkronake nomer urutan awal saka loro pihak
Loro-lorone protokol TCP kudu njaga nomer urutan, sing dadi faktor kunci kanggo njamin transmisi sing bisa dipercaya. Nomer urutan nduweni peran penting ing sambungan TCP. Dheweke nindakake ing ngisor iki:
Panrima bisa ngilangi data duplikat lan njamin akurasi data kasebut.
Panrima bisa nampa paket ing urutan nomer urutan kanggo njamin integritas data.
● Nomer urutan bisa ngenali paket data sing wis ditampa dening pihak liyane, mbisakake transmisi data dipercaya.
Mulane, nalika nggawe sambungan TCP, klien ngirim paket SYN karo nomer urutan dhisikan lan mbutuhake server kanggo reply karo paket ACK nuduhake sukses reception saka paket SYN klien. Banjur, server ngirim paket SYN karo nomer urutan dhisikan kanggo klien lan ngenteni klien kanggo reply, sapisan lan kanggo kabeh, kanggo mesthekake yen nomer urutan dhisikan andal diselarasake.
Senajan jabat tangan papat-cara uga bisa kanggo andal nyinkronake nomer urutan awal saka loro pihak, langkah kapindho lan katelu bisa digabungake dadi siji langkah, asil ing jabat tangan telung cara. Nanging, loro jabat tangan mung bisa njamin yen nomer urutan awal saka siji pihak kasil ditampa dening pihak liyane, nanging ora ana jaminan yen nomer urutan awal saka loro pihak bisa dikonfirmasi. Mulane, jabat tangan telung cara minangka pilihan sing paling apik kanggo njupuk supaya njamin stabilitas lan linuwih sambungan TCP.
Alesan 3: Aja Mbuang Sumber Daya
Yen mung ana "loro-jabat tangan", nalika request SYN klien diblokir ing jaringan, klien ora bisa nampa paket ACK dikirim dening server, supaya SYN bakal resent. Nanging, amarga ora ana jabat tangan katelu, server ora bisa nemtokake manawa klien nampa pangakuan ACK kanggo nggawe sambungan kasebut. Mulane, server mung bisa proaktif nggawe sambungan sawise nampa saben request SYN. Iki ndadékaké ing ngisor iki:
Sampah sumber daya: Yen panjalukan SYN klien diblokir, nyebabake transmisi bola-bali saka macem-macem paket SYN, server bakal nggawe sawetara sambungan ora bener keluwih sawise nampa panjalukan. Iki nyebabake sampah sumber daya server sing ora perlu.
Penylametan pesen: Amarga ora ana salaman katelu, server ora ngerti apa klien nampa pangakuan ACK kanthi bener kanggo nggawe sambungan kasebut. Akibaté, yen pesen macet ing jaringan, klien bakal terus ngirim panjalukan SYN bola-bali, nyebabake server terus nggawe sambungan anyar. Iki bakal nambah rame lan wektu tundha jaringan lan mengaruhi kinerja jaringan sakabèhé.
Mulane, kanggo mesthekake stabilitas lan linuwih sambungan jaringan, TCP nggunakake jabat tangan telung cara kanggo netepake sambungan supaya ora kedadeyan masalah kasebut.
Ringkesan
IngBroker Paket JaringanPanyiapan sambungan TCP rampung kanthi salaman telung arah. Sajrone jabat tangan telung arah, klien ngirim paket kanthi flag SYN menyang server, sing nuduhake yen dheweke pengin nggawe sambungan. Sawise nampa panjalukan saka klien, server mangsuli paket karo SYN lan ACK panji kanggo klien, nuduhake yen panjalukan sambungan ditampa, lan ngirim nomer urutan dhisikan dhewe. Akhire, klien balesan karo gendéra ACK kanggo server kanggo nunjukaké sing sambungan wis kasil ditetepake. Mangkono, loro pihak ing negara ESTABLISHED lan bisa miwiti ngirim data kanggo saben liyane.
Umumé, proses jabat tangan telung cara kanggo panyiapan sambungan TCP dirancang kanggo njamin stabilitas sambungan lan linuwih, supaya kebingungan lan sampah sumber liwat sambungan sajarah, lan mesthekake yen loro pihak bisa nampa lan ngirim data.
Wektu kirim: Jan-08-2025