tcp dan udp ialah protokol "lapisan pengangkutan". UDP dan TCP ialah protokol penting dalam lapisan pengangkutan komputer TCP berorientasikan sambungan, dan UDP berorientasikan tanpa sambungan. TCP (Transmission Control Protocol) ialah protokol komunikasi lapisan pengangkutan berasaskan aliran bait yang berorientasikan sambungan, boleh dipercayai, yang ditakrifkan oleh RFC 793 IETF. UDP (User Datagram Protocol) menyediakan cara untuk aplikasi menghantar paket IP terkapsul tanpa membuat sambungan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, komputer Dell G3.
Seni bina rangkaian komputer merujuk kepada model struktur hierarki rangkaian komputer Ia merupakan koleksi protokol pada setiap lapisan dan port antara lapisan. Komunikasi dalam rangkaian komputer mesti bergantung pada protokol komunikasi rangkaian Model rujukan Open System Interconnection (OSI) yang digunakan secara meluas yang dicadangkan oleh International Organization for Standardization (ISO) pada tahun 1997 lazimnya dipanggil model rujukan ISO/OSI.
Model rujukan tujuh lapisan OSI:
OSI secara logiknya membahagikan sistem rangkaian kepada tujuh subsistem tersusun yang secara relatifnya bebas dalam fungsi Dengan cara ini, seni bina OSI terdiri daripada 7 tahap fungsi yang agak bebas, seperti yang ditunjukkan dalam rajah di bawah. Dari rendah ke tinggi, ia adalah lapisan fizikal, lapisan pautan data, lapisan rangkaian, lapisan pengangkutan, lapisan sesi, lapisan pembentangan dan lapisan aplikasi.
Model Rujukan TCP/IP
TCP/IP mempunyai 4 lapisan, iaitu lapisan antara muka rangkaian, lapisan Internet, Lapisan pengangkutan dan lapisan aplikasi. Perbandingan antara hierarki TCP/IP dan hierarki OSI ditunjukkan dalam rajah di bawah.
tcp dan udp tergolong dalam protokol "lapisan pengangkutan" seni bina rangkaian komputer.
Lapisan pengangkutan Internet mempunyai dua protokol utama yang saling melengkapi. Connectionless ialah UDP, yang tidak banyak membantu kecuali memberikan aplikasi keupayaan untuk menghantar paket dan membenarkan mereka untuk mereka bentuk protokol mereka sendiri pada tahap yang diperlukan. Yang berorientasikan sambungan ialah TCP, yang melakukan hampir semua perkara.
Lapisan pengangkutan ialah salah satu lapisan utama dalam keseluruhan sistem lapisan rangkaian Lapisan rangkaian hanya menghantar paket ke hos destinasi, tetapi komunikasi sebenar bukanlah hos tetapi proses dalam hos . Lapisan pengangkutan menyediakan perkhidmatan komunikasi kepada lapisan aplikasi di atasnya Ia tergolong dalam lapisan berorientasikan komunikasi tertinggi Apabila dua hos di bahagian tepi rangkaian menggunakan fungsi bahagian teras rangkaian untuk komunikasi hujung ke hujung. , hanya timbunan protokol hos Hanya lapisan pengangkutan yang wujud Lapisan pengangkutan menyediakan komunikasi logik antara proses Lapisan pengangkutan melindungi butiran teras lapisan rangkaian asas daripada pengguna peringkat tinggi, menjadikan aplikasi kelihatan seperti ada penghujung. -logik ke hujung antara dua entiti lapisan pengangkutan
Walaupun paket IP boleh dihantar ke hos destinasi, paket ini masih kekal dalam lapisan rangkaian hos dan tidak dihantar. kepada proses permohonan dalam hos Apabila dua komputer berkomunikasi, Semasa proses itu, proses pada hos ini sebenarnya menukar data dengan proses pada hos lain. Dari perspektif lapisan pengangkutan, titik akhir komunikasi yang sebenar bukanlah hos tetapi proses dalam hos Dengan kata lain, komunikasi hujung ke hujung ialah komunikasi antara proses aplikasi.
Dua fungsi penting lapisan pengangkutan:
TCP dan UDP
TCP: Protokol mesej pengguna, berorientasikan sambungan Sambungan mesti diwujudkan sebelum data dihantar Sambungan dilepaskan selepas penghantaran data selesai.
1. Ciri TCP
TCP berorientasikan sambungan dan menyediakan penghantaran yang boleh dipercayai; >Kawalan kesesakan;TCP tidak menyambungkan dua nombor hos, mahupun nombor port, tetapi soket:
soket = alamat IP: Nombor portNombor pengesahan: nombor jujukan segmen seterusnya yang dijangka diterima. Sebagai contoh, B menerima dengan betul segmen mesej yang dihantar oleh A. Nombor jujukan ialah 501 dan panjang data ialah 200 bait Oleh itu, B menjangkakan nombor jujukan segmen mesej seterusnya ialah 701. Dalam segmen mesej pengesahan yang dihantar oleh B. kepada A, Nombor pengesahan ialah 701.
Data offset: merujuk kepada offset bahagian data dari permulaan segmen mesej, yang sebenarnya merujuk kepada panjang pengepala.
Sahkan ACK: Apabila ACK=1, medan nombor pengesahan adalah sah, jika tidak, ia tidak sah. TCP menetapkan bahawa selepas sambungan diwujudkan, semua segmen mesej yang dihantar mesti mempunyai ACK ditetapkan kepada 1.
Synchronization SYN: digunakan untuk menyegerakkan nombor jujukan apabila sambungan diwujudkan. Apabila SYN=1 dan ACK=0, ia menunjukkan bahawa ini ialah segmen permintaan sambungan. Jika pihak lain bersetuju untuk mewujudkan sambungan, SYN=1 dan ACK=1 dalam mesej respons. FIN Penamatan: digunakan untuk melepaskan sambungan Apabila FIN=1, ini bermakna data pengirim segmen ini telah dihantar dan sambungan itu perlu dikeluarkan.
Tetingkap: Nilai tetingkap berfungsi sebagai asas untuk penerima membenarkan pengirim menetapkan tetingkap penghantarannya. Sebab untuk sekatan ini ialah ruang cache data penerima adalah terhad.
Selepas B menerima pengesahan A, sambungan diwujudkan.
5. TCP empat gelombang
Sebab melambai empat kali
Selepas pelanggan menghantar mesej keluaran sambungan FIN, pelayan menerima mesej ini dan memasuki keadaan TUNGGU TUTUP. Keadaan ini adalah untuk pelayan menghantar data yang belum dipindahkan Selepas pemindahan selesai, pelayan akan menghantar mesej keluaran sambungan FIN.
TIME_WAIT
Pelanggan memasuki keadaan ini selepas menerima mesej FIN daripada pelayan Pada masa ini, ia tidak terus memasuki keadaan TUTUP masa 2MSL ditetapkan oleh pemasa. Terdapat dua sebab untuk melakukan ini:
TCP menggunakan penghantaran semula tamat masa untuk mencapai penghantaran yang boleh dipercayai Jika segmen yang telah dihantar tidak tersedia dalam tempoh tamat masa, Selepas menerima pengesahan, hantar semula segmen;
1 tetingkap gelongsor TCP
Tetingkap adalah sebahagian daripada cache dan digunakan untuk menyimpan strim bait buat sementara waktu. Pengirim dan penerima masing-masing mempunyai tetingkap Penerima memberitahu pengirim saiz tetingkapnya melalui medan tetingkap dalam segmen TCP Pengirim menetapkan saiz tetingkapnya sendiri berdasarkan nilai ini dan maklumat lain.
Semua bait dalam tetingkap penghantaran dibenarkan untuk dihantar, dan semua bait dalam tetingkap penerima dibenarkan untuk diterima. Jika bait di sebelah kiri tetingkap penghantaran telah dihantar dan disahkan, kemudian luncurkan tetingkap penghantaran pada jarak tertentu ke kanan sehingga bait pertama di sebelah kiri tidak dihantar dan disahkan gelongsor tetingkap penerima adalah serupa. Apabila bait di sebelah kiri tetingkap telah dihantar dan disahkan serta dihantar kepada hos, luncurkan tetingkap penerima ke kanan.
Tetingkap penerima hanya akan mengesahkan bait terakhir yang tiba mengikut tertib dalam tetingkap Contohnya, bait yang diterima oleh tetingkap penerima ialah {31, 34, 35}, antaranya {31} tiba mengikut tertib. {34, 35} tidak, jadi hanya bait 31 yang diakui. Selepas pengirim mendapat pengakuan bait, ia mengetahui bahawa semua bait sebelum bait ini telah diterima.
2. Kawalan aliran TCP
Kawalan aliran pada TCP dilaksanakan melalui tetingkap gelongsor Secara umumnya, pengirim dijangka menghantar Lebih cepat data, lebih baik Walau bagaimanapun, jika data yang dihantar oleh pengirim adalah terlalu cepat, penerima tidak akan mempunyai masa untuk menerimanya saiz tetingkap gelongsor. Pengesahan yang dihantar oleh penerima Medan tetingkap dalam mesej boleh digunakan untuk mengawal saiz tetingkap penghantar, dengan itu menjejaskan kadar penghantaran pengirim. Tetapkan medan tetingkap kepada 0 dan pengirim tidak boleh menghantar data.
3. Kawalan Kesesakan TCP
Jika rangkaian sesak, paket akan hilang dan pengirim akan terus menghantar semula, mengakibatkan kesesakan rangkaian yang lebih tinggi. Oleh itu, apabila berlaku kesesakan, kadar penghantar harus dikawal. Ini sangat serupa dengan kawalan aliran, tetapi titik permulaannya berbeza. Kawalan aliran adalah untuk membolehkan penerima menerima dalam masa, manakala kawalan kesesakan adalah untuk mengurangkan tahap kesesakan keseluruhan rangkaian.
Keadaan kawalan kesesakan:
Kawalan kesesakan adalah berbeza daripada kawalan aliran: Kawalan kesesakan menghalang terlalu banyak data daripada disuntik ke dalam rangkaian, supaya penghala atau pautan dalam rangkaian tidak akan dibebankan atau Kawalan sesak ialah proses global, direka untuk merangkumi semua hos, semua penghala, dan semua elemen yang berkaitan dengan mengurangkan prestasi rangkaian Walau bagaimanapun, kawalan aliran selalunya mengawal trafik titik ke titik dan merupakan masalah hujung ke hujung. Beri perhatian kepada perbezaan;
Algoritma utama untuk kawalan kesesakan dalam TCP: mula perlahan, mengelakkan kesesakan, penghantaran semula pantas, pemulihan cepat
Pengirim perlu mengekalkan algoritma yang dipanggil kesesakan Pembolehubah keadaan tetingkap (cwnd), perhatikan perbezaan antara tetingkap kesesakan dan tetingkap penghantar: tetingkap kesesakan hanyalah pembolehubah keadaan, dan tetingkap pengirim yang sebenarnya menentukan berapa banyak data yang boleh dihantar oleh pengirim.
Untuk kemudahan perbincangan, buat andaian berikut:
Walaupun Tetingkap TCP adalah berdasarkan Bytes, tetapi di sini unit saiz tetingkap ditetapkan kepada segmen mesej.
1 Permulaan yang perlahan dan mengelakkan kesesakan
Pelaksanaan awal penghantaran adalah permulaan yang perlahan, biarkan cwnd = 1, the pengirim hanya boleh Hantar 1 segmen; apabila pengakuan diterima, cwnd digandakan, jadi bilangan segmen yang boleh dihantar oleh pengirim ialah: 2, 4, 8...
Ambil perhatian bahawa permulaan perlahan akan berlaku dalam setiap pusingan Menggandakan ini akan menyebabkan cwnd berkembang sangat cepat, menyebabkan kelajuan penghantaran penghantar berkembang terlalu cepat dan kemungkinan kesesakan rangkaian menjadi lebih tinggi.
Tetapkan ambang permulaan yang perlahan ssthresh Apabila cwnd >= ssthresh, pengelakan kesesakan dimasukkan dan hanya cwnd ditambah 1 dalam setiap pusingan.
Jika tamat masa berlaku, tetapkan ssthresh = cwnd / 2, dan kemudian laksanakan mula perlahan sekali lagi.
2. Penghantaran semula yang cepat dan pemulihan yang cepat
Di bahagian penerima, adalah dikehendaki setiap kali segmen mesej diterima, segmen mesej pesanan yang terakhir diterima hendaklah diproses mengesahkan. Sebagai contoh, M1 dan M2 telah diterima, dan apabila M4 diterima, pengakuan untuk M2 harus dihantar.
Di sisi penghantar, jika tiga pengesahan pendua diterima, boleh diketahui bahawa segmen seterusnya hilang Pada masa ini, penghantaran semula pantas dilakukan dan segmen seterusnya dihantar semula dengan serta-merta. Contohnya, jika tiga M2 diterima, M3 hilang dan M3 dihantar semula serta-merta.
Dalam kes ini, ia hanyalah kehilangan segmen individu, bukan kesesakan rangkaian. Oleh itu, pemulihan pantas dilakukan, membiarkan ssthresh = cwnd / 2, cwnd =ssthresh Perhatikan bahawa pengelakan kesesakan dimasukkan secara langsung pada masa ini.
Kelajuan permulaan perlahan dan pemulihan cepat merujuk kepada nilai tetapan cwnd, bukan kadar pertumbuhan cwnd. Cwnd mula perlahan ditetapkan kepada 1, dan cwnd pemulihan cepat ditetapkan kepada ssthresh.
Rujukan: Rangkaian Komputer Edisi Kelima disunting oleh Xie Xiren
(Perkongsian video pembelajaran: Bermula dengan bahagian hadapan web)
Atas ialah kandungan terperinci Apakah protokol seni bina rangkaian komputer yang dimiliki oleh tcp dan udp?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!