TCP vs. UDP

TCP vs. UDP

Ada dua jenis lalu lintas Internet Protocol (IP). Mereka TCP atau Protokol Kontrol Transmisi Dan UDP atau Protokol Datagram Pengguna. TCP berorientasi koneksi - Setelah koneksi dibuat, data dapat dikirim dua arah. UDP adalah protokol internet yang lebih sederhana dan tanpa koneksi. Beberapa pesan dikirim sebagai paket dalam potongan menggunakan UDP.

Grafik perbandingan

Perbedaan - Persamaan - Bagan Perbandingan TCP versus UDP
TCPUDP
Akronim untuk Protokol Kontrol Transmisi Protokol datagram pengguna atau protokol datagram universal
Koneksi Protokol kontrol transmisi adalah protokol yang berorientasi koneksi. Protokol datagram pengguna adalah protokol tanpa koneksi.
Fungsi Sebagai pesan membuat jalan di internet dari satu komputer ke komputer lainnya. Ini berbasis koneksi. UDP juga merupakan protokol yang digunakan dalam transportasi atau transfer pesan. Ini bukan berbasis koneksi yang berarti bahwa satu program dapat mengirim banyak paket ke yang lain dan itu akan menjadi akhir dari hubungan.
Penggunaan TCP cocok untuk aplikasi yang membutuhkan keandalan tinggi, dan waktu transmisi relatif kurang kritis. UDP cocok untuk aplikasi yang membutuhkan transmisi yang cepat dan efisien, seperti game. Sifat tanpa kewarganegaraan UDP juga berguna untuk server yang menjawab pertanyaan kecil dari sejumlah besar klien.
Gunakan oleh protokol lain Http, https, ftp, smtp, telnet Dns, dhcp, tftp, snmp, rip, voip.
Memesan paket data TCP mengatur ulang paket data dalam urutan yang ditentukan. UDP tidak memiliki urutan yang melekat karena semua paket tidak tergantung satu sama lain. Jika pemesanan diperlukan, itu harus dikelola oleh lapisan aplikasi.
Kecepatan transfer Kecepatan untuk TCP lebih lambat dari UDP. UDP lebih cepat karena pemulihan kesalahan tidak dicoba. Ini adalah protokol "upaya terbaik".
Keandalan Ada jaminan mutlak bahwa data yang ditransfer tetap utuh dan tiba dalam urutan yang sama di mana ia dikirim. Tidak ada jaminan bahwa pesan atau paket yang dikirim akan mencapai sama sekali.
Ukuran header Ukuran header TCP adalah 20 byte Ukuran header UDP adalah 8 byte.
Bidang header umum Port sumber, port tujuan, periksa jumlah Port sumber, port tujuan, periksa jumlah
Streaming data Data dibaca sebagai aliran byte, tidak ada indikasi pembeda yang ditransmisikan ke batas pesan (segmen) sinyal. Paket dikirim secara individual dan diperiksa integritas hanya jika mereka tiba. Paket memiliki batasan yang pasti yang dihormati setelah diterimanya, yang berarti operasi baca di soket penerima akan menghasilkan seluruh pesan seperti yang awalnya dikirim.
Berat TCP sangat berat. TCP membutuhkan tiga paket untuk mengatur koneksi soket, sebelum data pengguna dapat dikirim. TCP menangani keandalan dan kontrol kemacetan. UDP ringan. Tidak ada pemesanan pesan, tidak ada koneksi pelacakan, dll. Ini adalah lapisan transportasi kecil yang dirancang di atas IP.
Kontrol Aliran Data TCP memang kontrol aliran. TCP membutuhkan tiga paket untuk mengatur koneksi soket, sebelum data pengguna dapat dikirim. TCP menangani keandalan dan kontrol kemacetan. UDP tidak memiliki opsi untuk kontrol aliran
Pemeriksaan Kesalahan TCP melakukan pemeriksaan kesalahan dan pemulihan kesalahan. Paket yang keliru diajukan kembali dari sumber ke tujuan. UDP melakukan pemeriksaan kesalahan tetapi cukup membuang paket yang salah. Pemulihan kesalahan tidak dicoba.
Bidang 1. Nomor Urutan, 2. ACK NUMBER, 3. Offset Data, 4. Dicadangkan, 5. Bit kontrol, 6. Jendela, 7. Pointer Mendesak 8. Opsi, 9. Padding, 10. Periksa jumlah, 11. Port Sumber, 12. Port tujuan 1. Panjang, 2. Port Sumber, 3. Port tujuan, 4. Periksa jumlah
Pengakuan Segmen pengakuan Tidak ada pengakuan
Jabat tangan Syn, syn-act, ack No Handshake (Protokol Tanpa Koneksi)

Perbedaan dalam fitur transfer data

TCP Memastikan pengiriman aliran byte dari pengguna ke server atau sebaliknya. UDP tidak didedikasikan untuk koneksi ujung ke ujung dan komunikasi tidak memeriksa kesiapan penerima.

Keandalan

TCP lebih dapat diandalkan karena mengelola pengakuan pesan dan transmisi jika terjadi bagian yang hilang. Dengan demikian sama sekali tidak ada data yang hilang. UDP tidak memastikan bahwa komunikasi telah mencapai penerima sejak konsep pengakuan, waktu habis dan transmisi tidak ada.

