Mengenal Apa Itu TCP dan UDP

 Mengenal Apa Itu TCP dan UDP


    Protokol TCP/IP memiliki 2 protokol pada lapisan transport, yakni UDP dan TCP. TCP (Transmission Control Protocol) dan UDP (User Datagram Protocol) adalah protokol jaringan yang mentransfer data Anda melalui internet dari perangkat ke server web. UDP merupakan salah satu tipe protokol yang mempunyai karakteristik tidak berbasis koneksi, sebaliknya, TCP menggunakan koneksi. 

    Salah satu cara kerja TCP dan UDP adalah dengan membagi data Anda menjadi unit-unit kecil yang kemudian disebut paket data. Paket data berisi IP pengirim dan penerima, berbagai konfigurasi, isi data yang Anda kirim, dan cuplikan data yang menunjukkan akhir dari paket. Perbedaan jelas antara UDP dan TCP terdapat pada cara pemindahannya. 

Kapan menggunakan TCP atau UDP dalam penerapannya?

Penerapan TCP:

  1. Penjelajahan Web: TCP digunakan untuk memuat halaman web, karena memastikan pengiriman paket data yang andal, menjaga integritas konten web.
  2. Transfer File: Saat mentransfer file besar melalui jaringan, TCP menjamin bahwa semua paket data diterima dengan benar, sehingga ideal untuk protokol transfer file seperti FTP (File Transfer Protocol) dan SFTP (Secure File Transfer Protocol).
  3. Komunikasi Email: TCP memastikan bahwa pesan email dikirimkan dengan andal, mencegah kehilangan atau kerusakan data selama transmisi.
  4. Komunikasi Basis Data: TCP biasanya digunakan untuk komunikasi antara aplikasi klien dan server basis data, karena memastikan transfer kueri dan respons basis data yang andal.

Penerapan UDP:

  1. Komunikasi Real-time: UDP sering digunakan untuk aplikasi real-time dengan kecepatan kritis dan latensi rendah, seperti layanan streaming suara dan video seperti VoIP (Voice over IP) dan aplikasi konferensi video.
  2. Game Online: UDP lebih disukai untuk game online, karena memprioritaskan transmisi data yang lebih cepat dan pembaruan waktu nyata, sehingga memungkinkan gameplay yang lancar.
  3. Pencarian DNS: UDP digunakan untuk pencarian DNS (Sistem Nama Domain), di mana waktu respons yang cepat sangat penting untuk menyelesaikan nama domain ke alamat IP.
  4. Aplikasi IoT (Internet of Things): UDP cocok untuk perangkat IoT tertentu yang memerlukan transmisi data cepat dengan overhead rendah, seperti sensor atau sistem pemantauan waktu nyata.

TCP


Gambar 1.1 Posisi TCP dalam rotokol TCP/IP dan OSI

Komunikasi process-to-process

Lapisan data link bertanggung jawab untuk
pengiriman frame antara dua node yang bertetangga melalui sebuah link. Ini disebut pengiriman node-to-node. Lapisan jaringan bertanggung jawab atas pengiriman datagram antara dua host. Ini disebut pengiriman host-to-host. Komunikasi di Internet tidak didefinisikan sebagai pertukaran data antara dua node atau antara dua host. Komunikasi nyata terjadi antara dua proses. Sehingga diperlukan penyampaian process-to-process.

Lapisan transport bertanggung jawab atas pengiriman proses-ke-proses-pengiriman paket, bagian dari pesan, dari satu proses ke proses lainnya. Gambar berikut menunjukkan ketiga jenis pengiriman dan domainnya.

Gambar 1.2 Tiga jenis pengiriman dan domainnya

Nomor Port

Client melakukan proses pada host lokal dan membutuhkan layanan atau service untuk sebuah proses pada host yang lain, yang disebut server. Proses yang dilakukan oleh client dan server memiliki jenis dan nama proses yang sama.

Sistem operasi yang digunakan saat ini sudah mendukung lingkungan multiuser dan multiprogramming. Tentu saja, ini dapat menjalankan banyak proses dalam satu host, baik server maupun client. Sebelum melanjutkan, penting untuk menentukan poin-poin komunikasi ini:
  • Local host
  • Local process
  • Remote host
  • Remote process
