User Datagram Protocol (UDP)

Dari Catatan Pak Samsul
Loncat ke navigasi Loncat ke pencarian

UDP, singkatan dari User Datagram Protocol, merupakan salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (unreliable), tanpa koneksi (connectionless) selang host-host dalam jaringan yang mempergunakan TCP/IP. Protokol ini dirumuskan dalam RFC 768.

Karakteristik UDP

UDP mempunyai karakteristik-karakteristik berikut:

  • Connectionless (tanpa koneksi): Pesan-pesan UDP akan dikirimkan tanpa harus diterapkan bagian negosiasi koneksi selang dua host yang ingin berubah informasi.
  • Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sbg datagram tanpa beradanya nomor urut atau pesan acknowledgment. Protokol lapisan aplikasi yang berlanjut di atas UDP harus memainkan pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya, protokol lapisan aplikasi yang berlanjut di atas UDP mengimplementasikan layanan keandalan mereka masing-masing, atau mengirim pesan secara periodik atau dengan mempergunakan saat yang telah dirumuskan.
  • UDP menyediakan mekanisme kepada mengirim pesan-pesan ke sebuah protokol lapisan aplikasi atau bagian tertentu di dalam sebuah host dalam jaringan yang mempergunakan TCP/IP. Header UDP memuat field Source Process Identification dan Destination Process Identification.
  • UDP menyediakan penghitungan checksum berukuran 16-bit terhadap semuanya pesan UDP.

UDP tidak menyediakan layanan-layanan antar-host berikut:

  • UDP tidak menyediakan mekanisme penyanggaan (buffering) dari data yang masuk ataupun data yang keluar. Tugas buffering merupakan tugas yang harus diimplementasikan oleh protokol lapisan aplikasi yang berlanjut di atas UDP.
  • UDP tidak menyediakan mekanisme segmentasi data yang luhur ke dalam segmen-segmen data, seperti yang terjadi dalam protokol TCP. Karena itulah, protokol lapisan aplikasi yang berlanjut di atas UDP harus mengirimkan data yang berukuran kecil (tidak semakin luhur dari nilai Maximum Transfer Unit/MTU) yang dimiliki oleh sebuah antarmuka di mana data tersebut dikirim. Karena, jika ukuran paket data yang dikirim semakin luhur dibandingkan nilai MTU, paket data yang dikirimkan mampu saja terpecah dijadikan beberapa fragmen yang yang belakang sekalinya tidak sah terkirim dengan berlaku.
  • UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.

Penggunaan UDP

UDP sering dipergunakan dalam beberapa tugas berikut:

  • Protokol yang "ringan" (lightweight): Kepada menghemat sumber daya memori dan prosesor, beberapa protokol lapisan aplikasi membutuhkan penggunaan protokol yang ringan yang dapat memainkan fungsi-fungsi spesifik dengan saling berubah pesan. Contoh dari protokol yang ringan merupakan fungsi query nama dalam protokol lapisan aplikasi Domain Name System.
  • Protokol lapisan aplikasi yang mengimplementasikan layanan keandalan: Jika protokol lapisan aplikasi menyediakan layanan transfer data yang andal, maka kebutuhan terhadap keandalan yang dinegosiasikan oleh TCP pun dijadikan tidak berada. Contoh dari protokol seperti ini merupakan Trivial File Transfer Protocol (TFTP) dan Network File System (NFS)
  • Protokol yang tidak membutuhkan keandalan. Contoh protokol ini merupakan protokol Routing Information Protocol (RIP).
  • Transmisi broadcast: Karena UDP merupakan protokol yang tidak perlu menciptakan koneksi terlebih dahulu dengan sebuah host tertentu, maka transmisi broadcast pun dimungkinkan. Sebuah protokol lapisan aplikasi dapat mengirimkan paket data ke beberapa sasaran dengan mempergunakan alamat multicast atau broadcast. Hal ini kontras dengan protokol TCP yang hanya dapat mengirimkan transmisi one-to-one. Contoh: query nama dalam protokol NetBIOS Name Service.

Pesan-pesan UDP

Ilustrasi mengenai pesan-pesan UDP


