UDP (User Datagram Protocol)
UDP,
singkatan dari User Datagram
Protocol yaitu suatu protokol yang berada pada lapisan transpor
TCP/IP yang bekerja pada lapisan antar host yang berguna untuk membuat
komunikasi yang bersifat connectionless. Hal ini berarti suatu paket yang
dikirim melalui jaringan dan mencapai komputer lain tanpa membuat suatu
koneksi. Sehingga dalam perjalanan ke tujuan paket dapat hilang karena tidak
ada koneksi langsung antara kedua host, jadi UDP sifatnya tidak realibel.
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 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.
- 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.
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 (216)-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.
Port
UDP
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.
Tabel di bawah ini mendaftarkan beberapa UDP port yang telah dikenal secara
luas.
Cara
Kerja UDP
- Paket
berisi port client dan port sumber berbentuk file text dikirimkan ke
server dalam UDP header
- Paket
berisi port client dan port sumber berbentuk file audio dikirimkan ke
server dalam UDP header
- UDP tujuan membaca nomor port
tujuan dan memproses data
- Paket asli memiliki port tujuan
sehingga server dapat mengirimkan data kembali ke ftfp client
- Untuk point 3 dan 4 berulang
lagi saat server menerima file audio dari client
- saat aplikasi yang ingin
mengirim data, UDP tidak akan mem-buffer atau mem-fragmen data.
- Karena UDP tidak mem-fragmen
data, jika data yang lebih besar dari MTU, lapisan IP yang harus mem-fragmen
nya
Pada internet
protocol suite , layer transport merupakan layer yang berada diatas layer network. Jika layer network berfungsi untuk
mengatur transfer data antar end
-system, maka fungsi dari layer transport ini adalah untuk
mengatur transfer data antar proses. Proses yang terjadi pada saat transfer
data ini bisa menggunakan berbagai macam protocol seperti ;UDP (User Datagram
Protocol), TCP Transmisson Control Protocol), DCCP (Diagram Congestion Control Protocol),
SCTP (Stream Control Transmission Protocol),
dan RSVP (Resource Reservation Protocol). Dimana tiap -tiap protocol tersebut memiliki karakteristik dan fungsi
yang berbeda - beda.Diantara beberapa protokol
pada layer tersebut yang paling sering digunakan adalah UDP dan TCP.
Protokol UDP
UDP merupakan protocol internet yang mengutamakan kecepatan
data. Protocol
ini biasanya digunakan untuk streaming video ataupun
fasilitas real-time yang lain.
Oleh karena itu pada UDP ini tidak memerlukan adanya setup
koneksi terlebih dahulu karena hal tersebut dapat menyebabkan adanya
tambahan delay. Selain itu, protocol ini termasuk dalam protocol yang sederhana,
artinya antara penerima dan pengirim tidak perlu menjaga session atau status koneksi ,
ukuran headernya juga sederhana. UDP ini juga tidak memerlukan congestion control (control kemacetan
) pada koneksinya. Maksudnya adalah UDP dapat mengirimkan
per segment tanpa dipengaruhi oleh kesibukan
jaringan. Berikut karakteristik lebih lanjut dari Protokol UDP :
-Connectionless, maksudnya adalah tidak ada aktifitas
handshaking antaraa UDP dan penerimanya saat akan dilakukan pengiriman data
sehingga data tersebut dikirim melalui jaringan dan mencapai ke computer tujuan
tanpa membuat suatu koneksi langsung. Hal tersebut beresiko karena data yang
dikirim bisa hilang
-Unreliable, maksudnya adalah pesan-pesan yang dikirim
menggunakan protocol ini
akan dikirim sebagai datagram tanpa adanya nomor urut atau
pesan ACK
(Acknowledgment). Hal tersebut menyebabkan pesan-pesan yang
diterima di tujuan
mungkin saja diterima dalam keadaan yang tidak urut sehingga
protocol yang
berjalan diatasnya (layer aplikasi) berpean penting dalam
memulihkan pesan-pesan
tersebut.
Contoh protocol aplikasi yang menggunakan UDP :
-DNS
-SNMP
-TFTP
-SunRPC port 111
-Dll
Protokol TCP
TCP merupakan protocol layer transport yang paling sering digunakan
di internet.
Berikut karakteristiknya :
·
Point
to point
Pada
TCP komunikasi yang dilakukan antar usernya bersifat point to point ,
maksudnya
adalah satu pengiriman data dikirim oleh satu pengirim dan hanya
diterima
oleh satu penerima juga
·
Reliable
Berbeda
dengan UDP, protocol TCP ini bersifat reliable yang artinya data yang
dikirim
menggunakan TCP ini akan dikirim dengan mekanisme tertentu agar data bisa
diterima secara berurutan, Sehingga ada jaminan data yang dikirim dengan
protocol ini bisa sampai ke tujuan dan tidak hilang.Terdapat buffer di pengirim
dan penerima
·
Full
duplex data
Pada
protocol ini memungkinkan adanya aliran data dua arah pada koneksi yang sama
·
Connection-oriented
Pada
TCP, saat pengirim akan mengirimkan data ke penerima a
kan
terjadi proses handshaking terlebih dahulu antara keduanya. Hal ini bertujuan
agar dapat melakukan sinkronisasi terhadap nomor urut dan nomor acknowledgement
yang dikirmkan kedua belah pihak dan saling bertukar ukuran TCP window
·
Flow
Control
Dengan
adanya flow control ini,aliran data yang dikirim akan selalu dikontrol
sehingga
pengirim tidak akan membuat penerima menjadi kewalahan saat
menerima
data-data yang dikirimkan tersebut.
Contoh
Aplikasi TCP :
-HTTPs
-FTP
-SMTP
Telnet
-Dll.
Membandingkan TCP dan UDP Menggunakan
Wireshark
Pada gambar
tersebut dapat dilihat perbandingan protocol layer transport antara kedua paket
tersebut. Sebelah kiri merupakan paket yang transport layernya menggunakan
protocol TCP, sedangkan gambar sebelah kanan menggunakan protocol UDP. Pada
gambar tersebut terlihat jika paket yang menggunakan protocol TCP lebih
kompleks pada layer transportnya daripada UDP. Hal tersebut terjadi Karena
kedua protocol ini memiliki karakteristik yang berbeda. Dapatkita lihat pada gambar
TCP memiliki banyak parameter yang tidak dimiliki oleh UDP pada detail paketnya
seperti space number, header length acknowledgement number, flags, SEQ/ACK
analysis,dll. Sedangkan UDP hanya memiliki beberapa parameter seperti source port,
destinat
ion port,
length, dan checksum.
Pada
detail paket TCP terlihat jika paket tersebut memiliki sequence number dan ACK
number karena pesan yang dikirim dengan TCP memiliki urutan-urutan tertentu
agar lebih akurat dalam pengirimanya. Tetapi tidak dengan paket yang dikirim
dengan protokol UDP. Pada paket detailnya dapat dilihat jika pada protokol ini
tidak memiliki urutan tertentu pada pengiriman paket
-paketnya.
Protokol ini terus menerus mengirimkan paket ke tujuan tanpa diurutkan sehingga
prosesnya akan lebih cepat apabila dibandingkan dengan proses pada protokol
TCP. Baru kemudian layer diatasnya,yaitu layer aplikasi yang berperan untuk
mengatur paket-paket yang dikirim tersebut.
UDP memiliki
karakteristik yang sederhana karena protocol ini memang dibuat untuk
mengoptimalkan kecepatan pengiriman datanya. Apabila protocol UDP diberi
parameter yang banyak dan kompleks, maka akan terjadi delay yang cukup panjang
dan akan melenceng dari tujuan utamanya yaitu mengoptimalkan kecepatan transfer
data. Paket yang menggunakan protocol ini memerlukan kecepatan data yang
optimal karena protocol ini biasanya digunakan pada aplikasi-aplikasi real time
seperti streaming video,audio,game,dll.Dapat dilihat juga pada flow graphnya
jika pada UDP ini tidak terdapat proses handshaking,yaitu Protokol UDP ini
tidak perlu membuat koneksi secara langsung terlebih dahulu untuk proses
pengiriman datanya.Pada gambar flow-graph tersebut terlihat jika pada awal
komunikasi,client langsung terus menerus mengirim pesan M Search untuk meminta
data ke server tanpa server mengirimkan ACK kembali. Kemudian pada TCP terdapat
banyak parameter pada paketnya karena protocol ini mengutamakan keandalanya
dalam pengiriman data ke tujuan. Maksudnya adalah pada protocol ini terdapat
jaminan bahwa paket yang dikirim akan sampai ke alamat
tujuan tanpa
ada kerusakan pada paket dan berurutan. Protocol ini memiliki suatu mekanisme
sendiri agar paket tersebut dapat diterima secara utuh dan berurutan. Terjadi proses handshaking terlebih dahulu pada saat akan mengirimkan
paket sehingga terjadi sinkronisasi terhadap nomor urut dan nomor
acknowledgement pada kedua belah pihak.Pada flow graphnya dapat dilihat jika
terdapat proses pembangunan suatu koneksi dahulu antara client dan server.
Client terlebih dahulu mengirimkan SYN ACK ke server kemudian server
membalasnya dengan ACK, hal itu dilakukan untuk memastikan apakah kedua end
user tersebut sudah benar-benar terhubung atau belum. Itulah mengapaTCP
memiliki banyak parameter pada paket detailnya karena terjadi proses yang cukup
kompleks pada pengiriman datanya berbeda dengan protocol UDP yang tidak
menggunakan proses handshaking pada pengiriman datanya0