TCP vs. UDP

TCP vs. UDP

Terdapat dua jenis trafik Protokol Internet (IP). Mereka TCP atau Protokol Kawalan Transmisi dan UDP atau Protokol Datagram Pengguna. TCP adalah berorientasikan sambungan - Setelah sambungan ditubuhkan, data boleh dihantar bidirectional. UDP adalah protokol Internet yang lebih mudah dan tidak bersambung. Pelbagai mesej dihantar sebagai paket dalam ketulan menggunakan UDP.

Carta Perbandingan

Perbezaan - Persamaan - Carta perbandingan TCP berbanding UDP
TCPUDP
Akronim untuk Protokol Kawalan Transmisi Protokol Datagram Pengguna atau Protokol Datagram Universal
Sambungan Protokol Kawalan Transmisi adalah protokol berorientasikan sambungan. Protokol Datagram Pengguna adalah protokol tanpa sambungan.
Fungsi Sebagai mesej melintasi internet dari satu komputer ke komputer yang lain. Ini adalah sambungan. UDP juga merupakan protokol yang digunakan dalam pengangkutan mesej atau pemindahan. Ini bukan berasaskan sambungan yang bermaksud bahawa satu program boleh menghantar beban paket ke 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 tanpa kerakyatan UDP juga berguna untuk pelayan yang menjawab pertanyaan kecil dari sejumlah besar pelanggan.
Digunakan oleh protokol lain Http, https, ftp, smtp, telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Memesan paket data TCP menyusun semula paket data mengikut urutan yang ditentukan. UDP tidak mempunyai perintah yang melekat kerana semua paket bebas antara satu sama lain. Sekiranya pesanan diperlukan, ia perlu diuruskan oleh lapisan aplikasi.
Kelajuan pemindahan Kelajuan untuk TCP lebih perlahan 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 urutan yang sama di mana ia dihantar. Tidak ada jaminan bahawa mesej atau paket yang dihantar akan dicapai sama sekali.
Saiz header Saiz header TCP ialah 20 bait Saiz header UDP ialah 8 bait.
Medan header biasa Port sumber, pelabuhan destinasi, periksa jumlah Port sumber, pelabuhan destinasi, periksa jumlah
Streaming data Data dibaca sebagai aliran byte, tiada tanda -tanda yang membezakan dihantar ke sempadan mesej (segmen). Paket dihantar secara individu dan diperiksa untuk integriti hanya jika mereka tiba. Paket mempunyai sempadan pasti yang dihormati setelah penerimaan, yang bermaksud operasi bacaan di soket penerima akan menghasilkan keseluruhan mesej kerana ia pada asalnya dihantar.
Berat TCP adalah berat berat. TCP memerlukan tiga paket untuk menyediakan sambungan soket, sebelum data pengguna boleh dihantar. TCP mengendalikan kebolehpercayaan dan kawalan kesesakan. UDP ringan. Tidak ada pesanan mesej, tiada sambungan penjejakan, dll. Ia adalah lapisan pengangkutan kecil yang direka di atas IP.
Kawalan aliran data TCP mengawal kawalan. TCP memerlukan tiga paket untuk menyediakan sambungan soket, sebelum data pengguna boleh dihantar. TCP mengendalikan kebolehpercayaan dan kawalan kesesakan. UDP tidak mempunyai pilihan untuk mengawal aliran
Pemeriksaan ralat TCP melakukan pemeriksaan ralat dan pemulihan ralat. Pakej yang salah dipindahkan 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. Data Offset, 4. Reserved, 5. Bit kawalan, 6. Tetingkap, 7. Pointer Urgent 8. Pilihan, 9. Padding, 10. Semak Jumlah, 11. Port sumber, 12. Pelabuhan destinasi 1. Panjang, 2. Port sumber, 3. Pelabuhan destinasi, 4. Periksa jumlah
Pengakuan Segmen pengakuan Tiada pengakuan
Jabat tangan Syn, Syn-Ack, Ack Tiada jabat tangan (protokol tanpa sambungan)

Perbezaan ciri pemindahan data

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

Kebolehpercayaan

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

Pesanan