UDP, tidak sama dengan TCP yang mempunyai satuan paket data yang disebut dengan segmen, memainkan pengepakan terhadap data ke dalam pesan-pesan UDP (UDP Messages). Sebuah pesan UDP memuat header UDP dan akan dikirimkan ke protokol lapisan selanjutnya (lapisan internetwork) setelah mengepaknya dijadikan datagram IP. Enkapsulasi terhadap pesan-pesan UDP oleh protokol IP diterapkan dengan menambahkan header IP dengan protokol IP nomor 17 (0x11). Pesan UDP dapat mempunyai luhur maksimum 65507 byte: 65535 (216)-20 (ukuran terkecil dari header IP)-8 (ukuran dari header UDP) byte. Datagram IP yang diproduksi dari bagian enkapsulasi tersebut, akan dienkapsulasi kembali dengan mempergunakan header dan trailer protokol lapisan Network Interface yang dipergunakan oleh host tersebut.

Dalam header IP dari sebuah pesan UDP, field Source IP Address akan diset ke antarmuka host yang mengirimkan pesan UDP yang bersangkutan; sementara field Destination IP Address akan diset ke alamat IP unicast dari sebuah host tertentu, alamat IP broadcast, atau alamat IP multicast.

Header UDP

Header UDP dibuat sbg sebuah header dengan 4 buah field mempunyai ukuran yang tetap, seperti tersebutkan dalam tabel berikut.

Ilustrasi mengenai header UDP
Field Panjang Keterangan
Source Port 16 bit (2 byte) Dipergunakan kepada mengidentifikasikan sumber protokol lapisan aplikasi yang mengirimkan pesan UDP yang bersangkutan. Penggunaan field ini merupakan opsional, dan jika tidak dipergunakan, akan diset ke angka 0. Beberapa protokol lapisan aplikasi dapat mempergunakan nilai field ini dari pesan UDP yang masuk sbg nilai field port sasaran (Destination Port, lihat baris selanjutnya) sbg balasan kepada pesan tersebut.
Destination Port 16 bit (2 byte) Dipergunakan kepada mengidentifikasikan sasaran protokol lapisan aplikasi yang dijadikan sasaran pesan UDP yang bersangkutan. Dengan mempergunakan kombinasi selang alamat IP dengan nilai dari field ini kepada menciptakan sebuah alamat yang signifikan kepada mengidentifikasikan bagian yang berlanjut dalam sebuah host tertentu yang dituju oleh pesan UDP yang bersangkutan.
Length 16 bit (2 byte) Dipergunakan kepada mengindikasikan panjang pesan UDP (pesan UDP ditambah dengan header UDP) dalam satuan byte. Ukuran sangat kecil merupakan 8 byte (ukuran header UDP, ketika tidak berada inti pesan UDP), dan ukuran sangat luhur merupakan 65515 bytes (65535 [216] -20 [ukuran header protokol IP]). Panjang maksimum aktual dari pesan UDP akan disesuaikan dengan mempergunakan nilai Maximum Transmission Unit (MTU) dari aliran di mana pesan UDP dikirimkan. Field ini bersifat redundan (terulang-ulang). Panjang pesan UDP dapat dihitung dari field Length dalam header UDP dan field IP Header Length dalam header IP.
Checksum 16 bit (2 byte) Memuat informasi pengecekan integritas dari pesan UDP yang dikirimkan (header UDP dan pesan UDP). Penggunaan field ini merupakan opsional. Jika tidak dipergunakan, field ini akan mempunyai nilai 0.

Port UDP

Seperti halnya TCP, UDP juga mempunyai aliran kepada mengirimkan informasi antar host, yang disebut dengan UDP Port. Kepada mempergunakan protokol UDP, sebuah aplikasi harus menyediakan alamat IP dan nomor UDP Port dari host yang dituju. Sebuah UDP port berfungsi sbg sebuah multiplexed message queue, yang berarti bahwa UDP port tersebut dapat menerima beberapa pesan secara sekaligus. Setiap port diidentifikasi dengan nomor yang unik, seperti halnya TCP, tetapi meskipun begitu, UDP Port tidak sama dengan TCP Port meskipun mempunyai nomor port yang sama. Tabel di bawah ini mendaftarkan beberapa UDP port yang telah dikenal secara lebar.

Nomor Port UDP Dipergunakan oleh
53 Domain Name System (DNS) Name Query
67 BOOTP client (Dynamic Host Configuration Protocol [DHCP])
68 BOOTP server (DHCP)
69 Trivial File Transfer Protocol (TFTP)
137 NetBIOS Name Service
138 NetBIOS Datagram Service
161 Simple Network Management Protocol (SNMP)
445 Server Message Block (SMB)
520 Routing Information Protocol (RIP)
1812/1813 Remote Authentication Dial-In User Service (RADIUS)

Pranala luar

http://www.iana.org/assignments/port-numbers kepada melihat nomor-nomor port yang dirumuskan oleh IANA.