Cara Kerja Komunikasi Data dengan UDP

Cara Kerja Komunikasi Data UDP dan Perbedaannya dengan TCP

UDP (User Datagram Protocol) merupakan salah satu protokol pada lapisan transport yang digunakan untuk mengirimkan data melalui jaringan berbasis IP. UDP dirancang dengan mekanisme yang sederhana dan overhead yang rendah sehingga dapat digunakan ketika aplikasi membutuhkan komunikasi dengan latensi rendah.

Berbeda dengan TCP yang menyediakan mekanisme koneksi, acknowledgment, retransmission, dan pengurutan data, UDP mengirimkan datagram tanpa melakukan pembentukan koneksi terlebih dahulu. RFC 768 mendefinisikan UDP sebagai mekanisme pengiriman pesan dengan mekanisme protokol minimum, sehingga pengiriman dan perlindungan terhadap duplikasi tidak dijamin oleh UDP itu sendiri.

Dalam dunia industri, pemahaman mengenai UDP penting karena komunikasi antara PLC, Industrial PC, SCADA, server, perangkat monitoring, dan aplikasi industri sering melibatkan komunikasi berbasis Ethernet dan IP.

Apa Itu UDP?

UDP adalah protokol transport yang bekerja di atas IP. Fungsi utamanya adalah membawa data dari suatu aplikasi pada satu perangkat menuju aplikasi pada perangkat lain menggunakan IP address dan port number.

Secara sederhana:

IP address menentukan perangkat tujuan, sedangkan port menentukan service atau aplikasi yang menjadi tujuan komunikasi.

Contohnya:

Source IP       : 10.0.0.10
Source Port     : 4000

Destination IP  : 10.0.0.20
Destination Port : 5000

Data            : Temperature = 25.6 °C

Artinya, sebuah aplikasi pada perangkat 10.0.0.10 mengirim data kepada aplikasi yang menggunakan UDP port 5000 pada perangkat 10.0.0.20.

Bagaimana Cara Kerja UDP?

Proses komunikasi UDP dapat dijelaskan melalui beberapa tahapan.

1. Aplikasi menghasilkan data

Pertama, aplikasi pada perangkat pengirim menghasilkan data yang akan dikirim.

Misalnya sebuah sistem monitoring memperoleh data:

Temperature = 25.6 °C
Pressure    = 5.2 bar
Flow        = 125 m³/h

Data tersebut kemudian diberikan kepada UDP melalui sistem operasi.

2. UDP menambahkan header

UDP kemudian menambahkan header ke data aplikasi.

Header UDP memiliki empat field utama:

  • Source Port
  • Destination Port
  • Length
  • Checksum

Struktur sederhananya:

+----------------------+----------------------+
|      Source Port     |   Destination Port  |
+----------------------+----------------------+
|        Length        |       Checksum      |
+----------------------+----------------------+
|                  Data                       |
+---------------------------------------------+

Struktur ini merupakan format dasar UDP yang didefinisikan dalam RFC 768.

3. Datagram UDP dikirim melalui IP

Setelah UDP membentuk datagram, datagram tersebut kemudian dibawa oleh IP.

Secara konseptual:

Application Data
       ↓
UDP Header + Data
       ↓
IP Header + UDP Header + Data
       ↓
Ethernet Frame
       ↓
Network

Pada jaringan Ethernet, paket kemudian diteruskan melalui switch, router, atau perangkat jaringan lainnya sesuai dengan konfigurasi jaringan.

4. Receiver menerima paket

Pada sisi penerima, proses berlangsung secara berlawanan:

Ethernet
   ↓
IP
   ↓
UDP
   ↓
Destination Port
   ↓
Application

UDP memproses datagram berdasarkan port tujuan dan menyerahkan data kepada aplikasi yang menggunakan port tersebut.

UDP Bersifat Connectionless

Salah satu karakteristik utama UDP adalah connectionless.

Artinya, UDP tidak melakukan proses pembentukan koneksi sebelum data dikirim.

Pada TCP terdapat proses seperti:

Client ── SYN ────────> Server
Client <─ SYN/ACK ──── Server
Client ── ACK ────────> Server

