TCP (Transmission Control Protocol)

Rita Ulandari
Network Evolution
Published in
4 min readMar 12, 2021

Komunikasi data memiliki berbagai tujuan salah satunya adalah data dalam ukuran besar dapat dikirimkan secara efisien cepat dengan kesalahan kecil dan efisien dari host ke host. Maka dari itu, dibutuhkan beberapa komponen untuk dapat mencapai tujuan tersebut, salah satunya adalah protokol.

TCP merupakan protokol komunikasi yang bersifat connection-oriented, artinya dapat menjaga reliabilitas hubungan komunikasi end-to-end. TCP memberikan error recovery yaitu mendeteksi terjadinya error dan melakukan recovery terhadap data yang error dengan melakukan pengiriman ulang data; flow control yaitu sinkronisasi pengiriman data antara penerima dan pengirim; serta reliabilitas yaitu memastikan data yang dikirim dapat sampai ke alamat tujuan tanpa adanya kesalahan dan sesuai dengan urutan. Konsep dasar cara kerja TCP adalah mengirim dan menerima segmen — segmen informasi dengan panjang data bervariasi pada suatu jaringan internet. TCP merupakan protokol yang paling sering digunakan pada transport layer.

  1. Format Header TCP

TCP mempunyai header yang berisi beberapa informasi yang dibutuhkan dalam proses komunikasi data. Di bawah ini merupakan gambar format header TCP.

Gambar 1. Format header TCP [1]

Pada header TCP terdapat berbagai macam field dengan fungsi yang saling berkaitan, sehingga memungkinkan proses pengiriman data berjalan sesuai protokolnya. Berikut fungsi masing-masing field pada header TCP :

a) Source Port (16 bit)

Source port merupakan nomor port perangkat yang mengirimkan permintaan suatu layanan.

b) Destination port (16 bit)

Destination port merupakan nomor port yang akan dituju dalam sebuah koneksi sesuai layanan yang dituju.

c) Sequence Number (32 bit)

Sequence number merupakan nomer urut paket data pada segmen. Paket data bisa saja sampai di tujuan dalam keadaan tidak berurut tergantung rute yang ditempuh dan kepadatan traffic-nya. Ketika sampai di host tujuan, paket data akan diurutkan kembali sehingga akan dihasilkan data seperti yang dikirimkan oleh host pengirim.

d) Acknowledge number (32 bit)

Field ini merupakan nomer urut data yang akan diterima oleh perangkat si penerima.

e) Data offset (4 bit)

Field data offset digunakan untuk menunjukkan awal field data.

f) Reserved (6 bit)

Field ini untuk kegunaan masa depan. Field ini diset 0 pada host pengirim dan diabaikan oleh penerima.

g) Control Bit — URG (1 bit)

Jika field ini dijalankan maka akan mengindikasikan sebagai data urgent yakni didahulukan dari data atau transmisi yang lain.

h) Control Bit — ACK (1 bit)

Jika field ini dijalankan akan mengindikasikan bahwa paket data yang akan boleh dikirimkan, nomor paket yang boleh dikimkan ini didefinisikan dalam header Acknowledgment Number.

i) Control Bit — PSH (1 bit)

Jika field ini dijalankan akan mengubah mode transmisi dengan mode push yaitu membersihkan data pada layer TCP.

j) Control Bit — RST (1 bit)

Field ini digunakan jika koneksi akan di-reset atau dibatalkan secara tiba-tiba, hal ini terjadi karena error dalam koneksi atau oleh interupsi yang lain.

k) Control Bit — SYN (1 bit)

Field ini digunakan jika akan memulai sebuah koneksi TCP untuk mensinkronisasi sequence number.

l) Control Bit — FIN (1 bit)

Field ini diset jika seluruh data sudah terkirim dan sesi transmisi akan diakhiri (batas akhir data).

m) Window (16 bit)

Field ini menunjukkan jumlah blok data yang mampu diterima dalam satu kali transmisi, hal ini diperlukan agar semua data dapat diterima dengan baik.

n) Checksum (16 bit)

Field ini berisi nomer yang digunakan untuk mengecek validitas pengirim dan penerima.

o) Urgent Pointer (16 bit)

Field ini berfungsi hanya jika URG pada Control Bit diset. Urgent Pointer menunjukkan lokasi data yang akan ditransmisikan dengan mode urgent.

p) Options

Field ini memiliki 3 fungsi, yaitu untuk menunjukkan end of option list, no operation, dan maximum segment size.

q) Padding

Padding digunakan untuk memenuhi panjang header merupakan kelipatan 32 bit. Jika terdapat header yang kurang, maka padding ditambahkan sampai berjumlah 32 bit (membulatkan data pada options).

2. Proses Komunikasi

Mengingat bahwa TCP merupakan protokol yang bersifat connection oriented, maka proses pertukaran data tidak bisa dilakukan begitu saja, melainkan antara host satu dan host lainnya harus melakukan negosiasi terkait sesi koneksi terlebih dahulu, barulah proses pertukaran data tersebut bisa dilakukan. Terdapat 3 tahap dalam proses komunikasi TCP, yaitu:

  1. Connection Establishment

TCP mengirimkan data menggunakan komunikasi full duplex, maka ketika ada dua perangkat yang terhubung, kedua perangkat tersebut bisa mengirimkan data secara simultan. Sehingga kedua perangkat tersebut harus menginisialisasi komunikasi dan membuat persetujuan agar pengiriman data bisa dilakukan.

2. Data Transfer

Data transfer merupakan proses di mana pengiriman data sedang berlangsung setelah koneksi antar perangkat terbentuk.

3. Connection Teardown

Connection teardown merupakan proses penutupan koneksi setelah pengiriman data selesai.

Pada tahap connection establishment, terdapat proses yang biasa disebut sebagai proses three-way handshake, dimana pada proses ini negosiasi sesi koneksi dilakukan antara host satu dan host lainnya.

Gambar 2. Three-way handshake [2]

Proses three-way handshake yang ditunjukan pada gambar 2 menunjukkan bahwa, pertama, host pengirim (client) akan mengirimkan paket SYN (synchronous). Kemudian penerima (server) merespon dengan mengirimkan paket SYN dan ACK (acknowledgment). Terakhir, pengirim membalas ACK yang berarti transmisi data siap dilakukan.

Referensi

  1. A. Singhal, “TCP Header | TCP Header Format | TCP Flags,” [Online]. Available: https://www.gatevidyalay.com/
  2. S. Gibson, “A Simple TCP/IP Implementation Enhancement to Eliminate Denial of Service (DoS) Vulnerability,” 4 May 2013. [Online]. Available: https://www.grc.com/
  3. Supriyanto, Jaringan Dasar, Jakarta: Kementerian Pendidikan & Kebudayaan, 2013.
  4. Supriyanto, Modul Pembinaan Karir Paket Keahlian TKJ “Komunikasi Data”, Jakarta: Lembaga Pengembangan dan Pemberdayaan Pendidikan Tenaga Kependidikan, 2017.
  5. S. M. Gladly C. Rorimpandey, KOMUNIKASI DATA Paket Keahlian Teknik Komputer dan Jaringan, Jakarta: Kementerian Pendidikan & Kebudayaan, 2014.

--

--