TCP vs UDP

Terdapat dua jenis trafik Internet Protocol (IP). Mereka adalah TCP atau Protokol Kawalan Transmisi dan UDP atau Protokol Pengguna Datagram . 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.

Carta perbandingan

TCP berbanding carta perbandingan UDP
TCP UDP
Acronym forProtokol Kawalan TransmisiProtokol Datagram Pengguna atau Universal Datagram Protocol
SambunganProtokol Kawalan Penghantaran adalah protokol berorientasikan sambungan.Protokol Datagram Pengguna adalah protokol tanpa sambungan.
FungsiSebagai 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.
PenggunaanTCP 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 lainHTTP, HTTP, FTP, SMTP, TelnetDNS, DHCP, TFTP, SNMP, RIP, VOIP.
Memesan paket dataTCP 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 pemindahanKelajuan TCP lebih lambat daripada UDP.UDP lebih cepat kerana pemulihan ralat tidak dicuba. Ini adalah protokol "usaha terbaik".
KebolehpercayaanTerdapat 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 TandukanSaiz header TCP adalah 20 baitSaiz Header UDP adalah 8 bait.
Bidang Tajuk BiasaPelabuhan asal, Pelabuhan destinasi, Semak JumlahPelabuhan asal, Pelabuhan destinasi, Semak Jumlah
Penyiaran dataData 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. Peket mempunyai sempadan yang pasti yang dihormati setelah diterima, yang bermaksud operasi membaca di soket penerima akan menghasilkan keseluruhan mesej seperti yang asalnya dihantar.
Berat badanTCP 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 DataTCP 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 RalatTCP 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.
Medan1. Nombor urutan, 2. Nombor AcK, 3. Pengawal data, 4. Reserved, 5. Kawalan bit, 6. Tetingkap, 7. Penunjuk segera 8. Pilihan, 9. Padding, 10. Semak Jumlah, 11. Pelabuhan sumber, 12. Pelabuhan destinasi1. Panjang, 2. Port sumber, 3. Pelabuhan destinasi, 4. Semak Jumlah
PengiktirafanSegmen pengiktirafanTiada Pengakuan
HandshakeSYN, SYN-ACK, ACKTiada jabat tangan (protokol tanpa sambungan)

Perbezaan dalam Ciri Pemindahan Data

TCP memastikan penyampaian aliran bait yang boleh dipercayai dan diperintahkan dari pengguna ke pelayan atau sebaliknya. UDP tidak berdedikasi untuk mengakhiri sambungan dan komunikasi tidak memeriksa kesediaan penerima.

Kebolehpercayaan

TCP lebih dipercayai kerana ia menguruskan pengiktirafan mesej dan penghantaran semula sekiranya terdapat bahagian-bahagian yang hilang. Oleh itu, tidak ada data yang hilang. UDP tidak memastikan bahawa komunikasi telah mencapai penerima sejak konsep pengiktirafan, masa dan penghantaran semula tidak hadir.

Memesan

Penghantaran TCP 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, pesanan urutan mesej tidak dapat dikekalkan apabila ia mencapai penerimaan permohonan. Tidak semestinya cara untuk meramalkan pesanan di mana mesej akan diterima.

Sambungan

TCP adalah sambungan berat berat yang memerlukan tiga paket untuk sambungan soket dan mengendalikan kawalan dan kebolehpercayaan kesesakan. UDP adalah lapisan pengangkutan yang ringan yang direka di atas sebuah IP. Tiada sambungan pengesanan atau pesanan pesanan.

Kaedah pemindahan

TCP membaca data sebagai aliran byte dan mesej dihantar ke sempadan segmen. Mesej UDP adalah paket yang dihantar secara individu dan semasa ketibaan diperiksa untuk integriti mereka. Paket mempunyai sempadan yang jelas manakala aliran data tidak ada.

Pengesanan Ralat

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).

Bagaimana kerja TCP dan UDP

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 bersesuaian dengan siaran paket (menghantar kepada semua di rangkaian tempatan) dan berbilang (menghantar kepada semua pelanggan).

Aplikasi yang berbeza dari TCP dan UDP

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.

TCP vs UDP untuk Pelayan Permainan

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:

  • Gunakan HTTP melalui TCP untuk membuat pertanyaan berketurunan yang dibuat oleh pelanggan sekali-sekala, apabila OK untuk mengalami kelewatan sekali-sekala.
  • Gunakan soket biasa TCP yang berterusan jika kedua-dua pelanggan dan pelayan menghantar paket secara berasingan tetapi kelewatan sesekali adalah OK (contohnya Poker Online, banyak MMO).
  • Gunakan UDP jika kedua-dua pelanggan dan pelayan secara berasingan menghantar paket dan lag sekali-kali tidak OK (contohnya Kebanyakan permainan aksi berbilang pemain, beberapa MMO).

Artikel Berkaitan