


Contoh analisis jabat tangan tiga hala TCP untuk mewujudkan pautan dan gelombang empat hala untuk memutuskan pautan
Satu langkah pada satu masa.
Pertama, mari kita perkenalkan secara ringkas protokol TCP.
TCP (Transmission Control Protocol) ialah protokol lapisan pengangkutan berasaskan aliran bait yang berorientasikan sambungan, boleh dipercayai. Ia rumit, tetapi ia adalah kemahiran asas yang mesti diketahui oleh pengaturcara dan kakitangan operasi dan penyelenggaraan.
Berorientasikan objek - kedua-dua pihak perlu mewujudkan sambungan terlebih dahulu sebelum berkomunikasi Ini seperti membuat panggilan telefon dalam kehidupan sebenar.
Boleh Dipercayai - Terdapat banyak peraturan dalam protokol TCP untuk memastikan kebolehpercayaan pautan komunikasi, termasuk aplikasi pemisahan data, mekanisme penghantaran semula, pengepala dan pengesahan data, dan pengisihan data yang diterima lapisan aplikasi, dan hujung penerima akan membuang data pendua dan melaksanakan kawalan aliran.
Data TCP dikapsulkan dalam datagram IP dengan format berikut:
Mengandungi: nombor port [16bit], nombor jujukan [32bit], offset [ 4bit], Terpelihara [6bit], bendera [6bit], saiz tetingkap (tetingkap) [16bit], checksum [16bit], penunjuk kecemasan [16bit], pilihan TCP
Perkara yang perlu diperhatikan di sini:
Paket TCP tidak mempunyai alamat IP Itu adalah masalah pada lapisan IP, tetapi terdapat port sumber dan port destinasi.
Sambungan TCP memerlukan empat tupel untuk mewakili sambungan yang sama (src_ip, src_port, dst_ip, dst_port Untuk tepatnya, ia ialah lima tuple, dan satu ialah protokol). Tetapi kerana kita hanya bercakap tentang protokol TCP di sini, saya hanya bercakap tentang empat kali ganda di sini.
Nombor Jujukan ialah nombor jujukan paket digunakan untuk menyelesaikan masalah penyusunan semula paket rangkaian.
Nombor Pengakuan ialah ACK - digunakan untuk mengesahkan penerimaan, digunakan untuk menyelesaikan masalah tidak kehilangan paket.
Tetingkap juga dipanggil Advertised-Window, iaitu tetingkap gelongsor (Sliding Window) yang terkenal, digunakan untuk menyelesaikan kawalan aliran.
-
Bendera TCP, iaitu jenis paket, digunakan terutamanya untuk mengawal mesin keadaan TCP .
URG: Penunjuk kecemasan adalah sah
ACK: Nombor urutan pengesahan adalah sah
PSH: Penerima harus menyerahkan segmen ini ke lapisan aplikasi secepat mungkin
RST : Membina semula sambungan
SYN: Nombor jujukan penyegerakan, digunakan untuk memulakan sambungan
FIN: Pemula menyelesaikan tugas penghantaran (tutup secara aktif)
Jabat tangan tiga hala diwujudkan Pautan
1 Penghujung permintaan (klien) menghantar SYN=1 untuk menunjukkan port pelayan yang ingin disambungkan oleh pelanggan menetapkan bahawa data tidak boleh dibawa apabila SYN=1, tetapi nombor jujukan digunakan, jadi Isytiharkan nombor jujukan awal anda seq sebagai nombor rawak dengan andaian seq=x.
2 Pelayan mengesahkan segmen mesej pelanggan dan menetapkan nombor urutan pengesahan kepada ACK=x+1. Pada masa yang sama, ia juga meminta untuk menyambung kepada pelanggan, menghantar SYN=1, dan menghantar nombor seq awal dengan andaian seq=y.
3 Pelanggan mengesahkan segmen mesej pelayan, menghantar nombor urutan pengesahan dan bersetuju untuk mewujudkan sambungan dengan pelayan ACK=y+1.
Tiga segmen mesej ini melengkapkan penubuhan sambungan. Proses ini juga dipanggil jabat tangan tiga hala
Melambai empat kali untuk memutuskan pautan
1 (boleh menjadi pelanggan atau pelayan), tetapkan Nombor Urutan dan Nombor Pengakuan , hantar segmen FIN ke hos 2 pada masa ini, hos 1 memasuki keadaan FIN_WAIT_1 ini bermakna hos 1 tidak mempunyai data untuk dihantar ke hos 2; dihantar oleh 1 mengembalikan segmen mesej ACK ke hos 1. Nombor Pengakuan ialah Nombor Urutan tambah 1; hos 1 memasuki keadaan FIN_WAIT_2 memberitahu hos 1 bahawa saya tiada data untuk dihantar dan boleh menutup sambungan >
3. Hos 2 menghantar segmen FIN ke hos 1, meminta untuk menutup sambungan, dan hos 2 memasuki keadaan CLOSE_WAIT; 4 menerima FIN yang dihantar oleh hos 2 segmen ACK ke Hos 2, dan kemudian Hos 1 memasuki keadaan TIME_WAIT selepas Hos 2 menerima segmen ACK daripada Hos 1, ia menutup sambungan pada masa ini, Hos 1 masih tidak menerima balasan selepas menunggu 2MSL , ia membuktikan bahawa bahagian pelayan telah ditutup seperti biasa, maka hos 1 juga boleh menutup sambungan. Pada ketika ini, empat pemisahan TCP telah diselesaikan dengan gembira. Ikon untuk mewujudkan dan memutuskan pautan adalah seperti berikut:Mari kita pecahkan mengapa ia adalah jabat tangan tiga hala?
Segmen permintaan sambungan pertama yang dihantar oleh klien tidak hilang, tetapi kekal di nod rangkaian tertentu untuk masa yang lama, supaya ia ditangguhkan sehingga masa tertentu selepas sambungan dikeluarkan sebelum sampai ke pelayan. Ternyata ini adalah segmen mesej yang telah lama tamat tempoh. Walau bagaimanapun, selepas pelayan menerima segmen permintaan sambungan yang tidak sah ini, ia tersalah anggap bahawa ia adalah permintaan sambungan baharu yang dihantar oleh pelanggan sekali lagi. Jadi ia menghantar segmen mesej pengesahan kepada pelanggan dan bersetuju untuk mewujudkan sambungan. Dengan mengandaikan bahawa "jabat tangan tiga hala" tidak digunakan, selagi pelayan menghantar pengesahan, sambungan baharu diwujudkan. Oleh kerana pelanggan tidak mengeluarkan permintaan untuk mewujudkan sambungan, ia tidak akan memberi perhatian kepada pengesahan pelayan dan tidak akan menghantar data ke pelayan. Tetapi pelayan berpendapat bahawa sambungan pengangkutan baharu telah diwujudkan dan telah menunggu pelanggan menghantar data. Dengan cara ini, banyak sumber pelayan dibazirkan. Kaedah "jabat tangan tiga hala" boleh mengelakkan fenomena di atas daripada berlaku. Sebagai contoh, dalam situasi tadi, pelanggan tidak akan menghantar pengesahan kepada pengesahan pelayan. Oleh kerana pelayan tidak dapat menerima pengesahan, ia mengetahui bahawa pelanggan tidak meminta untuk membuat sambungan. "
Ini sangat jelas, menghalang pelayan daripada membazir sumber dengan menunggu selama-lamanya.
Jadi mengapa terdapat empat gelombang?
Protokol TCP ialah berorientasikan A bersambung, boleh dipercayai , protokol komunikasi lapisan pengangkutan berasaskan aliran bait TCP berada dalam mod dupleks penuh, yang bermaksud bahawa apabila hos 1 menghantar segmen FIN, ia hanya bermakna hos 1 tidak mempunyai data untuk dihantar telah dihantar; walau bagaimanapun, hos 1 masih boleh menerima data daripada hos 2 pada masa ini apabila hos 2 mengembalikan segmen mesej ACK, ini bermakna ia sudah mengetahui bahawa hos 1 tidak mempunyai data untuk dihantar Hos 1; apabila Hos 2 juga menghantar segmen FIN, ini bermakna Hos 2 tidak mempunyai data untuk dihantar, dan ia akan memberitahu Hos 1 bahawa saya tidak mempunyai data untuk dihantar , maka satu sama lain akan dengan senang hati menamatkan sambungan TCP ingin memahami dengan betul prinsip empat perpisahan, anda perlu memahami perubahan keadaan semasa empat perpisahan
Atas ialah kandungan terperinci Contoh analisis jabat tangan tiga hala TCP untuk mewujudkan pautan dan gelombang empat hala untuk memutuskan pautan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Bagaimana untuk menetapkan semula protokol tcp/ip dalam win10? Sebenarnya, kaedahnya sangat mudah Pengguna boleh terus memasukkan command prompt, dan kemudian tekan kombinasi kekunci ctrl+shift+enter untuk melaksanakan operasi, atau terus laksanakan arahan set semula untuk menyediakan pengguna pengenalan terperinci tentang cara menetapkan semula susunan protokol TCP/IP dalam Windows 10. Kaedah 1 untuk menetapkan semula timbunan protokol tcp/ip dalam windows 10. Kebenaran pentadbir 1. Kami menggunakan kekunci pintasan win+R untuk terus membuka tetingkap jalankan, kemudian masukkan cmd dan tahan ctrl+shift+enter kombinasi kekunci. 2. Atau kita boleh terus mencari command prompt dalam menu mula dan klik kanan

