USER DATAGRAM PROTOCOL
Pengertian UDP
UDP, singkatan dari
User Datagram Protocol, adalah salah satu protokol lapisan transpor TCP/IP yang mendukung komunikasi yang tidak andal (
unreliable), tanpa koneksi (
connectionless) antara host-host dalam jaringan yang menggunakan TCP/IP. Protokol ini didefinisikan dalam RFC 768.
Karakteristik UDP
UDP memiliki karakteristik-karakteristik berikut:
- Connectionless (tanpa koneksi): Pesan-pesan UDP akan
dikirimkan tanpa harus dilakukan proses negosiasi koneksi antara dua
host yang hendak bertukar informasi.
- Unreliable (tidak andal): Pesan-pesan UDP akan dikirimkan sebagai datagram tanpa adanya nomor urut atau pesan acknowledgment.
Protokol lapisan aplikasi yang berjalan di atas UDP harus melakukan
pemulihan terhadap pesan-pesan yang hilang selama transmisi. Umumnya,
protokol lapisan aplikasi yang berjalan di atas UDP mengimplementasikan
layanan keandalan mereka masing-masing, atau mengirim pesan secara
periodik atau dengan menggunakan waktu yang telah didefinisikan.
- UDP menyediakan mekanisme untuk mengirim pesan-pesan ke sebuah
protokol lapisan aplikasi atau proses tertentu di dalam sebuah host
dalam jaringan yang menggunakan TCP/IP. Header UDP berisi field Source Process Identification dan Destination Process Identification.
- UDP menyediakan penghitungan checksum berukuran 16-bit terhadap keseluruhan 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
berjalan di atas UDP.
- UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam
segmen-segmen data, seperti yang terjadi dalam protokol TCP. Karena
itulah, protokol lapisan aplikasi yang berjalan di atas UDP harus
mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai Maximum Transfer Unit/MTU)
yang dimiliki oleh sebuah antarmuka di mana data tersebut dikirim.
Karena, jika ukuran paket data yang dikirim lebih besar dibandingkan
nilai MTU, paket data yang dikirimkan bisa saja terpecah menjadi
beberapa fragmen yang akhirnya tidak jadi terkirim dengan benar.
- UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.
Penggunaan UDP
UDP sering digunakan dalam beberapa tugas berikut:
- Protokol yang "ringan" (lightweight): Untuk menghemat sumber daya
memori dan prosesor, beberapa protokol lapisan aplikasi membutuhkan
penggunaan protokol yang ringan yang dapat melakukan fungsi-fungsi
spesifik dengan saling bertukar pesan. Contoh dari protokol yang ringan
adalah 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 ditawarkan oleh
TCP pun menjadi tidak ada. Contoh dari protokol seperti ini adalah Trivial File Transfer Protocol (TFTP) dan Network File System (NFS)
- Protokol yang tidak membutuhkan keandalan. Contoh protokol ini adalah protokol Routing Information Protocol (RIP).
- Transmisi broadcast: Karena UDP merupakan protokol yang tidak perlu
membuat koneksi terlebih dahulu dengan sebuah host tertentu, maka
transmisi broadcast pun dimungkinkan. Sebuah protokol lapisan aplikasi
dapat mengirimkan paket data ke beberapa tujuan dengan menggunakan 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.
Kelemahan UDP
- 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
berjalan di atas UDP.
- UDP tidak menyediakan mekanisme segmentasi data yang besar ke dalam
segmen-segmen data, seperti yang terjadi dalam protokol TCP. Karena
itulah, protokol lapisan aplikasi yang berjalan di atas UDP harus
mengirimkan data yang berukuran kecil (tidak lebih besar dari nilai
Maximum Transfer Unit/MTU) yang dimiliki oleh sebuah antarmuka di mana
data tersebut dikirim. Karena, jika ukuran paket data yang dikirim lebih
besar dibandingkan nilai MTU, paket data yang dikirimkan bisa saja
terpecah menjadi beberapa fragmen yang akhirnya tidak jadi terkirim
dengan benar.
- UDP tidak menyediakan mekanisme flow-control, seperti yang dimiliki oleh TCP.
Pesan-pesan UDP
UDP, berbeda dengan TCP yang memiliki satuan paket data yang disebut dengan
segmen, melakukan pengepakan terhadap data ke dalam pesan-pesan UDP (
UDP Messages). Sebuah pesan UDP berisi
header UDP dan akan dikirimkan ke protokol lapisan selanjutnya (lapisan internetwork) setelah mengepaknya menjadi datagram IP. Enkapsulasi
terhadap pesan-pesan UDP oleh protokol IP dilakukan dengan menambahkan
header IP dengan protokol IP nomor 17 (0x11). Pesan UDP dapat memiliki
besar maksimum 65507
byte: 65535 (2
16)-20 (ukuran terkecil dari header IP)-8 (ukuran dari
header UDP)
byte.
Datagram IP yang dihasilkan dari proses enkapsulasi tersebut, akan dienkapsulasi kembali dengan menggunakan
header dan
trailer protokol lapisan Network Interface yang digunakan 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.
 |
