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.
Pada tulisan kali ini
saya akan coba membandingkan dua protocol yang paling sering digunakan di
internet yaitu UDP dan TCP.
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
TCP
TCP
merupakan protocol layer transport yang paling sering digunakan di internet.
Berikut karakteristiknya :
-
Point to point
Pada TCP komunikasi
yang dilakukan antar user-nya 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 akan 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.
Membandingkan
TCP dan UDP Menggunakan Wireshark
Pertama-tama capture-lah paket-paket pada suatu jaringan yang
menggunakan TCP dan UDP, kemudian pilih salah satu paket masing-masing untuk
UDP dan TCP dan liat detail dari paket tersebut khususnya pada layer transport-nya. Berikut contohnya
Pada
gambar diatas dapat dilihat perbandingan protocol layer transport antara kedua
paket tersebut. gambar yang bawah merupakan paket yang transport layer-nya menggunakan protocol TCP, sedangkan gambar yang atas menggunakan protocol UDP. Pada gambar tersebut terlihat jika
paket yang menggunakan protocol TCP lebih kompleks daripada layer transportnya
daripada UDP. Hal tersebut terjadi Karena kedua protocol ini memiliki
karakteristik yang berbeda. Dapat kita 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, destination port, length, dan checksum.
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,dll.
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. Itulah mengapa
terdapat 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.