Klien TCP Kod sampel pelanggan yang menggunakan protokol TCP untuk mencapai dialog berterusan: importsocket#Konfigurasi pelanggan HOST='localhost'PORT=12345#Buat soket TCP dan sambung ke pelayan client_socket=socket.socket(socket.AF_INET,socket . SOCK_STREAM)client_socket.connect((HOST,PORT))whileTrue:#Dapatkan mesej input pengguna=input("Sila masukkan mesej yang hendak dihantar:&

TCP ialah protokol komunikasi rangkaian komputer dan protokol penghantaran berorientasikan sambungan. Dalam pembangunan aplikasi Java, komunikasi TCP digunakan secara meluas dalam pelbagai senario, seperti penghantaran data antara pelanggan dan pelayan, penghantaran audio dan video masa nyata, dsb. Netty4 ialah rangka kerja pengaturcaraan rangkaian berprestasi tinggi, sangat berskala dan berprestasi tinggi yang boleh mengoptimumkan proses pertukaran data antara pelayan dan pelanggan untuk menjadikannya lebih cekap dan boleh dipercayai. Langkah-langkah pelaksanaan khusus menggunakan Netty4 untuk komunikasi TCP adalah seperti berikut: Pengenalan

"Berorientasikan sambungan" yang disebut di sini bermakna anda perlu membuat sambungan, menggunakan sambungan dan melepaskan sambungan. Mewujudkan sambungan merujuk kepada jabat tangan tiga hala TCP yang terkenal. Apabila menggunakan sambungan, data dihantar dalam bentuk satu hantaran dan satu pengesahan. Terdapat juga pelepasan sambungan, yang merupakan gelombang empat gelombang TCP biasa kami.

