User Datagram Protocol (UDP) Dicky Hadiyuwono 10/309324/PTK/07080 Pambudi 10/308903/PTK/07026
1. INTRODUCTION UDP sering diplesetkan dengan Unreliable Transport Protocol, karena UDP tidak memberikan service IP apapun kecuali komunikasi process-to-process dan hostto-host dan sedikit pemeriksaan kesalahan. UDP adalah protocol yang sangat sederhana dengan overhead yang minimum, jika suatu proses perlu untuk mengirim pesan yang realatif kecil dan tidak terlalu mementingkan kehandalan, tepat jika menggunakan UDP. Pengiriman pesan kecil menggunakan UDP membutuhkan interaksi antara pengirim dan penerima lebih sedikit dibandingkan bila menggunakan TCP atau SCTP. Tabel 23.1 dibawah ini menunjukkkan beberapa nomor port yang sering digunakan oleh UDP. Beberapa port dapat juga digunakan baik oleh TCP maupun UDP. Tabel 23.1 Port
Protocol
Description
7
Echo
Memngirim balik datagram ke pengirim
9
Discard
Membatalkan semua datagram yang datang.
11
Users
Pengguna/User yang aktif
13
Daytime
Memgembalikan dan tanggal
waktu
17
Quote
Mengembalikan hari
kutipan
19
Chargen
Mengembalikan serangkaian karakter
53
Nameserver Domain Name Service
67
BOOTPs
Port server untuk mendownload informasi bootstraping
1
68
BOOTPc
Port Client untuk mendownload informasi bootstrapping
69
TFTP
Trivial File Protocol
111
RPC
Remote Procedure Call
123
NTP
Network Time Protocol
1161
SNMP
Simple Network Management Protocol
162
SNMP
Simpe Management (trap)
Transfer
Network Protocol
Pada sistem UNIX port yang sering digunakan disimpan dalam file fetchservice, Setiap baris pada file ini merupakan daftar nama server dan port yang digunakan. Kita dapat menggunakan grep untuk mendapatkan aplikasi dan port yang berhubungan. Barikut ini contoh untuk port FTP (FTP dapat menggunakan port 21 baik UDP maupun TCP).
$
grep
ftp
fetchfservice
ftp
21ftcp
ftp
21udp
SNMP menggunakan dua port yaitu 161 dan 162, masing-masing dengan kegunaan yang berbeda-beda. $grep
snmp
fetclservices
snmp
161ftcp
#Simple
Net
Mgmt
Proto
snmp
1611udp
#Simple
Net
Mgmt
Proto
snmptrap
162/udp
#Traps
for
2
SNMP
1.1 User Datagram Bit
0-15
16-31
0
No Port Sumber
No Port Tujuan
31
Panjang
Chacksum
64 Data
… 65503
Gambar. Format User Datagram Paket UDP disebut user datagram, dengan ukuran header 8 byte, yang terdiri : 1. Port sumber, dengan panjang 16 bit, jika host sumber sebagai client, kebanyakan nomor port ditentukan oleh software UDP yang berjalan di host sumber, namun jika host sumber sebagai server, nomor port menggunakan port yang umum digunakan. 2. Port tujuan, panjang 16 bit, jika host tujuan adalah server, biasanya nomor port adalah yang biasa digunakan, jika host tujuan adalah client, nomor port adalah nomor yang dikopi dari nomor port sementara yang diterima pada paket.
3. Panjang data, sepanjang 16 bit menyatakan panjang total user datagram dan header. Sesungguhnya angka panjang user datagram di UDP tidak terlalu penting karena user datagram terbungkus dalam IP datragram, dan didalamnya sudah terdapat definisi panjang totalnya. Namun karena dirasa UDP akan lebih efisien bila UDP langsung memberikan panjang datagram dibanding software IP yang menyediakannya. 4. Checksum, bagian ini digunakan untuk mengetahui adanya error pada user datagram. 1.2 Checksum Perhitungan checksum pada UDP berbeda dengan IP maupun ICMP, disini checksum melibatkan 2 bagian : pseudoheader, header UDP, dan data yang berasal dari layer applikasi. Pseudoheader adalah bagian dari header paket IP pada user datagram yang dibungkus dengan mengisi beberapa bagian dengan 0. Jika checksum tidak memuat pseudoheader, user datangram mungkin masih utuh namun jika header IP rusak kemungkinan terkirim ke host yang salah.
3
Bagian kode protokol menjamin bahwa paket merupakan UDP bukan protokol layer transport lainnya. Kita akan melihat bahwa proses menggunakan UDP maupun TCP, nomer port tujuan bisa sama. Nomer dari kode protokol UDP adalah 17, jika nilai ini berubah selam transmisi, perhitungan checksum pada penerima akan mendeteksinya dan membatalkan paket UDP, jika tidak maka akan terhantarkan pada protokol yang salah.
2. Operasi UDP 2.1 Connectionless Service UDP memberikan layanan connectionless services, yang artinya setiap user datagram yang dikirim adalah datagram yang independent, Sehingga tidak ada hubungan antara datagram yang berbeda meskipun mereka berasal dari proses yang sama dan program tujuan yang sama. User datagram juga tidak dinomori, serta tidak ada koneksi yang dibangun dan tidak ada koneksi yang diputuskan, seperti pada TCP, ini artinya setiap user datagram dapat menuju tujuan yang berbeda-beda.
Salah satu hasil dari connectionless ini adalah proses menggunakan UDP tidak dapat mengirim aliran data dan mengaitkan user datagram satu sama lain. Dan juga request harus cukup kecil untuk dimuat dalam satu datagram. 2.2 Kontrol Aliran dan Galat/Error UDP sangat sederhana, protokol transport yang unreliable. Tidak ada kontrol aliran dan juga window mechanism. Penerima hanya akan dibanjiri dengan pesan yang datang.
Sedangkan untuk kontrol error UDP juga tidak ada kecuali hanya untuk checksum. Sehingga pengirim tidak tahu apakah pesannya ganda atau hilang dijalan. Ketika penerima mendapatkan kesalahan pada checksum maka user datagram akan diabaikan begitu saja secara diam-diam. 2.3 Enkapsulasi dan Dekapsulasi Untuk mengirimkan pesan dari satu proses ke proses yang lain, UDP mekapsulasi dan dekapsulasi pesan dalam IP datagram. 2.4 Antrian/Queuing Pada sisi client ketika proses dimulai maka proses akan meminta nomer port dari sistem operasi. Beberapa implementasi membuat antrian kedatangan dan pengiriman yang berkaitan untuk setiap proses, namun ada juga yang hanya membuat antrian pengiriman saja yang berkaitan dengan proses. Meskipun komunikasi melibatkan banyak proses namun port yang digunakan tetap satu. Kebanyakan antrian dimulai oleh client, yang berfungsi selama proses berjalan, ketika proses selesai maka antrian akan dihapus.
4
Proses di client dapat mngirim pesan melalui antrian pemberangkatan dengna menggunakan port number yang dikhusukan untuk meminta/raquest. UDP akan menghapus pesan satu demi satu kemudian menambahkan header UDP, lalu memberikannya ke IP. Pada antrian pemberangkatan dapat meluap, jika ini terjadi Sistem Operasi dapat meminta proses di client untuk menunggu sebelum mengirimkan pesan lagi. Ketika pesan sampai ke client, UDP akan memeriksa apakah antrian ang datang dibuat untuk nomer port sesuai dengang nomer port tujuan. Jika benar maka UDP akan meletakkan user datagram ke bagian akhir antrian, jika tida sesuai maka UDP akan membuang user datagram dan meminta protokol ICMP untuk mengirim persan "port unreachable" ke server. Semua pesan yang masuk hanya khusus untuk program client tertentu, baik dari server yang sama atau berbeda akan di kirim ke antrian yang sama. sebagai mana antrian pengiriman antrian kedatangan juga bisa meluap, jika ini terjadi maka UDP akan memutus user datagram dan meminta pesan "port unreachable" dikirim ke server. Pada sisi server, mekanisme untuk membuat antiran sedikit berbeda. Secara sederhana server miminta antiran kedatangan dan pengiriman menggunakan port yang biasa digunakan. Semua ini terjadi pada saat server mulai dan antrian akan tetap dibuka selama server aktif. Ketika ada pesan datang ke server UDP akan memeriksa apakah antrian kedatangan sudah ada untuk port number yang sesuai dengan milik penerima yang dibawa dalam user datagram. Jika ternyata antrian sudah ada UDP akan menempatkan user datagram tersebut kedalam antrian, jika antrian belum ada maka UDP akan membuangnya dan meminta protokol ICMP untuk mengirim pesan "Port Unreachable" ke client. Semua pesan yang datang untuk server tertentu, meskipun datang dari client yang berbeda akan tempatkan pada antrian yang sama. Antrian kedatangan mungkin juga untuk meluap, jika ini terjadi UDP akan membuang user datagram yang datang dan meminta agar dikirim pesan "Port unreachable" ke client. Ketika server akan memberikan respon ke client, maka akan mengirimkan pesan ke antrian pengiriman menggunakan nomor port sumber yang dibawa oleh request. UDP akan membuang pesan satu demi satu lalu menambahkan header UDP dan memberikannya ke IP. Jika antrian keluaran meluap, sistem operasi akan meminta server untuk menunggu sebelum mengirim pesan lagi. 3. Penggunaan UDP Berikut ini adalah beberapa penggunaan protokol UDP 1. UDP cocok untuk proses yang memerlukan komunikasi request-respon yang sederhana dan sedikit perhatian terhadap kendali aliran dan galat. Hal ini tidak lazim digunakan pada proses seperti FTP yang perlu untuk mengirimkan data besar.
5
2. UDP cocok untuk proses dengan mekanisme kendali aliran dan galat internal. seperti Trivial File Transfer Protokol (TFTP) dimana TFTP memiliki kendali aliran dan galat sendiri pada prosesnya. 3. UDP adalah protokol transport yang cocok untuk multicasting, Kemampuan multicasting sudah tertanam pada software UDP namun tidak pada TCP.
4. UDP dapat digunakan pada pengaturan proses seperti pada SNMP. 5. UDP dapat digunakan pada beberapa protokol untuk rutin update seperti Routing Information Protocol.
4. Perbandingan UDP dengan TCP No
TCP
UDP
1
TCP (Transmission Control Protocol) adalah protokol yang berorientasi pada koneksi, sehingga memerlukan handshaking untuk memulai komunikasi, setelah koneksi dengan TCP terjalin memungkinkan pengiriman data secara bolak-balik (bi-directional).
UDP adalah protokol koneksi yang sederhana/simple . UDP tidak melakukan persiapan koneksi sebelum mengirimkan data. Komunikasi terjadi dengan pengiriman informasi secara satu arah dari sumber tanpa adanya pemeriksaan apakan sampai atau terbaca oleh penerima.
2
Reliable – TCP mengatur pesan Unreliable – Ketika sebuah pesan untuk perkenalan (acknowledment), dikirim, maka tidak diketahui apakah pengiriman ulang dan tengang sampai ke tujuan atau tidak. waktu (time out). Jika terjadi pesan hilang selama perjalanan, server akan mengirim ulang bagian yang hilang. Secara umum TCP dirancang untuk tidak ada data yang hilang karena koneksi yang terputus dan habisnya tenggang waktu (multiple timeout)
3
Ordered, jika ada dua pesan dikirim secara berurutan maka pesan yang pertama harus diterima aplikasi terlebih dahulu, jika pecahan (segmen) data datang dengan urutan yang salah, maka TCP buffer akan menyimpannya dulu sehingga semua data bisa urut baru 6
Not Ordered – Jika dua pesan dikirimkan maka tidak dipedulikan manakah yang terlebih dahulu sampai ke penerima.
kemudian di berikan ke applikasi. 4.
Heavyweight - Sebelum memulai Lightweight – pada UDP tidak ada pengiriman data TCP pesan untuk pengurutan, tracking membutuhkan sedikitnya 3 paket connection dan sebagainya. pesan untuk memulai koneksi dengan socket.
5.
Streaming - Data terbaca sebagai Datagram – Paket dikirim secara byte stream, tidak ada pembeda individual dan di cek keadaanya ketika antara bagian-bagian yang dikirim. sampai. Setiap paket memiliki penanda yang membedakan satu dengan yang lain.
REFERENCES [1] Behrouz A. Forouzan, “Data Comunications And Networking,” Mc Graw Hill, Fourth Edition, 2007.
7