TCP vs. UDP

Ada dua jenis lalu lintas Internet Protocol (IP). Mereka adalah TCP atau Protokol Kontrol Transmisi dan UDP atau Protokol Datagram Pengguna . TCP berorientasi koneksi - setelah koneksi terbentuk, 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

Grafik perbandingan TCP versus UDP
TCP UDP
Akronim untukProtokol Kontrol TransmisiUser Datagram Protocol atau Universal Datagram Protocol
KoneksiTransmission Control Protocol adalah protokol berorientasi koneksi.User Datagram Protocol adalah protokol tanpa koneksi.
FungsiSebagai pesan berjalan melintasi internet dari satu komputer ke komputer lainnya. Ini berbasis koneksi.UDP juga merupakan protokol yang digunakan dalam pengangkutan atau transfer pesan. Ini bukan koneksi berbasis yang berarti bahwa satu program dapat mengirim banyak paket ke yang lain dan itu akan menjadi akhir dari hubungan.
PemakaianTCP cocok untuk aplikasi yang membutuhkan keandalan tinggi, dan waktu transmisi relatif kurang kritis.UDP cocok untuk aplikasi yang membutuhkan transmisi cepat, efisien, seperti game. Sifat stateless UDP juga berguna untuk server yang menjawab pertanyaan kecil dari sejumlah besar klien.
Gunakan oleh protokol lainHTTP, HTTPs, FTP, SMTP, TelnetDNS, DHCP, TFTP, SNMP, RIP, VOIP.
Memesan paket dataTCP mengatur ulang paket data dalam urutan yang ditentukan.UDP tidak memiliki urutan bawaan karena semua paket tidak tergantung satu sama lain. Jika diperlukan, pemesanan harus dikelola oleh lapisan aplikasi.
Kecepatan transferKecepatan untuk TCP lebih lambat dari UDP.UDP lebih cepat karena pemulihan kesalahan tidak dilakukan. Ini adalah protokol "upaya terbaik".
KeandalanAda jaminan mutlak bahwa data yang ditransfer tetap utuh dan tiba dalam urutan yang sama dengan waktu pengirimannya.Tidak ada jaminan bahwa pesan atau paket yang dikirim akan mencapai sama sekali.
Ukuran headerUkuran header TCP adalah 20 byteUkuran Header UDP adalah 8 byte.
Bidang Judul UmumPort sumber, port Tujuan, Periksa JumlahPort sumber, port Tujuan, Periksa Jumlah
Streaming dataData dibaca sebagai aliran byte, tidak ada indikasi yang membedakan ditransmisikan ke batas sinyal pesan (segmen).Paket dikirim secara individual dan diperiksa integritasnya hanya jika tiba. Paket memiliki batas-batas tertentu yang dihormati pada saat diterima, yang berarti operasi baca pada soket penerima akan menghasilkan seluruh pesan seperti yang awalnya dikirim.
BobotTCP sangat berat. TCP memerlukan tiga paket untuk mengatur koneksi soket, sebelum data pengguna apa pun dapat dikirim. TCP menangani keandalan dan kontrol kemacetan.UDP ringan. Tidak ada pemesanan pesan, tidak ada koneksi pelacakan, dll. Ini adalah lapisan transport kecil yang dirancang di atas IP.
Kontrol Aliran DataTCP melakukan Flow Control. TCP memerlukan tiga paket untuk mengatur koneksi soket, sebelum data pengguna apa pun dapat dikirim. TCP menangani keandalan dan kontrol kemacetan.UDP tidak memiliki opsi untuk kontrol aliran
Pemeriksaan KesalahanTCP melakukan pengecekan kesalahan dan pemulihan kesalahan. Paket yang salah dikirimkan kembali dari sumber ke tujuan.UDP melakukan pengecekan kesalahan tetapi hanya membuang paket yang salah. Pemulihan kesalahan tidak dilakukan.
Bidang1. Nomor Urutan, 2. Nomor AcK, 3. Data offset, 4. Dicadangkan, 5. Bit kontrol, 6. Jendela, 7. Urgent Pointer 8. Opsi, 9. Padding, 10. Periksa Jumlah, 11. Port sumber, 12. Pelabuhan tujuan1. Panjang, 2. Port sumber, 3. Port tujuan, 4. Periksa Jumlah
PengakuanSegmen pengakuanTidak Ada Pengakuan
Jabatan tanganSYN, SYN-ACK, ACKTidak ada jabat tangan (protokol tanpa koneksi)