Local host dan remote process menggunakan alamat IP, tetapi proses membutuhkan nomor port. Dalam protokol TCP/IP, nomor port adalah bilangan integer yang berkisar dari 0 hingga 65.535. Protokol TCP/IP telah memutuskan untuk menetapkan penggunaan nomor port yang digunakan untuk server yang spesifik, nomor port tersebut adalah well-known port numbers.

IANA membagi nomor port dalam 3 kelompok yakni:
  •  Well-known ports : nomor port ini bermula dari 0 sampai 1.023.
  •  Registered ports : nomor ini ini bermula dari 1.024 samapai 49.151.
  •  Dynamic ports : nomor port dimulai dari 49.152 sampai 65.535

Tabel 1.1 Port well-nown yang digunakan pada TCP

Layanan TCP

  • Stream Data Service
TCP melakukan layanan stream data pada lapisan transport. Untuk pengiriman stream, pengirim dan penerima TCP menggunakan buffer. Data yang dilalukan secara streaming itu berupa segmen-segmen
  • Layanan Full-Duplex
TCP memberikan juga layanan full-duplex, di mana dta dapat berpindah dalam dua arah pada saat bersamaan.
  • Layanan Reliabel
TCP merupakan protokol di lapisan transport yang sifatnya reliabel. Karena TCP menggunkan mekanisme acknowledgment.

Segmen

Unit data yang diransfer melalui TCP disebut segmen. Segmen memuat 20-60 byte header.


Gambar 1.3 Format segmen TCP

Dalam TCP, terdapat beberapa flag yang digunakan dalam header segmen TCP untuk mengontrol proses koneksi. Berikut adalah penjelasan singkat tentang setiap flag:

1. URG (Urgent): Mengindikasikan bahwa data yang terkandung dalam segmen memiliki prioritas tinggi dan perlu diproses dengan cepat oleh penerima.

2. ACK (Acknowledgement): Mengindikasikan bahwa nilai acknowledgement dalam segmen adalah valid dan mengonfirmasi penerimaan data sebelumnya.

3. PSH (Push): Menunjukkan bahwa pengirim meminta agar data segera "dipaksa" (pushed) ke lapisan aplikasi penerima tanpa menunggu buffer penuh.

4. RST (Reset): Digunakan untuk mereset koneksi TCP. Ini biasanya dikirim ketika terjadi kesalahan fatal atau ketika koneksi perlu dihentikan secara paksa.

5. SYN (Synchronize): Digunakan selama proses pembentukan koneksi untuk menyinkronkan nomor urut antara pengirim dan penerima.

6. FIN (Finish): Digunakan untuk menandai akhir dari pengiriman data dalam koneksi TCP. Ini menunjukkan bahwa pengirim telah selesai mengirim data dan ingin menutup koneksi.

Option

Opsi TCP adalah bagian keenam dari Analisis Header TCP . Terletak di akhir header dan tepat sebelum bagian Data, ini memungkinkan kita memanfaatkan penyempurnaan baru yang direkomendasikan oleh para insinyur yang membantu merancang protokol yang kita gunakan dalam komunikasi data saat ini.

Ada 5 macam opsi TCP:
  • Maximum Segment Size (MSS): Menentukan ukuran maksimum segmen data yang dapat dikirim.
  • Window Scaling: Memperbesar ukuran jendela TCP untuk meningkatkan throughput.

  • SACK (Selective Acknowledgements): Memungkinkan penerima memberikan informasi tentang segmen mana yang telah diterima dengan benar, mengurangi overhead dalam pengiriman ulang.

  • Timestamps: Menempatkan waktu di dalam header TCP untuk mengatur waktu RTT dan menghindari pengurutan ulang paket yang salah.

  • NOP (No Operation): opsi TCP yang digunakan untuk memberikan padding dalam header TCP.

Timer TCP

Timer dalam TCP digunakan untuk mengatur pengiriman dan penerimaan paket secara tepat waktu. Berikut adalah timer yang umum dalam TCP:

  • Retransmission Timer: Mengatur waktu tunggu untuk pengiriman ulang segmen yang tidak terkonfirmasi.
  • Persistence Timer: Mengatur waktu tunggu untuk mengaktifkan koneksi yang terhenti.
  • Keepalive Timer: Mengatur waktu interval untuk mengirim segmen keepalive dan memeriksa keaktifan koneksi.
  • Time-wait Timer: Menentukan waktu tunggu sebelum host membebaskan sumber daya setelah menutup koneksi.

