Perbezaan antara komunikasi soket dan komunikasi tcp: 1. Protokol tcp tergolong dalam protokol lapisan pengangkutan, manakala soket ialah lapisan abstrak antara lapisan aplikasi dan lapisan pengangkutan 2. Tiga jabat tangan diperlukan untuk mewujudkan sambungan TCP; 3. Sambungan soket boleh mengekalkan sambungan yang panjang;
Persekitaran pengendalian artikel ini: sistem Windows 10, komputer Dell G3.
Apakah perbezaan antara komunikasi soket dan komunikasi tcp?
Perbezaan antara tcp dan soket
1: protokol tcp
protokol tcp tergolong dalam protokol lapisan pengangkutan (UDP juga tergolong dalam protokol lapisan pengangkutan, tetapi protokol UDP tidak mempunyai kewarganegaraan). Mewujudkan sambungan TCP memerlukan tiga jabat tangan, dan memutuskan sambungan TCP memerlukan empat gelombang. Telefon mudah alih boleh menggunakan fungsi rangkaian kerana lapisan bawah telefon bimbit melaksanakan protokol TCP/IP Anda boleh menggunakan terminal telefon mudah alih untuk mewujudkan sambungan TCP dengan pelayan melalui rangkaian wayarles. Protokol TCP boleh menyediakan antara muka kepada rangkaian lapisan atas, supaya penghantaran data rangkaian lapisan atas ditubuhkan pada rangkaian "tidak dibezakan".
Tcp memerlukan tiga jabat tangan untuk mewujudkan sambungan:
Rajah 1: Gambar rajah jabat tangan tiga hala sambungan Tcp
Seperti yang ditunjukkan dalam rajah:
Keperluan pelanggan Untuk mewujudkan sambungan tcp dengan pelayan, mula-mula hantar isyarat syn J ke pelayan Selepas menerima isyarat ini, pelayan bertindak balas kepada klien dengan isyarat ACK J 1 dan isyarat syn K tambahan ACK J 1 Selepas menerima isyarat, saya akan tahu bahawa pelayan boleh menerima isyarat saya, dan kemudian pelanggan saya boleh menghantar data ke pelayan anda dengan selamat tanpa bimbang pelayan anda tidak boleh menerima data yang saya hantar.
Selepas klien menerima isyarat SYN K yang dihantar oleh pelayan, ia juga perlu menghantar isyarat ACK K 1 kembali ke pelayan, supaya pelayan akan tahu apabila ia menerima isyarat ini bahawa pelayan saya menghantar anda isyarat pelanggan, pelanggan anda boleh menerimanya, supaya pelayan saya boleh menghantar data dengan selamat kepada pelanggan anda tanpa perlu risau bahawa pelanggan anda tidak boleh menerima data yang dihantarnya.
Malah, anda boleh lihat daripada penerangan di atas:
Mewujudkan sambungan boleh dilakukan dalam empat langkah yang sama seperti memutuskan sambungan TCP, tetapi ia hanya menggabungkan isyarat tindak balas pelayan ACK dan permintaan pengesahan pelanggan Dua langkah SYNC isyarat diselesaikan dalam satu langkah.
Empat gelombang diperlukan apabila sambungan tcp ditutup:
Rajah 2: Empat gelombang gelombang apabila sambungan tcp diputuskan sambungan
Pelanggan menerima perkhidmatan Selepas isyarat tindak balas pelanggan ACK M 1, pelanggan tahu: Pelayan mengetahui bahawa pelanggan saya tidak lagi akan menghantar paket data ke pelayan anda, dan anda boleh berhenti memantau saya.
Tetapi pada masa ini, hanya aliran sehala dari klien ke pelayan telah berhenti, dan aliran ke arah lain:
Penghantaran data dari pelayan ke klien masih boleh diteruskan seperti biasa sehingga The pelayan menghantar isyarat gelombang FIN N kepada pelanggan, dan pelanggan bertindak balas dengan isyarat ACK N 1 kepada pelayan Hanya selepas itu pelayan tahu: Pelanggan tahu bahawa pelayan saya tidak lagi akan menghantar paket data kepada pelanggan anda berhenti merawat saya.
Pada ketika ini, aliran sehala klien->pelayan dan aliran sehala pelayan->klien telah berhenti, dan sambungan boleh ditutup.
2: soket
Kami tahu bahawa jika dua proses perlu berkomunikasi, premis yang paling asas ialah dapat mengenal pasti secara unik proses dalam komunikasi proses tempatan, kita boleh PID digunakan untuk mengenal pasti proses secara unik, tetapi PID hanya unik secara tempatan Kebarangkalian konflik PID antara dua proses dalam rangkaian adalah sangat tinggi. Kita perlu mencari cara lain lapisan IP boleh mengenal pasti hos secara unik, dan protokol lapisan TCP dan nombor port boleh mengenal pasti secara unik proses pada hos, jadi kita boleh menggunakan alamat IP + protokol + nombor port untuk mengenal pasti proses pada rangkaian secara unik.
Setelah dapat mengenal pasti proses pada rangkaian secara unik, mereka boleh berkomunikasi menggunakan soket Apakah itu soket?
Kami sering menterjemah soket sebagai soket ialah lapisan abstrak antara lapisan aplikasi dan lapisan pengangkutan Ia mengabstrakkan operasi kompleks lapisan TCP/IP kepada beberapa antara muka mudah untuk lapisan aplikasi proses untuk berkomunikasi dalam rangkaian.
Rajah 5: Gambar rajah skema modul sistem komunikasi soket
Proses pelayan tcp dan klien tcp menggunakan komunikasi soket adalah seperti berikut.
Seperti yang anda lihat dari gambar, sambungan soket boleh mengekalkan sambungan yang panjang.
Rajah 6: Gambar rajah proses komunikasi pelanggan/pelayan soket asas
Perhatikan bahawa sambungan soket boleh ditutup secara aktif oleh klien atau pelayan.
Untuk lebih banyak pengetahuan berkaitan, sila lawati ruangan Soalan Lazim!
Atas ialah kandungan terperinci Apakah perbezaan antara komunikasi soket dan komunikasi tcp?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!