Congestion Control
কনজেশন কন্ট্রোল
Network অতিরিক্ত ভরে যাওয়া আটকাতে sender নিজের sending rate যেভাবে নিয়ন্ত্রণ করে, loss আর delay-কে signal ধরে।
Router queue ভরলে packet drop হয়; TCP সেই drop-কে congestion
signal ধরে rate সামলায়। rwnd receiver-এর সীমা, cwnd sender-এর
অনুমান — send limit = min(cwnd, rwnd)। Flow control রক্ষা
করে receiver-কে, congestion control রক্ষা করে network-কে।
State machine
- Slow start — প্রতি RTT-তে cwnd দ্বিগুণ (exponential), ssthresh পার হলে
- Congestion avoidance — প্রতি RTT-তে এক MSS (linear probing)
- Loss — timeout হলে cwnd=1, slow start আবার; ৩টা dupACK হলে fast retransmit + halving (fast recovery)
Flavor
| flavor | ভিত্তি | নোট |
|---|---|---|
| Reno | loss | classic AIMD sawtooth |
| CUBIC | loss, cubic growth | Linux-এর দীর্ঘদিনের default |
| BBR | delay/model estimate | loss-as-signal বাদ, bufferbloat-এ ভালো |
ECN-এ router drop-এর আগেই mark করে warning দেয় — loss-এর অপেক্ষা আগে জানা যায়।
sysctl net.ipv4.tcp_congestion_control
ss -tin | grep -E 'cwnd|ssthresh'