Back to IF2230 Jaringan Komputer

Transport Layer: Kontrol Kemacetan TCP

Questions/Cues

  • Apa itu Kontrol Kemacetan (Congestion Control)?
  • Bedakan dengan Flow Control.
  • Apa itu Congestion Window (cwnd)?
  • Bagaimana cwnd mempengaruhi pengiriman?
  • Jelaskan prinsip AIMD.
  • Apa pemicu Multiplicative Decrease?
  • Apa pemicu Additive Increase?
  • Apa tujuan Slow Start?
  • Bagaimana cara kerja Slow Start?
  • Kapan Slow Start digunakan?
  • Apa itu Congestion Threshold (ssthresh)?
  • Apa itu Fast Retransmit?
  • Apa itu duplicate ACK?
  • Bagaimana Fast Recovery bekerja?

Reference Points

  • Lecture 8

Konsep Dasar Kontrol Kemacetan

Kontrol Kemacetan adalah sekumpulan mekanisme yang digunakan oleh TCP untuk mengatur laju pengiriman datanya agar tidak membanjiri jaringan. Tujuannya adalah untuk “berbagi” sumber daya jaringan (seperti bandwidth dan buffer router) secara adil dan efisien dengan koneksi lain.

Ini berbeda dari Flow Control. Jika Flow Control bertujuan melindungi penerima, maka Congestion Control bertujuan melindungi jaringan.

  • Congestion Window (cwnd)
    • TCP memperkenalkan variabel baru di sisi pengirim yang disebut Congestion Window (cwnd).
    • cwnd membatasi jumlah data yang boleh dikirim dan belum di-ACK (in-flight).
    • Laju pengiriman efektif sekarang dibatasi oleh nilai terkecil antara Advertised Window (dari penerima) dan cwnd.
    • MaxWindow = MIN(CongestionWindow, AdvertisedWindow)

Additive Increase, Multiplicative Decrease (AIMD)

AIMD adalah strategi inti yang digunakan TCP untuk beradaptasi dengan kondisi jaringan. TCP secara aktif “mencari” kapasitas jaringan yang tersedia dengan cara ini.

  • Multiplicative Decrease (MD): Penurunan Agresif

    • Pemicu: Terjadi packet loss yang dideteksi melalui timeout. TCP mengasumsikan loss adalah sinyal kuat adanya kemacetan parah di jaringan.
    • Aksi: Ketika timeout terjadi, cwnd akan dipotong setengah (cwnd = cwnd / 2). Ini adalah langkah mundur yang cepat dan signifikan untuk segera meredakan tekanan pada jaringan.
  • Additive Increase (AI): Kenaikan Hati-hati

    • Pemicu: Koneksi berjalan lancar; pengirim berhasil mengirim satu window penuh (cwnd) dan menerima ACK untuk semua data tersebut dalam satu RTT (Round-Trip Time).
    • Aksi: cwnd akan ditambah sebesar 1 MSS (Maximum Segment Size) setiap RTT. Ini adalah langkah maju yang lambat dan linear, untuk secara bertahap memanfaatkan kapasitas jaringan yang mungkin baru tersedia.

Slow Start

AIMD terlalu lambat jika koneksi dimulai dari nol. Untuk itu, TCP menggunakan mekanisme Slow Start untuk meningkatkan laju pengiriman secara cepat di awal koneksi.

  • Cara Kerja:
    • cwnd dimulai dari 1 MSS.
    • Setiap kali sebuah ACK diterima, cwnd ditambah 1 MSS.
    • Hasilnya, cwnd digandakan (doubles) setiap RTT. Proses ini bersifat eksponensial, bukan linear seperti Additive Increase.
  • Kapan Berhenti?
    • Slow Start akan berhenti ketika cwnd mencapai nilai ssthresh (Slow Start Threshold). ssthresh adalah ambang batas yang menandai perkiraan kapasitas jaringan. Setelah cwnd melewati ssthresh, TCP akan beralih ke mode Additive Increase yang lebih konservatif.
    • ssthresh awalnya diatur sangat tinggi. Namun, setiap kali terjadi loss, ssthresh akan diatur menjadi setengah dari nilai cwnd saat itu.

Fast Retransmit & Fast Recovery

Menunggu timer timeout untuk mendeteksi loss sangat tidak efisien dan membuat koneksi terhenti lama. Mekanisme ini adalah optimisasi untuk pemulihan yang lebih cepat.

  • Fast Retransmit (Retransmisi Cepat):
    • Pemicu: Pengirim menerima tiga duplicate ACK. Sebuah duplicate ACK adalah ACK yang sama yang dikirim berulang kali oleh penerima. Ini terjadi ketika penerima mendapatkan paket yang tidak berurutan (misalnya, paket 1 dan 3 tiba, tapi paket 2 belum).
    • Aksi: Tiga duplicate ACK adalah indikasi kuat bahwa segmen setelah ACK tersebut telah hilang. Pengirim akan langsung mengirim ulang segmen yang hilang tanpa harus menunggu timer timeout habis.
  • Fast Recovery (Pemulihan Cepat):
    • Setelah Fast Retransmit, TCP tidak mereset cwnd ke 1 MSS dan memulai Slow Start lagi.
    • Sebaliknya, TCP hanya memotong cwnd setengah (seperti MD biasa) dan langsung masuk ke fase Additive Increase. Ini disebut Fast Recovery karena TCP tidak kembali ke fase Slow Start yang lambat, dengan asumsi bahwa jaringan masih mampu mentransfer beberapa data (terbukti dari datangnya duplicate ACK).

Summary

  • Kontrol Kemacetan TCP berfungsi untuk menyesuaikan laju pengiriman data dengan kapasitas jaringan yang tersedia, menggunakan variabel Congestion Window (cwnd).
  • Strategi utamanya adalah AIMD: cwnd ditambah secara linear saat koneksi lancar (Additive Increase), dan dipotong setengah saat terjadi loss yang dideteksi timeout (Multiplicative Decrease).
  • Slow Start digunakan untuk meningkatkan cwnd secara eksponensial di awal koneksi, sementara Fast Retransmit/Recovery menggunakan duplicate ACK sebagai sinyal untuk mendeteksi dan pulih dari loss lebih cepat tanpa harus menunggu timeout.