Perbedaan Fitur Transfer Data

TCP memastikan pengiriman aliran byte yang dapat diandalkan dan dipesan dari pengguna ke server atau sebaliknya. UDP tidak didedikasikan untuk koneksi ujung ke ujung dan komunikasi tidak memeriksa kesiapan penerima.

Keandalan

TCP lebih andal karena mengelola pengakuan dan transmisi ulang pesan jika ada bagian yang hilang. Jadi sama sekali tidak ada data yang hilang. UDP tidak memastikan bahwa komunikasi telah mencapai penerima karena konsep pengakuan, batas waktu dan pengiriman ulang tidak ada.

Memerintah

Transmisi TCP dikirim secara berurutan dan diterima dalam urutan yang sama. Jika segmen data tiba dengan urutan yang salah, TCP akan memesan ulang dan mengirimkan aplikasi. Dalam kasus UDP, urutan pesan terkirim mungkin tidak dipertahankan ketika mencapai aplikasi penerima. Sama sekali tidak ada cara untuk memprediksi urutan pesan 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. Pesan UDP adalah paket yang dikirim secara individual dan pada saat kedatangan diperiksa integritasnya. Paket memiliki batas yang ditentukan sementara aliran data tidak memiliki.

Deteksi Kesalahan

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

TCP menggunakan deteksi kesalahan dan pemulihan kesalahan. Kesalahan terdeteksi melalui checksum dan jika suatu paket salah, itu tidak diakui oleh penerima, yang memicu pengiriman ulang oleh pengirim. Mekanisme operasi ini disebut Pengakuan Positif dengan Retransmisi (PAR).

Cara kerja TCP dan UDP

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

UDP menggunakan model transmisi sederhana tanpa dialog goyangan tangan secara implisit untuk menjamin keandalan, pemesanan, atau integritas data. Dengan demikian, UDP menyediakan layanan yang tidak dapat diandalkan dan datagram mungkin rusak, muncul duplikat, atau hilang tanpa pemberitahuan. UDP mengasumsikan bahwa pengecekan dan koreksi kesalahan tidak diperlukan atau dilakukan dalam aplikasi, menghindari overhead pemrosesan tersebut pada tingkat antarmuka jaringan. Tidak seperti TCP, UDP kompatibel dengan siaran paket (mengirim ke semua di jaringan lokal) dan multicasting (mengirim 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 yang sensitif terhadap waktu dan juga oleh server yang menjawab pertanyaan kecil dari sejumlah besar klien. UDP kompatibel dengan paket broadcast - pengiriman ke semua di jaringan dan multicasting - pengiriman ke semua pelanggan. UDP umumnya digunakan dalam Sistem Nama Domain, Voice over IP, Protokol Transfer File Sepele dan game online.

TCP vs. UDP untuk Server Game

Untuk game massively multiplayer online (MMO), pengembang sering harus membuat pilihan arsitektur antara menggunakan koneksi persisten UDP atau TCP. Kelebihan dari TCP adalah koneksi yang gigih, keandalan, dan kemampuan untuk menggunakan paket-paket ukuran yang berubah-ubah. Masalah terbesar dengan TCP dalam skenario ini adalah algoritma kontrol kemacetannya, yang memperlakukan kehilangan paket sebagai tanda keterbatasan bandwidth dan secara otomatis membatasi pengiriman paket. Pada jaringan 3G atau Wi-Fi, ini dapat menyebabkan latensi yang signifikan.

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

  • Gunakan HTTP over TCP untuk membuat kueri stateless yang diprakarsai klien sesekali saat OK untuk sesekali menunda.
  • Gunakan soket TCP polos yang terus-menerus jika klien dan server mengirim paket secara independen tetapi penundaan sesekali tidak apa-apa (mis. Poker Online, banyak MMO).
  • Gunakan UDP jika klien dan server dapat secara independen mengirim paket dan jeda sesekali tidak baik (mis. Kebanyakan game aksi multi pemain, beberapa MMO).

Artikel Terkait