Setelah proses tersebut, komunikasi data dilakukan melalui koneksi TCP.

UDP tidak membutuhkan proses tersebut:

Sender ───── UDP DATA ─────> Receiver

RFC 8085 menjelaskan bahwa UDP tidak melakukan pembentukan koneksi end-to-end sehingga tidak memiliki overhead connection establishment dan teardown seperti protokol yang connection-oriented.

Hal tersebut membuat UDP memiliki mekanisme yang lebih sederhana.

UDP Tidak Menjamin Data Sampai

Hal penting yang harus dipahami adalah bahwa UDP tidak menyediakan reliability secara bawaan.

Misalnya pengirim mengirim lima datagram:

1 → 2 → 3 → 4 → 5

Receiver dapat saja menerima:

1 → 2 → 4 → 5

Datagram nomor 3 dapat hilang di perjalanan.

UDP juga tidak menjamin bahwa datagram akan diterima dalam urutan yang sama seperti ketika dikirim. Datagram dapat hilang, terduplikasi, atau datang tidak berurutan.

UDP sendiri juga tidak melakukan retransmission.

Jika sebuah aplikasi membutuhkan:

  • acknowledgment,
  • sequence number,
  • timeout,
  • retransmission,
  • data ordering,

maka mekanisme tersebut harus disediakan oleh aplikasi atau protokol yang menggunakan UDP. Untuk aplikasi yang membutuhkan reliable dan ordered delivery, IETF merekomendasikan penggunaan protokol transport yang memang menyediakan fitur tersebut apabila memungkinkan.

UDP Memiliki Checksum

Walaupun UDP tidak menyediakan reliability seperti TCP, UDP memiliki mekanisme checksum untuk membantu mendeteksi kerusakan data.

Checksum dapat membantu receiver mengetahui apakah datagram mengalami perubahan atau kerusakan selama perjalanan.

Secara sederhana:

Sender
   │
   │ UDP Datagram
   ↓
Network
   │
   │ Data mengalami kerusakan
   ↓
Receiver
   │
   └── Checksum tidak sesuai
             ↓
       Datagram dibuang

Namun checksum UDP bukan mekanisme keamanan atau jaminan integritas end-to-end yang kuat. Untuk kebutuhan integritas data yang lebih tinggi, aplikasi dapat menggunakan mekanisme tambahan seperti CRC atau hash sesuai kebutuhan sistem.

Mengapa UDP Memiliki Overhead Rendah?

UDP hanya menyediakan mekanisme transport yang relatif minimal.

UDP tidak menyediakan beberapa mekanisme seperti:

  • Connection establishment
  • ACK untuk setiap data
  • Retransmission bawaan
  • Sequence management untuk ordered delivery
  • Flow control seperti TCP

Akibatnya, overhead protokol UDP relatif rendah.

Namun perlu dipahami bahwa UDP tidak otomatis berarti selalu lebih cepat daripada TCP dalam setiap kondisi. Keuntungan utamanya adalah mekanisme yang sederhana dan tidak memerlukan overhead koneksi serta reliability seperti TCP.

Contoh Komunikasi UDP pada Sistem Industri

Misalnya terdapat sistem:

┌─────────┐
│   PLC   │
└────┬────┘
     │
     │ Ethernet
     ↓
┌──────────────┐
│ Industrial PC│
└──────┬───────┘
       │
       │ UDP
       ↓
┌──────────────┐
│ Application  │
│ / Monitoring │
└──────────────┘

PLC dapat menghasilkan data proses secara periodik:

Time     Data
0 ms     100
100 ms   101
200 ms   102
300 ms   103
400 ms   104

Jika satu datagram hilang:

100 → 101 → [102 hilang] → 103 → 104

Untuk aplikasi tertentu yang selalu menerima data terbaru, kehilangan satu data sesaat mungkin tidak terlalu penting karena data berikutnya segera datang.

Tetapi untuk data yang harus lengkap dan berurutan, mekanisme reliability harus dipertimbangkan dengan serius.

Pemilihan UDP atau TCP sebaiknya didasarkan pada kebutuhan aplikasi, bukan hanya berdasarkan anggapan bahwa UDP selalu lebih cepat.