Memerintah

TCP Transmisi dikirim dalam urutan dan mereka diterima dalam urutan yang sama. Jika ada segmen data yang tiba dalam urutan yang salah, TCP merefleksikan dan memberikan aplikasi. Dalam kasus UDP, Urutan pesan yang dikirim mungkin tidak dipertahankan saat mencapai aplikasi penerima. Sama sekali tidak ada cara untuk memprediksi urutan pesan mana yang akan diterima.

Koneksi

TCP adalah koneksi berat yang membutuhkan tiga paket untuk koneksi soket dan menangani kontrol dan keandalan kemacetan. UDP adalah lapisan transportasi ringan yang dirancang di atas IP. Tidak ada koneksi pelacakan atau pemesanan pesan.

Metode transfer

TCP Membaca data sebagai aliran byte dan pesan ditransmisikan ke batas segmen. UDP Pesan adalah paket yang dikirim secara individual dan pada saat kedatangan diperiksa untuk integritasnya. Paket memiliki batasan yang ditentukan sementara aliran data tidak ada.

Deteksi Kesalahan

UDP bekerja berdasarkan "upaya terbaik". Protokol mendukung deteksi kesalahan melalui checksum tetapi ketika kesalahan terdeteksi, paket dibuang. Permsian ulang paket untuk pemulihan dari kesalahan itu tidak dicoba. Ini karena UDP biasanya untuk aplikasi yang sensitif terhadap waktu seperti game atau transmisi suara. Pemulihan dari kesalahan akan tidak ada gunanya karena pada saat paket yang ditransmisikan ulang diterima, itu tidak akan digunakan.

TCP menggunakan deteksi kesalahan dan pemulihan kesalahan. Kesalahan terdeteksi melalui checksum dan jika suatu paket keliru, tidak diakui oleh penerima, yang memicu pengiriman ulang oleh pengirim. Mekanisme operasi ini disebut pengakuan positif dengan transmisi ulang (par).

Bagaimana cara kerja TCP dan UDP

Koneksi TCP dibuat melalui jabat tangan tiga arah, yang merupakan proses memulai dan mengakui koneksi. Setelah koneksi ditetapkan transfer data dapat dimulai. Setelah transmisi, koneksi diakhiri dengan menutup semua sirkuit virtual yang sudah mapan.

UDP menggunakan model transmisi sederhana tanpa dialog pegangan tangan implisit untuk menjamin keandalan, pemesanan, atau integritas data. Dengan demikian, UDP menyediakan layanan yang tidak dapat diandalkan dan datagram mungkin tiba dari urutan, muncul digandakan, atau hilang tanpa pemberitahuan. UDP mengasumsikan bahwa pemeriksaan dan koreksi kesalahan tidak diperlukan atau dilakukan dalam aplikasi, menghindari overhead pemrosesan tersebut di tingkat antarmuka jaringan. Tidak seperti TCP, UDP kompatibel dengan siaran paket (mengirim ke semua di jaringan lokal) dan multicasting (Kirim ke semua pelanggan).

Aplikasi TCP dan UDP yang berbeda

Penjelajahan Web, Email dan Transfer File adalah aplikasi umum yang memanfaatkan TCP. TCP digunakan untuk mengontrol ukuran segmen, laju pertukaran data, kontrol aliran dan kemacetan jaringan. TCP lebih disukai di mana fasilitas koreksi kesalahan diperlukan di tingkat antarmuka jaringan. UDP sebagian besar digunakan oleh aplikasi sensitif waktu serta oleh server yang menjawab pertanyaan kecil dari sejumlah besar klien. UDP kompatibel dengan siaran paket - mengirim ke semua di jaringan dan multicasting - mengirim ke semua pelanggan. UDP biasanya digunakan dalam sistem nama domain, suara over over, protokol transfer file sepele dan game online.

TCP vs. UDP untuk server game

Untuk game Mulsively Multiplayer Online (MMO), pengembang sering harus membuat pilihan arsitektur antara menggunakan UDP atau TCP Koneksi Persisten TCP. Keuntungan dari TCP adalah koneksi yang persisten, keandalan, dan dapat menggunakan paket ukuran sewenang -wenang. Masalah terbesar dengan TCP dalam skenario ini adalah algoritma kontrol kemacetannya, yang memperlakukan kehilangan paket sebagai tanda batasan bandwidth dan secara otomatis mencekik pengiriman paket. Pada jaringan 3G atau Wi-Fi, ini dapat menyebabkan latensi yang signifikan.

Pengembang berpengalaman Christoffer Lernö menimbang pro dan kontra dan merekomendasikan kriteria berikut untuk memilih apakah akan menggunakan TCP atau UDP untuk game Anda:

  • Gunakan HTTP melalui TCP untuk membuat pertanyaan tanpa kewajiban sesekali yang diprakarsai klien saat tidak apa-apa untuk mengalami penundaan sesekali.
  • Gunakan soket TCP polos persisten jika klien dan server secara independen mengirim paket tetapi penundaan sesekali tidak apa -apa (e.G. Poker online, banyak MMO).
  • Gunakan UDP jika klien dan server dapat secara independen mengirim paket dan sesekali lag tidak ok (e.G. Sebagian besar game aksi multipemain, beberapa MMO).