User Datagram Protocol (UDP)

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 dibawah ini menunjukkkan beberapa nomor port yang sering digunakan oleh UDP. Beberapa port dapat juga digunakan baik oleh TCP maupun UDP.

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).
SNMP menggunakan dua port yaitu 161 dan 162, masing-masing dengan kegunaan yang berbeda-beda.
 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.

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.
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.

Operasi UDP
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 tidakdapat mengirim aliran data dan mengaitkan user datagram satu sama lain. Dan juga request harus cukup kecil untuk dimuat dalam satu datagram.

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.

3.  Enkapsulasi dan Dekapsulasi

Untuk mengirimkan pesan dari satu proses ke proses yang lain, UDP mekapsulasi dan dekapsulasi pesan dalam IP datagram.

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.
,
----------------------