Foundationপ্রথম নীতি থেকে
LEVEL 7 · Computer Networking

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ভিত্তিনোট
Renolossclassic AIMD sawtooth
CUBICloss, cubic growthLinux-এর দীর্ঘদিনের default
BBRdelay/model estimateloss-as-signal বাদ, bufferbloat-এ ভালো

ECN-এ router drop-এর আগেই mark করে warning দেয় — loss-এর অপেক্ষা আগে জানা যায়।

sysctl net.ipv4.tcp_congestion_control
ss -tin | grep -E 'cwnd|ssthresh'