Apa perbedaan antara UDP dan TCP?

46

Router saya memiliki dua protokol (dan opsi "keduanya") yang dapat saya pilih ketika mengatur port forwarding: UDP dan TCP. Apa perbedaan antara kedua protokol ini dan kapan Anda memilih satu di atas yang lain dalam penerusan porta?

Orang
sumber

Jawaban:

51

TCP didukung oleh acks dan retries untuk memastikan data Anda sampai di mana ia pergi. UDP tidak terhubung dan "memecat dan melupakan". UDP sebagian besar digunakan untuk aplikasi jenis streaming, di mana jika Anda kehilangan beberapa data, Anda tidak perlu mencoba mengirimnya lagi.

Yang mana yang Anda gunakan tergantung pada aplikasi. Misalnya, server web menggunakan TCP.


sumber
3
Itu masuk akal - jadi jika Anda streaming video tidak ada gunanya mengirim kembali frame yang hilang nanti karena Anda sudah melewati titik itu. Terima kasih
Guy
15
+1. Sebagai tambahan, siapa pun yang mencari pemahaman yang lebih mendalam harus membaca salah satu dari W. Richard Stevens banyak buku bagus tentang masalah ini. "TCP / IP Illustrated, v1" dan "UNIX Network Programming" berfungsi sebagai tutorial dan referensi yang sangat baik.
Murali Suriar
73

Anda dapat menemukan ringkasan yang bagus di sini:

Apa perbedaan antara protokol internet UDP dan TCP?

Baik TCP dan UDP bekerja pada transport layer model TCP / IP, tetapi memiliki penggunaan yang sangat berbeda.

Perbedaan paling penting adalah:

  • Keandalan :
    TCP: berorientasi
    koneksi UDP: connectionless
  • Dipesan :
    TCP: pesanan tanda terima pesan dijamin
    UDP: pesanan tidak dijamin
  • Berat protokol :
    TCP: kelas berat, karena koneksi / pemesanan overhead
    UDP: ringan, sedikit overhead
  • Paket :
    TCP: streaming, data dibaca sebagai "aliran", tanpa membedakan mana satu paket berakhir dan yang lainnya dimulai. Mungkin ada beberapa paket per panggilan baca.
    UDP: datagram, satu paket per satu panggilan baca.

Struktur rangka

Ketika data dikirim melalui jaringan, itu harus dienkapsulasi menjadi apa yang disebut "bingkai." Ada berbagai metode enkapsulasi tergantung pada protokol dan topologi yang digunakan. Gambar-gambar berikut menunjukkan bagaimana struktur bingkai TCP dan UDP berbeda.

Ini adalah struktur bingkai TCP:

Bingkai TCP

Dan ini struktur bingkai UDP, jauh lebih sederhana:

Bingkai UDP

Protokol umum yang menggunakan TCP adalah HTTP, FTP dan SMTP. Contoh protokol yang menggunakan UDP adalah DNS dan DHCP.

percikan
sumber
@splattne - pesanan tanda terima pesan adalah jaminan, bukan transmisi
Alnitak
@Alnitak: tentu saja, Anda benar. Maksud saya tanda terima dijamin dalam urutan transmisi. Saya akan memperbarui untuk memperjelasnya.
splattne
43

Dan penjelasan tingkat CEO:

UDP adalah saat Anda melemparkan kertas ke arah tempat sampah umum.

TCP adalah ketika gagal, Anda membuang salinan persis dari kertas yang sama berulang-ulang sampai jatuh ke tempat sampah. Akan ada pemborosan kertas, bahkan membenci paket TCP mengakibatkan pemborosan sumber daya jaringan atau sistem.

pgs
sumber
1
Itu adalah penjelasan "tingkat CEO" yang sangat bagus - saya suka!
Keithius
Saya bukan CEO, tetapi mengapa tidak ada yang mengatakan ini sebelumnya kepada saya! : p
Nicolas Dorier
Ini brilian!
shylent
7

