Terdapat dua jenis trafik Internet Protocol (IP). Mereka adalah TCP atau Protokol Kawalan Transmisi dan UDP atau Protokol Datagram Pengguna. TCP berorientasikan sambungan - sebaik sahaja sambungan ditubuhkan, data boleh dihantar dua hala. UDP adalah protokol Internet tanpa sambungan yang lebih mudah. Mesej berganda dihantar sebagai paket dalam ketulan menggunakan UDP.
TCP | UDP | |
---|---|---|
Acronym for | Protokol Kawalan Transmisi | Protokol Datagram Pengguna atau Universal Datagram Protocol |
Sambungan | Protokol Kawalan Penghantaran adalah protokol berorientasikan sambungan. | Protokol Datagram Pengguna adalah protokol tanpa sambungan. |
Fungsi | Sebagai mesej membuat jalan di internet dari satu komputer ke komputer lain. Ini berasaskan sambungan. | UDP juga merupakan protokol yang digunakan dalam pengangkutan atau pemindahan mesej. Ini bukan berasaskan sambungan yang bermakna satu program boleh menghantar beban paket kepada yang lain dan itu akan menjadi akhir hubungan. |
Penggunaan | TCP sesuai untuk aplikasi yang memerlukan kebolehpercayaan yang tinggi, dan masa penghantaran agak kurang kritikal. | UDP sesuai untuk aplikasi yang memerlukan penghantaran cepat, cekap, seperti permainan. Sifat stateless UDP juga berguna untuk pelayan yang menjawab pertanyaan kecil dari sejumlah besar pelanggan. |
Penggunaan oleh protokol lain | HTTP, HTTP, FTP, SMTP, Telnet | DNS, DHCP, TFTP, SNMP, RIP, VOIP. |
Memesan paket data | TCP menyusun semula paket data mengikut urutan yang ditetapkan. | UDP tidak ada pesanan yang wujud kerana semua paket bebas dari satu sama lain. Jika pesanan diperlukan, ia perlu diuruskan oleh lapisan aplikasi. |
Kelajuan pemindahan | Kelajuan TCP lebih lambat daripada UDP. | UDP lebih cepat kerana pemulihan ralat tidak dicuba. Ini adalah protokol "usaha terbaik". |
Kebolehpercayaan | Terdapat jaminan mutlak bahawa data yang dipindahkan tetap utuh dan tiba dalam susunan yang sama di mana ia dihantar. | Tidak ada jaminan bahawa mesej atau paket yang dihantar akan dicapai sama sekali. |
Saiz Tandukan | Saiz header TCP adalah 20 bait | Saiz Header UDP adalah 8 bait. |
Bidang Tajuk Biasa | Pelabuhan asal, Pelabuhan destinasi, Semak Jumlah | Pelabuhan asal, Pelabuhan destinasi, Semak Jumlah |
Penyiaran data | Data dibaca sebagai aliran byte, tidak ada petunjuk yang dibezakan dihantar untuk mengimbas sempadan mesej (segmen). | Paket dihantar secara individu dan diperiksa untuk integriti hanya jika mereka tiba. Packet mempunyai sempadan pasti yang dihormati setelah diterima, yang bermaksud operasi membaca di soket penerima akan menghasilkan keseluruhan mesej seperti yang pada asalnya dihantar. |
Berat badan | TCP adalah berat badan. TCP memerlukan tiga paket untuk menyediakan sambungan soket, sebelum mana-mana data pengguna boleh dihantar. TCP mengendalikan kawalan kebolehpercayaan dan kesesakan. | UDP adalah ringan. Tidak ada pesanan pesanan, tiada sambungan penjejakan, dan lain-lain. Ini adalah lapisan pengangkutan kecil yang direka di atas IP. |
Kawalan Aliran Data | TCP tidak mengendalikan aliran. TCP memerlukan tiga paket untuk menyediakan sambungan soket, sebelum mana-mana data pengguna boleh dihantar. TCP mengendalikan kawalan kebolehpercayaan dan kesesakan. | UDP tidak mempunyai pilihan untuk kawalan aliran |
Pemeriksaan Ralat | TCP melakukan pemeriksaan ralat dan pemulihan ralat. Pelbagai kesalahan dihantar semula dari sumber ke destinasi. | UDP melakukan pemeriksaan ralat tetapi hanya membuang paket yang salah. Pemulihan ralat tidak dicuba. |
Medan | 1. Nombor urutan, 2. Nombor AcK, 3. Pengawal data, 4. Reserved, 5. Kawalan bit, 6. Tetingkap, 7. Penunjuk segera 8. Pilihan, 9. Padding, 10. Periksa Jumlah, 11. Pelabuhan sumber, 12. Pelabuhan destinasi | 1. Panjang, 2. Port sumber, 3. Pelabuhan destinasi, 4. Semak Jumlah |
Pengiktirafan | Segmen pengiktirafan | Tiada Pengakuan |
Handshake | SYN, SYN-ACK, ACK | Tiada jabat tangan (protokol tanpa sambungan) |
TCP memastikan penyampaian isyarat bait dari pengguna ke pelayan atau sebaliknya. UDP tidak didedikasikan untuk menamatkan sambungan dan komunikasi tidak memeriksa kesediaan penerima.
TCP lebih dipercayai kerana ia menguruskan pengakuan dan pengirim semula mesej sekiranya berlaku kehilangan bahagian. Oleh itu, tidak ada data yang hilang. UDP tidak memastikan bahawa komunikasi telah mencapai penerima sejak konsep pengiktirafan, masa dan penghantaran semula tidak hadir.
TCP penghantaran dihantar dalam urutan dan mereka diterima dalam urutan yang sama. Sekiranya segmen data tiba dalam susunan yang salah, TCP menyusun semula dan menyampaikan permohonan. Dalam kes UDP, menghantar urutan mesej tidak dapat dikekalkan apabila ia mencapai permohonan penerimaan. Tidak semestinya cara untuk meramalkan pesanan di mana mesej akan diterima.
TCP adalah sambungan berat berat yang memerlukan tiga paket untuk sambungan soket dan mengendalikan kawalan dan kebolehpercayaan kesesakan. UDP adalah lapisan pengangkutan ringan yang direka di atas IP. Tiada sambungan pengesanan atau pesanan pesanan.
TCP membaca data sebagai strim byte dan mesej dihantar ke sempadan segmen. UDP mesej adalah paket yang dihantar secara individu dan pada saat kedatangan diperiksa untuk integriti mereka. Paket mempunyai sempadan yang jelas manakala aliran data tidak ada.
UDP berfungsi berdasarkan "usaha terbaik". Protokol ini menyokong pengesanan ralat melalui checksum tetapi apabila ralat dikesan, paket dibuang. Pemindahan semula paket untuk pemulihan dari ralat itu tidak dicuba. Ini kerana UDP biasanya untuk aplikasi sensitif masa seperti permainan atau penghantaran suara. Pemulihan dari kesilapan akan menjadi sia-sia kerana pada masa penghantaran paket yang dihantar semula, ia tidak akan digunakan.
TCP menggunakan kedua-dua pengesanan ralat dan pemulihan ralat. Ralat dikesan melalui checksum dan jika satu paket adalah salah, ia tidak diakui oleh penerima, yang mencetuskan penghantaran semula oleh pengirim. Mekanisme operasi ini dipanggil Pengiktirafan Positif dengan Retransmission (PAR).
Sambungan TCP ditubuhkan melalui jabat tangan tiga cara, yang merupakan proses memulakan dan mengakui sambungan. Sebaik sahaja sambungan ditubuhkan pemindahan data boleh bermula. Selepas penghantaran, sambungan ditamatkan dengan menutup semua rangkaian maya yang telah ditetapkan.
UDP menggunakan model penghantaran ringkas tanpa dialog yang mengejutkan tangan untuk menjamin kebolehpercayaan, pesanan, atau integriti data. Oleh itu, UDP menyediakan perkhidmatan yang tidak boleh dipercayai dan datagram mungkin tiba keluar dari perintah, muncul diduplikasi, atau hilang tanpa notis. UDP menganggap bahawa pemeriksaan dan pembetulan ralat sama ada tidak diperlukan atau dilaksanakan dalam aplikasi, mengelakkan overhead pemprosesan tersebut di peringkat antara muka rangkaian. Tidak seperti TCP, UDP serasi dengan siaran paket (menghantar kepada semua di rangkaian tempatan) dan berbilang (hantar kepada semua pelanggan).
Pelayaran web, e-mel dan pemindahan fail adalah aplikasi biasa yang menggunakan TCP. TCP digunakan untuk mengawal saiz segmen, kadar pertukaran data, kawalan aliran dan kesesakan rangkaian. TCP lebih disukai di mana kemudahan pembetulan ralat diperlukan pada tahap antara muka rangkaian. UDP sebahagian besarnya digunakan oleh aplikasi sensitif masa serta oleh pelayan yang menjawab pertanyaan kecil dari sejumlah besar pelanggan. UDP serasi dengan siaran paket - menghantar kepada semua pada rangkaian dan penghantaran multicasting - kepada semua pelanggan. UDP biasanya digunakan dalam Sistem Nama Domain, IP Suara, Protokol Pindahan Fail Trivial dan permainan dalam talian.
Untuk permainan secara besar-besaran berbilang talian (MMO), pemaju sering membuat pilihan seni bina antara menggunakan sambungan UDP atau TCP yang berterusan. Kelebihan TCP adalah sambungan berterusan, kebolehpercayaan, dan mampu menggunakan paket saiz sewenang-wenangnya. Masalah terbesar dengan TCP dalam senario ini ialah algoritma kawalan kesesakan, yang merawat kehilangan paket sebagai tanda keterbatasan bandwidth dan secara automatik mendekatkan penghantaran paket. Pada rangkaian 3G atau Wi-Fi, ini boleh menyebabkan kepantasan yang ketara.
Pemaju berpengalaman Christoffer Lernö menimbang pro dan kontra dan mengesyorkan kriteria berikut untuk memilih sama ada untuk menggunakan TCP atau UDP untuk permainan anda: