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'