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
cwndmempengaruhi 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).cwndmembatasi 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,
cwndakan 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:
cwndakan 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:
cwnddimulai dari 1 MSS.- Setiap kali sebuah ACK diterima,
cwndditambah 1 MSS.- Hasilnya,
cwnddigandakan (doubles) setiap RTT. Proses ini bersifat eksponensial, bukan linear seperti Additive Increase.- Kapan Berhenti?
- Slow Start akan berhenti ketika
cwndmencapai nilaissthresh(Slow Start Threshold).ssthreshadalah ambang batas yang menandai perkiraan kapasitas jaringan. Setelahcwndmelewatissthresh, TCP akan beralih ke mode Additive Increase yang lebih konservatif.ssthreshawalnya diatur sangat tinggi. Namun, setiap kali terjadi loss,ssthreshakan diatur menjadi setengah dari nilaicwndsaat 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
cwndke 1 MSS dan memulai Slow Start lagi.- Sebaliknya, TCP hanya memotong
cwndsetengah (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).
- Kontrol Kemacetan TCP berfungsi untuk menyesuaikan laju pengiriman data dengan kapasitas jaringan yang tersedia, menggunakan variabel Congestion Window (
cwnd).- Strategi utamanya adalah AIMD:
cwndditambah secara linear saat koneksi lancar (Additive Increase), dan dipotong setengah saat terjadi loss yang dideteksi timeout (Multiplicative Decrease).- Slow Start digunakan untuk meningkatkan
cwndsecara 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.
Additional Information (Optional)
TCP Flavors (Reno, Tahoe, NewReno, CUBIC)
- Deskripsi di atas adalah perilaku TCP Reno, yang merupakan dasar dari banyak implementasi modern. Terdapat versi-versi lain:
- TCP Tahoe: Versi yang lebih tua. Setiap kali terjadi loss (baik via timeout maupun duplicate ACK), ia akan selalu mereset
cwndke 1 dan melakukan Slow Start.- TCP NewReno: Sedikit perbaikan dari Reno untuk menangani beberapa packet loss dalam satu window dengan lebih baik.
- TCP CUBIC: Standar di Linux. Menggunakan fungsi kubik untuk mengatur pertumbuhan
cwnd, membuatnya lebih stabil dan adil di jaringan berkecepatan tinggi.Visualisasi Perilaku TCP: Grafik Gigi Gergaji (Sawtooth)
- Jika Anda memvisualisasikan nilai
cwnddari waktu ke waktu, polanya akan terlihat seperti gigi gergaji. Nilaicwndakan naik secara perlahan dan linear (fase Additive Increase), lalu tiba-tiba anjlok (fase Multiplicative Decrease saat terjadi loss), kemudian mulai naik lagi. Pola ini menunjukkan bagaimana TCP secara konstan “menguji” batas kapasitas jaringan.Eksplorasi Mandiri
- Untuk benar-benar memahami dinamika ini, gunakan simulator jaringan seperti ns-3 atau Mininet. Anda bisa membuat topologi jaringan sederhana, menjalankan beberapa aliran data TCP, lalu secara sengaja menciptakan bottleneck (kemacetan). Dengan memplot nilai
cwnddari waktu ke waktu, Anda bisa melihat secara langsung bagaimana Slow Start, AIMD, dan Fast Recovery bekerja dalam simulasi.