Mengapakah terdapat blog ini tentang menggunakan satu sambungan TCP untuk menghantar berbilang fail? Saya telah membaca beberapa perkara yang berkaitan baru-baru ini. Tiada masalah dengan hanya menggunakan Socket untuk pengaturcaraan, tetapi ini hanya menetapkan beberapa konsep asas. Masih tiada apa yang boleh dilakukan tentang masalah sebenar. Apabila saya perlu memindahkan fail, saya mendapati bahawa saya seolah-olah baru sahaja menghantar data (data binari), tetapi beberapa maklumat tentang fail itu hilang (sambungan fail). Dan setiap kali saya hanya boleh menggunakan satu Soket untuk menghantar satu fail, tidak ada cara untuk menghantar fail secara berterusan (kerana saya bergantung pada penutupan strim untuk menyelesaikan penghantaran fail, yang bermaksud bahawa saya sebenarnya tidak tahu panjang fail, jadi saya hanya boleh menghantar fail kerana satu sambungan Soket mewakili fail).

Di antara pihak komunikasi TCP, untuk kemudahan penerangan, pihak komunikasi digantikan dengan A dan B dalam perkara berikut. Menurut protokol TCP, jika B terus menghantar data selepas A menutup sambungan, B akan menerima respons RST A. Jika B terus menghantar data, sistem akan menghantar isyarat SIGPIPE untuk memaklumkan bahawa sambungan telah diputuskan dan berhenti menghantar. Tingkah laku pemprosesan lalai sistem untuk isyarat SIGPIPE adalah untuk membiarkan proses B keluar. Tingkah laku pemprosesan lalai sistem pengendalian untuk isyarat SIGPIPE adalah sangat tidak mesra. Komunikasi TCP ialah saluran dupleks penuh, yang bersamaan dengan dua saluran simpleks, dan setiap hujung sambungan bertanggungjawab untuk satu. Apabila hujung bertentangan "menutup", walaupun niatnya adalah untuk menutup keseluruhan dua saluran, hujung tempatan hanya menerima paket FIN. Menurut peruntukan protokol TCP, apabila a

TCP dan IP adalah dua protokol yang berbeza dalam Internet: 1. TCP ialah protokol lapisan pengangkutan, manakala IP ialah protokol lapisan rangkaian 2. TCP menyediakan fungsi seperti pembahagian, pengisihan, pengesahan dan penghantaran semula paket data , dan IP protokol bertanggungjawab untuk menyediakan alamat sumber dan destinasi untuk paket data; 3. TCP ialah protokol berorientasikan sambungan, manakala protokol IP adalah tanpa sambungan;

Pernah ada soalan temu bual klasik seperti ini: Apakah yang berlaku dalam proses daripada URL yang dimasukkan dalam penyemak imbas ke halaman yang dipaparkan? Saya percaya bahawa kebanyakan pelajar yang telah menyediakan boleh menjawabnya, tetapi jika anda terus bertanya: Jika HTML yang diterima mengandungi berpuluh-puluh teg imej, dalam cara bagaimana, dalam susunan apa, berapa banyak sambungan yang diwujudkan dan protokol yang digunakan untuk memuat turun gambar-gambar ini?