TCP dan UDP keduanya protokol yang berjalan di atas IP. TCP telah menjamin pengiriman dan UDP tidak. Anda akan memilih satu atau yang lain untuk penerusan port tergantung pada layanan apa yang Anda coba teruskan. HTTP, misalnya adalah TCP. Jika Anda tidak tahu apa protokol layanan yang Anda coba teruskan, itu hampir pasti TCP.

Brian
sumber
3

Untuk menjawab bagian lain dari pertanyaan Anda, Anda harus meneruskan apa yang digunakan aplikasi Anda. Untuk meneruskan lalu lintas HTTP, pilih TCP. Untuk meneruskan lalu lintas TFTP, pilih UDP. kebanyakan program p2p menggunakan tcp dan udp, jadi teruskan keduanya.

Itu semua tergantung pada protokol dan program yang Anda gunakan.

hayalci
sumber
kamu tidak sepenuhnya benar. dns juga menggunakan tcp / 53, tidak begitu sering tetapi masih [misalnya. untuk transfer zona].
pQd
Iya. Juga, sepenuhnya valid untuk mengirim permintaan dns reguler ke tcp. Saya mengubah contoh menjadi TFTP, yang secara eksklusif menggunakan UDP.
hayalci
2

Serta perbedaan yang disebutkan sejauh ini TCP juga menyediakan

Alur kontrol. Dengan menggunakan mekanisme jendela, penerima membatasi jumlah oktet (byte) yang ingin diterima dari pengirim sebelum pengirim harus menunggu izin untuk mengirim lebih banyak data. Ukuran jendela dapat diubah oleh penerima saat percakapan berlangsung. Ini memungkinkan penerima untuk 'membatasi' laju data yang berasal dari pengirim: UDP tidak mengizinkan ini dan yang bisa dilakukan penerima hanyalah membuang data yang tidak dapat disangga atau diproses pada saat kedatangan.

beberapa fasilitas yang lebih teknis seperti pengakuan yang tidak berdampingan (menggunakan pengakuan selektif untuk memungkinkan pengirim mengirim ulang hanya kerangka yang hilang daripada kerangka yang hilang dan yang berikutnya yang telah dimiliki penerima tetapi tidak bisa mengakui dengan cara biasa), penanganan kemacetan dan pengiriman ulang adaptif (menyesuaikan timer yang memutuskan seberapa cepat untuk mengirim ulang frame yang ditransmisikan ketika pengakuan tidak diterima). Ini tidak relevan dengan UDP tetapi membantu TCP untuk menyediakan layanan tambahan melalui UDP tanpa sangat meningkatkan beban jaringan untuk volume muatan yang sama.

mas
sumber
2

TCP berupaya memastikan bahwa data berhasil sampai ke penerima; UDP tidak.

J. Polfer
sumber
Salah. Protokol IP tidak dapat diandalkan dan kehilangan data dapat terjadi. TCP berupaya memastikan bahwa data yang dikirim (yang dibagi menjadi bagian-bagian kecil dan dikirim melalui paket IP) akan membuatnya ke penerima (dengan akhirnya mengirim ulang bagian-bagian kecil jika diperlukan).
Anonim
@ Anonim - Anda pada dasarnya menyatakan kembali apa yang saya katakan di atas. Bagaimana saya salah?
J. Polfer
Saya pikir Anda berdua akan menemukan bahwa IP adalah kerangka kerja yang mendasarinya (stack) dan protokol komunikasi dasar yang digunakan oleh UDP dan TCP. Anda tidak dapat benar-benar mengomunikasikan data yang berguna melalui internet menggunakan IP HANYA, sejauh yang saya tahu - bahkan ping dasar dll. Menggunakan protokol di atas IP (yang utama lainnya; ICMP).
Lee B
1