Operasi Dalam TCP

TCP beroperasi sebagai berikut:
  1. 1. Enkapsulasi dan Dekapsulasi: TCP menambahkan informasi (header) ke data sebelum dikirim (enkapsulasi) dan menghapusnya saat data diterima (dekapsulasi).
  2. 2. Queuing: TCP mengatur data yang akan dikirim dalam antrian tunggu jika sumber daya tidak tersedia saat ini.
3. Multiplexing dan Demultiplexing: TCP memungkinkan banyak koneksi menggunakan satu saluran komunikasi (multiplexing) dan memisahkan data yang masuk ke koneksi yang tepat (demultiplexing).
4. Pushing Data: TCP dapat mengirim data kepada penerima tanpa diminta (pushing) ketika kondisi jaringan memungkinkan.

UDP

UDP (User Datagram Protocol) adalah protokol komunikasi dalam komputer yang beroperasi di lapisan transport dalam model OSI (Open Systems Interconnection). Berbeda dengan TCP (Transmission Control Protocol), UDP merupakan protokol tanpa koneksi, yang berarti tidak ada pembentukan koneksi terlebih dahulu sebelum data dikirim, dan tidak ada mekanisme pemulihan kesalahan atau pengaturan aliran. UDP berfokus pada pengiriman data yang cepat dan sederhana tanpa kebutuhan untuk konfirmasi atau pemulihan kesalahan.

Fungsi UDP

  1. Streaming Media: UDP sering digunakan dalam aplikasi streaming media seperti video dan audio secara real-time. Dalam kasus ini, kecepatan pengiriman data lebih penting daripada keandalan, sehingga UDP lebih cocok karena tidak ada overhead yang terkait dengan pengiriman ulang atau pemulihan kesalahan.
  2. Game Online: Banyak game online menggunakan UDP untuk mentransmisikan data antara server dan klien. Hal ini karena UDP menawarkan latensi yang lebih rendah daripada TCP, yang penting dalam permainan yang membutuhkan respons cepat dari server.
  3. DNS (Domain Name System): Protokol UDP sering digunakan untuk permintaan DNS yang cepat. Permintaan DNS sering kali sederhana dan kehilangan beberapa paket tidak kritis karena aplikasi DNS umumnya akan melakukan permintaan ulang jika tidak ada respons.
  4. VoIP (Voice over IP): Aplikasi VoIP seperti panggilan suara melalui internet menggunakan UDP karena kecepatan pengiriman data yang penting untuk mempertahankan kualitas panggilan real-time.
  5. Sensor dan IoT (Internet of Things): Dalam beberapa kasus, UDP digunakan dalam aplikasi sensor dan IoT di mana data yang dikirim adalah sensor reading yang dapat diabaikan jika beberapa paket hilang.
  6. Broadcast dan Multicast: UDP digunakan untuk mentransmisikan data dalam mode broadcast atau multicast, di mana paket data dikirim ke beberapa tujuan secara bersamaan.
  7. Aplikasi yang Membutuhkan Kecepatan Tinggi: UDP sering digunakan dalam aplikasi yang memerlukan kecepatan tinggi dan overhead komunikasi yang rendah, seperti transfer file besar, video game online, dan komunikasi antara perangkat dalam jaringan lokal.


Desain UDP


    Well Known Port UDP


Socket Adress

Seperti diketahui bahwa UDP membutuhkan 2 identifier, yakni alamat IP dan nomor port. Keduanya jika dikombinasikan akan membentuk socket address


User Datagram

Paket UDP disebut user datagram. User datagram ini memiliki ukuran header yang tetap sebesar 8 byte.

Desain UDP


Kelebihan dan Kelemahan UDP

Kelebihan:

  • Hanya membutuhkan resource kecil.
  • Bisa digunakan untuk mengirim pesan secara broadcast.
  • Tidak membutuhkan negosiasi di awal sehingga pembuatan koneksi lebih cepat.

Kelemahan:

  • Tidak bisa melakukan buffering.
  • Tidak mendukung mekanisme flow control.
  • Tidak bisa mengirim data yang ukurannya terlalu besar.

Source:



Komentar