IP Address dan Port pada UDP

Dalam komunikasi UDP terdapat dua informasi yang sangat penting:

IP Address

IP address digunakan untuk mengidentifikasi endpoint pada jaringan IP.

Contoh:

10.10.10.20

Port

Port digunakan untuk mengidentifikasi service atau aplikasi pada endpoint tersebut.

Contoh:

UDP Port = 5000

Sehingga alamat komunikasi dapat ditulis:

10.10.10.20:5000

Secara sederhana dapat dipahami:

IP address = alamat perangkat

Port = alamat service/aplikasi

UDP memang menggunakan source port dan destination port dalam header-nya.

Perbandingan UDP dan TCP

ParameterUDPTCP
Jenis komunikasiConnectionlessConnection-oriented
Connection setupTidak adaAda
ACK bawaanTidak adaAda
RetransmissionTidak adaAda
Urutan dataTidak dijaminDijaga
ReliabilityTidak disediakan UDPDisediakan TCP
Flow controlTidak adaAda
OverheadRendahLebih tinggi
Cocok untukAplikasi yang membutuhkan mekanisme sederhana dan latency rendahData yang membutuhkan reliable dan ordered delivery

UDP dan TCP memiliki tujuan yang berbeda. UDP menyediakan transport yang minimal, sedangkan TCP menyediakan berbagai mekanisme untuk reliable, ordered delivery.

Hal yang Perlu Diperhatikan Saat Menggunakan UDP

UDP memberikan fleksibilitas kepada aplikasi, tetapi tanggung jawab desain juga menjadi lebih besar.

Jika UDP digunakan untuk aplikasi tertentu, perancang sistem perlu mempertimbangkan:

1. Packet loss

Apa yang terjadi jika sebuah paket hilang?

Apakah sistem dapat melanjutkan operasi menggunakan data berikutnya?

2. Data ordering

Apakah urutan data penting?

Jika penting, aplikasi mungkin membutuhkan sequence number.

Contohnya:

Sequence 100
Sequence 101
Sequence 102
Sequence 103

Receiver dapat mengetahui apakah ada data yang hilang atau datang tidak berurutan.

3. Timeout

Aplikasi dapat menggunakan timeout untuk mengetahui apakah komunikasi masih aktif.

Contohnya:

Data terakhir diterima
       ↓
     Timer
       ↓
Tidak ada data
       ↓
Communication Timeout

4. Retransmission

Jika data tertentu sangat penting, aplikasi dapat merancang mekanisme pengiriman ulang.

5. Congestion

UDP sendiri tidak menyediakan mekanisme congestion control seperti TCP. Karena itu, aplikasi yang menggunakan UDP perlu memperhatikan rate pengiriman agar tidak menyebabkan beban jaringan yang berlebihan. RFC 8085 memberikan pedoman khusus mengenai penggunaan UDP dan congestion control.

Kesimpulan

UDP (User Datagram Protocol) adalah protokol transport yang dirancang dengan mekanisme sederhana dan overhead rendah.

Cara kerja dasarnya adalah:

Aplikasi
   ↓
Data
   ↓
UDP Header
   ↓
IP
   ↓
Ethernet
   ↓
Network
   ↓
Receiver
   ↓
UDP
   ↓
Aplikasi

Karakteristik utama UDP adalah connectionless dan tidak menyediakan reliability, retransmission, ordering, maupun flow control seperti TCP.

Karena itu, UDP dapat menjadi pilihan untuk aplikasi yang membutuhkan komunikasi sederhana dengan latency rendah, sementara mekanisme reliability yang diperlukan harus dirancang pada tingkat aplikasi atau protokol di atas UDP.

Dalam sistem otomasi industri, pemahaman terhadap UDP menjadi penting ketika melakukan integrasi antara PLC, Industrial PC, SCADA, server, dan aplikasi berbasis jaringan.

Pada akhirnya, pemilihan UDP atau TCP harus mempertimbangkan kebutuhan sistem: apakah aplikasi lebih membutuhkan mekanisme transport yang minimal dan latency rendah, atau membutuhkan pengiriman data yang reliable dan berurutan.

Scroll to Top