TCP penghantaran dihantar dalam urutan dan mereka diterima dalam urutan yang sama. Sekiranya segmen data yang tiba dalam urutan yang salah, TCP reorders dan menyampaikan aplikasi. Dalam kes UDP, urutan mesej yang dihantar tidak boleh dikekalkan apabila ia mencapai aplikasi penerimaan. Sama sekali tidak ada 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 kesesakan dan kebolehpercayaan. UDP adalah lapisan pengangkutan ringan yang direka di atas IP. Tidak ada sambungan penjejakan atau pesanan mesej.

Kaedah pemindahan

TCP Membaca data sebagai aliran byte dan mesej dihantar ke sempadan segmen. UDP Mesej adalah paket yang dihantar secara individu dan pada ketibaan diperiksa untuk integriti mereka. Paket telah menentukan sempadan sementara aliran data tidak mempunyai.

Pengesanan ralat

UDP berfungsi secara "terbaik". Protokol menyokong pengesanan ralat melalui checksum tetapi apabila ralat dikesan, paket dibuang. Penghantaran 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 paket yang dihantar semula diterima, ia tidak akan digunakan.

TCP menggunakan kedua -dua pengesanan ralat dan pemulihan ralat. Kesalahan dikesan melalui checksum dan jika paket salah, ia tidak diakui oleh penerima, yang mencetuskan penghantaran semula oleh pengirim. Mekanisme operasi ini dipanggil pengakuan positif dengan penghantaran semula (par).

Bagaimana TCP dan UDP berfungsi

Sambungan TCP ditubuhkan melalui jabat tangan tiga cara, yang merupakan proses memulakan dan mengakui sambungan. Setelah sambungan ditubuhkan pemindahan data dapat dimulakan. Selepas penghantaran, sambungan ditamatkan dengan menutup semua litar maya yang ditetapkan.

UDP menggunakan model penghantaran mudah tanpa dialog tangan yang tersirat untuk menjamin kebolehpercayaan, pesanan, atau integriti data. Oleh itu, UDP menyediakan perkhidmatan yang tidak boleh dipercayai dan datagrams mungkin tiba di luar perintah, muncul diduplikasi, atau hilang tanpa notis. UDP mengandaikan bahawa pemeriksaan dan pembetulan ralat sama ada tidak perlu atau dilakukan dalam permohonan, mengelakkan overhead pemprosesan sedemikian di peringkat antara muka rangkaian. Tidak seperti TCP, UDP serasi dengan siaran paket (menghantar ke semua di rangkaian tempatan) dan multicasting (hantar 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 dan juga oleh pelayan yang menjawab pertanyaan kecil dari sejumlah besar pelanggan. UDP serasi dengan siaran paket - menghantar ke semua rangkaian dan multicasting - menghantar kepada semua pelanggan. UDP biasanya digunakan dalam sistem nama domain, suara melalui IP, protokol pemindahan fail remeh dan permainan dalam talian.

TCP vs. UDP untuk pelayan permainan

Untuk permainan Multiplayer Online (MMO) secara besar -besaran, pemaju sering perlu membuat pilihan seni bina antara menggunakan sambungan berterusan UDP atau TCP. Kelebihan TCP adalah sambungan berterusan, kebolehpercayaan, dan dapat menggunakan paket saiz sewenang -wenang. Masalah terbesar dengan TCP dalam senario ini adalah algoritma kawalan kesesakannya, yang merawat kehilangan paket sebagai tanda batasan jalur lebar dan secara automatik menyentuh penghantaran paket. Pada rangkaian 3G atau Wi-Fi, ini boleh menyebabkan latensi yang ketara.

Pemaju berpengalaman Christoffer Lernö menimbang kebaikan dan keburukan dan mengesyorkan kriteria berikut untuk memilih sama ada untuk menggunakan TCP atau UDP untuk permainan anda:

  • Gunakan HTTP melalui TCP untuk membuat pertanyaan tanpa stateles.
  • Gunakan soket TCP biasa yang berterusan jika kedua -dua pelanggan dan pelayan secara bebas menghantar paket tetapi kelewatan sekali -sekala adalah OK (e.g. Poker dalam talian, banyak mmos).
  • Gunakan UDP jika kedua -dua pelanggan dan pelayan boleh menghantar paket secara bebas dan lag sekali -sekala tidak OK (e.g. Kebanyakan permainan tindakan multiplayer, beberapa MMO).