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

Sliding Window

স্লাইডিং উইন্ডো

প্রতি packet-এর ACK-এর অপেক্ষা না করে একসাথে window-তুল্য data পাঠানোর কৌশল, receiver-এর buffer এটার সীমা ঠিক করে।

Stop-and-wait-এ প্রতি segment-এর পর পুরো RTT অলস বসে থাকা — bandwidth পোড়ে অপচয়ে। Sliding window ভাঙে এই অপেক্ষা: window জুড়ে data সামনে চলতেই থাকে, ACK আসলে জানালা সরে।

send buffer: [acked][sent-unacked][can-send][blocked]
                      └─────── window ───────┘
ACK এলে বাম প্রান্ত ডানে সরে, ডান প্রান্ত নতুন data ঢোকে

দুই ধরনের window

  • Receive window (rwnd) — receiver-এর বাকি buffer space; প্রতিটা segment-এ advertise হয় → flow control
  • Congestion window (cwnd) — sender-এর network-সম্পর্কে নিজস্ব অনুমান → congestion control

Effective limit = min(rwnd, cwnd)। Header-এর window field 16-bit (৬৪ KB cap); bandwidth-delay product বড় path-এ window scale option এটাকে shift করে বহুগুণ বাড়ায়। rwnd=0 এলে sender থেমে zero-window probe পাঠায় — receiver জেগে উঠলে জানাবে।

ss -tin dst example.com | grep -E 'cwnd|rcv_space'