Latest News

TCP dan UDP

Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP) merupakan dua protokol terpenting dalam layer transport. Keduanya digunakan oleh banyak sekali aplikasi TCP/IP. Pada postingan kali ini kita akan melihat lebih jauh wacana kedua protokol tersebut.

TCP

Protokol TCP memiliki karakteristik sebagai berikut:
  • Connection Oriented
  • Reliable
  • Byte stream service
TCP merupakan protokol yang bersifat connection oriented. Artinya sebelum proses transmisi data terjadi , dua aplikasi TCP harus melaksanakan pertukaran kontrol info (handshaking). TCP juga bersifat reliable alasannya yaitu menerapka fitur deteksi kesalahan dan transmisi apabila ada data yang rusak. Sehingga keutuhan data dapat terjamin. Sedangkan byte stream service artinyapaket akan dikirimkan ke tujuan secara berurutan (squencing).

Protokol TCP bertanggung jawab untuk pengiriman data dari sumber ke tujuan dengan benar. TCP dapat mendeteksi kesalahan atau hilangnya data dan melaksanakan pengiriman kembali hingga data diterima dengan lengkap. TCP selalu meminta konfirmasi setiap kali data dikirim , untuk memastikan apakah data telah hingga di kawasan tujuan. Kemudian TCP akan mengirimkan data berikutnya atau melaksanakan retransmisi (pengiriman ulang) apabila data sebelumnya tidak hingga atau rusak. Data yang dikirim dan diterima kemudian diatur berdasarkan nomor urut.

Untuk memenuhi tujuan tersebut (squencing , error checksum , dan retransmission) pada header protokol TCP berikut ini. Segmen TCP terdiri atas header dan data. Kita mampu melihat ada filed khusus untuk Squence , Checksum , Acknowledgement.

bagan segmen tcp

Keterangan:
  • Source port (16 bits) , berisi info port pengirim
  • Destination port (16 bits) , berisi info port penerima
  • Squence number , (32 bits) , berupa squence number yang terdiri atas dua kondisi berikut. Jika flag SYN di-set (yang ada di bab field flags) , maka field ini berisi awal (inisial) dari squence number. Jika flag SYN tidak di-set , maka nilai pada field ini merupakan squence number.
  • Acknowledgement atau ACK (32 bits) , kalau flag ACK di-set , maka nilai pada field ini yaitu nilai squence number berikutnya yang di-harapkan oleh penerima
  • Data offset (4 bits) , menawarkan ukuran TCP heaer , Total header sepanjang 32-bit words. Ukuran minimunm header yaitu 5 words. Data offset juga merupakan awal dari data.
  • Reserved (4 bit) untuk keperluan tertentu di masa yang akan datang. Nilai pada field ini semestinya yaitu zero (nol) 
  • Flag (8 bits) , field untuk kontrol bit (masing-masing 1 bit) , yaitu: CWR (Congestion window reduce) , ECE (ECE-Echo) , URG (URGent) , ACK (ACKnowledgment) , PSH (Push Function) , RST (Reset) , SYN (Synchronize) FIN (Finish)
  • Window (16 bit) ,menunjukkan ukuran window pertama (receive window). Agar data dapat diterima dengan baik maka diharapkan pengaturan ukuran jumlah byte optimal yang ditentukan oleh field ini
  • Checksum (16 bits) , digunakan untuk error-checking dari header dan data
  • Urgent pointer (16 bits) , digunakan untuk squence number yang menunjukan urgent data byte terakhir
  • Options (variable bits) berisi banyak sekali opsi berupa angka sebagai berikut: 0-end of options list , 1-No operation (NOP , Padding) , 2-Maximum segment size , 3-Window scale , 4-Selective Acknowledgement , 5 ,6 ,7 , 8-Timestamp
  • Data berisi data yang dikirim.
Berikut ini ilustrasi komunikasi menggunakan TCP antara host A dan host B. Pada gambar terlihat bahwa untuk memulai membuka suatu kekerabatan , host A harus terlihat dahulu mengirimkan paket SYN. Setelah host B mendapatkan paket tersebut , lalu mengirim paket SYN serta meng-ACK paket SYN yang berasal dari host A. Setelah host A mendapatkan paket ini , ia akan meng-ACK serta mengirimkan data miliknya. Koneksi kemudian terbuka.

ilustrasi pengiriman data menggunakan TCP

Setelah koneksi terbuka , host A mengirim paket data yang sudah diberi nomor. Setiap kali sebuah paket tiba di host B , maka host B akan mengeceknya dan mengirim ACK yang menunjukan paket telah diterima dengan selamat. Proses ini berlangsung berulang-ulang hingga paket dikirim semuanya dengan selamat.

Setelah paket terakhir diterima , host A mengirim ACK dan FIN yang meminta host B untuk memutuskan koneksi. Host B akan meng-ACK dan mengirim paket FIN kepada host A. Selanjutnya host A meng-ACK pake FIN yang berasal dari host B , maka koneksipun di putuskan.

Protokol TCP sangat cocok digunakan untuk koneksi yang membutuhkan kehandalan tinggi , ibarat aplikasi telnet , SSH , FTP , HTTP dan beberapa layanan lainnya.

UDP

UDP merupakan protkokol yang bersifat connectionless oriented. Artinya ketika melaksanakan pengiriman data tidak dilakukan proses handshaking , tidak ada squencing datagram , dan tidak ada garansi bahwa [aket data (datagram) yang dikirim akan tiba dengan selamat. UDP juga tidak menyediakan fitur-fitur koreksi kesalahan.

UDP hanya menyediakan kemudahan multiflexing aplikasi (via nomor port) dan integritas verifikasi/deteksi kesalahan (via checksum) yang disediakan pada header dan payload. Deteksi kesalahan dalam UDP hanya bersifat opsional. Untuk menghasilkan transmisi data yang reliable , haruslah dibantu dan dilakukan di tingkat aplikasi. Tidak mampu dikerjakan di tingkat protokol UDP. Pengiriman paket dilakukan berdasarkan "best effort basis".

bagan segmen udp
Keterangan:
  • Source port (16 bits) , berisi info port pengiriman
  • Destination port 916 bits) , berisi info port penerima
  • Length 916 bits) , menunjukan panjang total (dalam byte) seluruh datagram (header+data). Panjang minimum yaitu 8 byte , sedangkan panjang maksimum 65 ,507 byte
  • Checksum , digunakn untuk error-checking header dan data
  • Data , berisi data
Overhead yang diharapkan untuk mengirimkan datagram atau paket UDP sangatlah kecil. Sehingga UDP cocok untuk digunakan pada aplikasi yang membutuhkan query dan response cepat. Contoh layanan yang cocok untuk UDP yaitu transmisi audio/video , seperti: VoIP , audio/video streaming. UDP kurang baik kalau digunakan untuk mengirimkan paket berukuran besar. Karena dapat memperbesar peluang jumlah paket yang loss atau hilang/rusak.

0 Response to "TCP dan UDP"