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 (2)-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
-DII
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
-DII.
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,dil. Sedangkan UDP hanya memiliki beberapa parameter seperti source port, destinat ion port, length, dan checksum.
Perbandingan UDP dan TCP
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,dil.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 datanya.
Rangkuman
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.
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.
Tertarik mengikuti training di ID-Networkers (IDN.ID)? Kami menyediakan berbagai pilihan training cek disini.
Penulis : Budiman Hendry Rudolep