- TCP (Transmission Control Protocol) adalah protokol inti internet yang memungkinkan transmisi data yang andal dan berurutan bahkan di lingkungan jaringan yang tidak stabil
- Sementara IP hanya bertugas mengirimkan data antar host, TCP menangani komunikasi antarproses berbasis port serta pemulihan kesalahan, retransmisi, dan pengendalian urutan
- Melalui flow control dan congestion control, TCP menyesuaikan pengiriman agar tidak melampaui batas buffer penerima atau bandwidth jaringan
- Dengan contoh server TCP sederhana dan server HTTP yang diimplementasikan dalam bahasa C, dijelaskan secara konkret proses pembuatan socket, bind, listen, penerimaan koneksi, serta kirim-terima data
- Struktur internal TCP seperti nomor sequence·ACK, window, checksum, dan flag (SYN/ACK/FIN/RST) merupakan fondasi utama yang memungkinkan internet modern bekerja secara stabil
Kebutuhan dan Peran TCP
- IP hanya menangani pengiriman paket antar host, sedangkan untuk komunikasi antarproses dibutuhkan lapisan transport seperti TCP/UDP
- Alamat IP diibaratkan sebagai ‘gedung’, dan port sebagai ‘apartemen’, sehingga tiap aplikasi berkomunikasi dengan melakukan bind ke port
- TCP menyembunyikan ketidakstabilan jaringan seperti kehilangan paket, duplikasi, dan perubahan urutan, lalu menjamin keandalan dengan retransmisi dan checksum
- Router tetap sederhana, dan keandalan diproses di kedua ujung komunikasi, sehingga kompleksitas infrastruktur jaringan dapat dikurangi
- Berkat struktur ini, layanan internet utama seperti HTTP, SMTP, dan SSH dapat berjalan dengan stabil
Flow Control dan Congestion Control
- Pihak penerima menyimpan data sementara melalui receive buffer di kernel, dan ukuran buffer diatur dengan
net.ipv4.tcp_rmem
- Pihak pengirim menerima informasi jumlah data yang dapat diterima pihak penerima melalui field window, lalu menyesuaikan volume pengiriman
- Untuk mencegah congestion akibat perbedaan bandwidth di seluruh jaringan, TCP mengadopsi algoritme congestion control
- Mekanisme back-off ditambahkan setelah insiden congestion collapse pada tahun 1986
Contoh Server TCP dan Server HTTP
- Server echo TCP dasar yang ditulis dalam bahasa C menerima input dari klien lalu mengirimkannya kembali dengan tambahan “you sent:”
- Menggunakan Berkeley sockets API seperti
socket(), bind(), listen(), accept(), send(), dan recv()
- Saat server berada dalam
sleep(), data dari klien menunggu di receive buffer dan kemudian diproses secara berurutan
- Dalam contoh server HTTP/1.1 sederhana, server menerima permintaan melalui koneksi TCP lalu mengirim header
HTTP/1.1 200 OK beserta isi respons
- Jumlah permintaan dihitung dengan
i, dan saat menjalankan curl localhost:8080, respons ditampilkan dalam bentuk “[1] Yo, I am a legit web server”
Struktur Segmen TCP dan Field Inti
- Segmen TCP terdiri dari port sumber·tujuan, nomor sequence, nomor ACK, ukuran window, checksum, dan flag
- Port dialokasikan masing-masing 16 bit sehingga dapat menggunakan hingga 64K port
- Koneksi diidentifikasi dengan 5-tuple
(protokol, IP sumber, port sumber, IP tujuan, port tujuan)
- Nomor sequence menunjukkan rentang byte yang dikirim, sedangkan nomor ACK menunjukkan byte yang telah diterima
- Jika ada data yang hilang, ACK akan berhenti pada titik tersebut lalu diperbarui menjadi cumulative ACK setelah retransmisi
- Bit flag mengendalikan status koneksi
SYN/ACK membentuk koneksi melalui 3-way handshake
FIN mengakhiri koneksi melalui 4-way handshake
RST langsung memutus koneksi saat terjadi penghentian abnormal atau kesalahan
- Field window menunjukkan jumlah data yang dapat diterima, dan status buffer seperti
rb131072, tb16384 dapat diperiksa dengan perintah ss
- Checksum melakukan deteksi kesalahan dengan penjumlahan per unit 16 bit di dalam segmen
Kesimpulan
- TCP menjamin keandalan, urutan, dan integritas, serta membantu aplikasi tetap berjalan normal bahkan di lingkungan internet yang tidak stabil
- Beberapa dekade lalu mengirim beberapa KB saja sulit, tetapi kini streaming 4K sudah menjadi hal biasa
- Ketelitian desain dan implementasi TCP yang memungkinkan komunikasi stabil inilah yang menjadi dasar pertumbuhan internet yang berkelanjutan
Belum ada komentar.