Back to IF2230 Jaringan Komputer

Topic

Questions/Cues

  • Apa sifat dasar UDP?
  • Apa maksud “connectionless”?
  • Mengapa UDP tidak andal (unreliable)?
  • Apa itu layanan “best effort”?
  • Bisakah UDP dibuat andal?
  • Bagaimana cara kerja checksum UDP?
  • Apa peran UDP sebagai demultiplexer?
  • Bagaimana struktur header UDP?

Reference Points

  • Slides 17, 24-25
  • Slide 18
  • Slides 19-20
  • Slides 21-23

Karakteristik Utama UDP (User Datagram Protocol)

Sifat Dasar: UDP adalah protokol yang datagram-oriented, unreliable (tidak andal), dan connectionless (tanpa koneksi). Tujuannya adalah menyediakan layanan pengiriman yang sangat cepat dan sederhana dengan overhead minimal.

Connectionless:

  • Tidak ada proses “jabat tangan” (handshake) seperti SYN atau FIN pada TCP. Paket data (disebut datagram) langsung dikirim begitu saja.
  • Tidak ada state koneksi yang perlu disimpan oleh pengirim atau penerima.

Unreliable (Tidak Andal):

  • UDP tidak memiliki mekanisme sequence number atau acknowledgment. Ia tidak menjamin bahwa datagram akan sampai ke tujuan.
  • Ini adalah bagian dari layanan “best effort”: UDP akan berusaha sebaik mungkin untuk mengirimkan datagram, tetapi tidak ada jaminan apa pun.
  • Akibatnya, datagram UDP bisa:
    • Hilang di tengah jalan.
    • Diterima dalam urutan yang salah (misalnya, dikirim 1, 2, 3 tapi diterima 2, 1, 3).

Keandalan (Reliability) dan UDP

Secara definisi, UDP adalah protokol yang tidak andal. Namun, keandalan bisa diimplementasikan di atas UDP jika diperlukan.

  1. Implementasi di Application Layer: Jika sebuah aplikasi membutuhkan keandalan tapi tetap ingin menggunakan kecepatan UDP, maka developer harus membangun mekanisme keandalan itu sendiri di dalam kode aplikasi.
  2. Mekanisme: Ini bisa berupa:
    • Melacak byte yang dikirim dan diterima.

    • Mengurutkan kembali paket yang datang tidak berurutan.

    • Mengirim ulang data jika terdeteksi hilang (misalnya dengan timer).

  • Contoh Dunia Nyata: Aplikasi tftp (Trivial File Transfer Protocol) adalah aplikasi “andal” yang mentransfer file menggunakan UDP. Mekanisme keandalannya sepenuhnya diatur di dalam lapisan aplikasi tftp itu sendiri.

Struktur dan Mekanisme UDP

Struktur Header UDP: Header UDP sangat sederhana dan berukuran tetap 8 byte, terdiri dari:

  • Source Port (16 bit): Port dari proses pengirim.
  • Destination Port (16 bit): Port dari proses tujuan.
  • Length (16 bit): Panjang total datagram UDP (header + data) dalam byte.
  • Checksum (16 bit): Nilai untuk memeriksa apakah ada error/kerusakan pada header atau data selama transmisi.

Mekanisme Checksum:

  • Tujuan: Untuk mendeteksi error (misalnya bit yang terbalik) pada segmen yang ditransmisikan.
  • Pengirim: Menjumlahkan semua kata 16-bit dari segmen (menggunakan 1’s complement sum) dan menempatkan hasilnya di field checksum.
  • Penerima: Menghitung ulang checksum dari segmen yang diterima. Jika hasilnya tidak cocok dengan nilai di field checksum, maka terdeteksi ada error. Catatan: Jika error terdeteksi, UDP biasanya hanya akan membuang paket tersebut.

Peran sebagai Simple Demultiplexer:

  • Fungsi utama UDP adalah memperluas layanan host-to-host dari network layer menjadi layanan process-to-process.
  • UDP menambahkan kemampuan demultiplexing, yaitu menggunakan Destination Port untuk mengarahkan datagram yang masuk ke antrian pesan (socket) dari proses aplikasi yang benar.

Summary

UDP (User Datagram Protocol) adalah protokol transport yang cepat, sederhana, dan connectionless, yang beroperasi dengan prinsip “best effort”. Ia mengorbankan keandalan—tidak ada jaminan pengiriman atau urutan—demi overhead yang rendah dan kecepatan tinggi. Fungsi utamanya adalah menyediakan demultiplexing dasar menggunakan nomor port, sementara mekanisme keandalan (jika perlu) harus diimplementasikan di lapisan aplikasi.