Lupakan semua jawaban yang menjelaskan satu vs yang lain. Untuk keperluan pengaturan port-forward, aturannya cukup sederhana: Anda harus memilih TCP, kecuali dokumen untuk protokol / aplikasi yang Anda gunakan katakanlah untuk menggunakan UDP. Biasanya yang menggunakan UDP berhubungan dengan streaming, atau hal-hal yang sangat sederhana yang mendukung protokol / kecepatan lebih dari keandalan (terutama DNS dan NTP). Perhatikan bahwa ada protokol lain selain TCP dan UDP juga - ICMP, protokol tunneling, dll.

Lee B
sumber
1

Protokol yang lebih terkenal adalah, semakin banyak router di jalur intervensi dengan protokol. Kirim paket tcp, dan ada kemungkinan besar paket yang diterima sangat rusak. UDP biasanya tidak hancur, dan 254 protokol IP paylod lainnya biasanya sama sekali tidak tersentuh.


sumber
0

User Datagram Protocol (UDP)

Ini adalah bagian dari protokol dasar dari Internet Protocol Suite. Program pada komputer jaringan dapat mengirim pesan pendek yang kadang-kadang disebut datagram. UDP tidak menjamin keandalan (terjadi datagram mungkin rusak, diduplikasi, atau hilang tanpa pemberitahuan). Fakta bahwa tidak memeriksa apakah semua paket benar-benar dikirim dibuat, UDP terbukti lebih cepat dan lebih efisien, untuk aplikasi yang tidak perlu pengiriman terjamin. UDP menemukan kegunaannya dalam situasi seperti ini:

Aplikasi yang sensitif terhadap waktu. Masalah karena paket tertunda dihindari

Ini juga berguna untuk server yang menjawab pertanyaan kecil dari sejumlah besar klien. UDP mendukung siaran paket (menyampaikan semua pada jaringan lokal) dan multicasting (menyampaikan kepada semua pelanggan).

Protokol Kontrol Transmisi (TCP)

Ini sering disebut sebagai TCP / IP karena pentingnya protokol ini di Internet Protocol Suite. TCP beroperasi pada level yang lebih tinggi, hanya memperhatikan dua sistem ujung, (mis. Antara browser web dan server web). TCP menyediakan pengiriman aliran data yang andal dan berurutan dari satu program di satu komputer ke program lain di komputer lain. Penggunaan umum dukungan pengelompokan kembali TCP dan transfer file dan aplikasi Web. Di antara tugas manajemennya, TCP mengontrol ukuran pesan, kecepatan pertukaran pesan, dan kemacetan lalu lintas jaringan. Adapun IP, menangani transmisi tingkat rendah dari komputer ke komputer sebagai pesan yang ditransfer di Internet.


sumber
0

Baik keduanya adalah protokol jaringan yang dibangun di atas sesuatu yang disebut Protokol Internet atau IP. Protokol Internet adalah protokol utama Internet dan misalnya yang memungkinkan kita untuk menjelajahi web. Itu sebabnya Anda akan sering melihat protokol ini ditulis sebagai TCP / IP atau UDP / IP. Mereka sebenarnya adalah protokol inti dari internet.

Dalam kedua kasus, data Anda dibagi menjadi beberapa paket yang disebut paket. TCP memastikan bahwa paket-paket ini sampai ke tujuannya dan dalam urutan yang benar dan tanpa kesalahan.

UDP di sisi lain tidak akan memastikan bahwa paket data akan tiba. Itu hanya akan memastikan bahwa jika itu tiba itu akan tanpa kesalahan.

Biasanya, protokol lain akan berjalan di atas TCP dan UDP dan dikenal sebagai protokol aplikasi karena mereka beroperasi di dalam aplikasi dan tidak di dalam sistem operasi. Penelusuran web Anda menggunakan protokol HTTP yang akan menggunakan protokol TCP.

Pencarian nama domain atau permintaan DNS sering menggunakan UDP tetapi juga dapat menggunakan TCP. Sejumlah layanan streaming menggunakan UDP di bawah protokol aplikasi lain.

Saya harap itu menjawab pertanyaan Anda dalam bahasa Inggris yang lebih sederhana.

Mat
sumber