| Ilustrasi mengenai pesan-pesan UDP |
Header UDP diwujudkan sebagai sebuah header dengan 4 buah field
memiliki ukuran yang tetap, seperti tersebutkan dalam tabel berikut.
| Field |
Panjang |
Keterangan |
| Source Port |
16 bit (2 byte) |
Digunakan untuk mengidentifikasikan sumber protokol lapisan aplikasi
yang mengirimkan pesan UDP yang bersangkutan. Penggunaan field ini
adalah opsional, dan jika tidak digunakan, akan diset ke angka 0.
Beberapa protokol lapisan aplikasi dapat menggunakan nilai field ini
dari pesan UDP yang masuk sebagai nilai field port tujuan (Destination
Port, lihat baris selanjutnya) sebagai balasan untuk pesan tersebut. |
| Destination Port |
16 bit (2 byte) |
Digunakan untuk mengidentifikasikan tujuan protokol lapisan aplikasi
yang menjadi tujuan pesan UDP yang bersangkutan. Dengan menggunakan
kombinasi antara alamat IP dengan nilai dari field ini untuk membuat
sebuah alamat yang signifikan untuk mengidentifikasikan proses yang
berjalan dalam sebuah host tertentu yang dituju oleh pesan UDP yang
bersangkutan. |
| Length |
16 bit (2 byte) |
Digunakan untuk mengindikasikan panjang pesan UDP (pesan UDP
ditambah dengan header UDP) dalam satuan byte. Ukuran paling kecil
adalah 8 byte (ukuran header UDP, ketika tidak ada isi pesan UDP), dan
ukuran paling besar adalah 65515 bytes (65535 [216] -20
[ukuran header protokol IP]). Panjang maksimum aktual dari pesan UDP
akan disesuaikan dengan menggunakan nilai Maximum Transmission Unit
(MTU) dari saluran 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) |
Berisi informasi pengecekan integritas dari pesan UDP yang
dikirimkan (header UDP dan pesan UDP). Penggunaan field ini adalah
opsional. Jika tidak digunakan, field ini akan bernilai 0. |
 |
| Ilustrasi Mengenai Header UDP |
Port UDP dan Aplikasinya
Seperti halnya TCP, UDP juga memiliki saluran untuk mengirimkan informasi antar host, yang disebut dengan
UDP Port. Untuk menggunakan protokol UDP, sebuah aplikasi harus menyediakan alamat IP dan nomor UDP Port dari host yang dituju. Sebuah UDP port berfungsi sebagai 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 berbeda dengan TCP Port meskipun memiliki nomor port yang sama. Tabel di bawah ini mendaftarkan beberapa UDP port yang telah dikenal secara luas.
| Nomor Port UDP |
Digunakan 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) |
Source:
User Datagram Protocol
TCP dan UDP (Penjelasan dan Perbedaannya)