Bird
Raised Fist0
Computer Networksknowledge~10 mins

TCP flow control (sliding window) in Computer Networks - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - TCP flow control (sliding window)
Sender has data to send
↓
Check window size
↓
Send data
↓
Wait for ACK
↓
Receive ACK
↓
Slide window forward
↓
More data to send?
No→End
↩Back to Check window size
The sender checks if it can send data within the allowed window size, sends data if possible, waits for acknowledgments, and slides the window forward to send more data.
Execution Sample
Computer Networks
Window size = 4
Send packets 1,2,3,4
Receive ACK for packet 1
Slide window
Send packet 5
This example shows sending 4 packets within the window, receiving an ACK for the first packet, sliding the window, and sending the next packet.
Analysis Table
StepActionWindow StartWindow EndPackets SentACK ReceivedWindow SlidesNext Packet to Send
1Initialize window14NoneNoneNo1
2Send packets within window141,2,3,4NoneNo5
3Receive ACK for packet 1141,2,3,41Yes5
4Slide window forward by 1251,2,3,41Yes5
5Send next packet within window252,3,4,51No6
6Receive ACK for packet 2252,3,4,52Yes6
7Slide window forward by 1362,3,4,52Yes6
8Send next packet within window363,4,5,62No7
9No more ACKs received363,4,5,6NoneNo7
10Window full, wait for ACK363,4,5,6NoneNo7
💡 Sender waits because window is full and no new ACKs received to slide window.
State Tracker
VariableStartAfter Step 2After Step 4After Step 5After Step 7Final
Window Start112233
Window End445566
Packets SentNone1,2,3,41,2,3,42,3,4,52,3,4,53,4,5,6
ACK ReceivedNoneNone1122
Next Packet to Send155667
Key Insights - 3 Insights
Why does the sender stop sending new packets even if it has more data?
Because the window is full (see Step 10 in execution_table), the sender must wait for ACKs to slide the window before sending more packets.
What does sliding the window mean in this context?
Sliding the window means moving the window start and end forward after receiving ACKs (see Steps 3 and 4), allowing the sender to send new packets.
Why is the next packet to send updated only after sliding the window?
Because the sender can only send packets within the current window range; sliding the window opens space for new packets (see Steps 4 and 5).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at Step 3. What packet ACK is received?
APacket 4
BPacket 1
CPacket 2
DNo ACK received
💡 Hint
Check the 'ACK Received' column at Step 3 in execution_table.
At which step does the window slide forward for the first time?
AStep 4
BStep 2
CStep 5
DStep 10
💡 Hint
Look for 'Window Slides' marked 'Yes' and the window start changing in execution_table.
If the sender receives no ACKs after Step 8, what happens next?
ASender continues sending new packets
BSender slides window forward anyway
CSender waits because window is full
DSender resets the connection
💡 Hint
See Steps 9 and 10 where no ACKs are received and the sender waits.
Concept Snapshot
TCP sliding window controls data flow by limiting unacknowledged packets.
Sender can send packets within the window size.
ACKs slide the window forward, allowing more packets to be sent.
If window is full, sender waits for ACK before sending more.
This prevents overwhelming the receiver and network.
Full Transcript
TCP flow control uses a sliding window to manage how much data the sender can transmit before needing an acknowledgment. The sender starts with a window size that defines how many packets it can send without waiting. It sends packets within this window and waits for acknowledgments (ACKs) from the receiver. When an ACK is received for the earliest packet, the window slides forward by one, allowing the sender to send the next packet. If the window is full and no ACKs are received, the sender must wait before sending more data. This mechanism ensures smooth data flow and prevents network congestion or receiver overload.

Practice

(1/5)
1. What is the main purpose of the sliding window in TCP flow control?
easy
A. To control the amount of data sent before receiving an acknowledgment
B. To encrypt data during transmission
C. To assign IP addresses to devices
D. To route packets between networks

Solution

  1. Step 1: Understand the role of sliding window in TCP

    The sliding window limits how much data the sender can transmit before waiting for an acknowledgment from the receiver.
  2. Step 2: Identify the purpose among options

    Only To control the amount of data sent before receiving an acknowledgment describes controlling data flow using acknowledgments, which matches the sliding window's purpose.
  3. Final Answer:

    To control the amount of data sent before receiving an acknowledgment -> Option A
  4. Quick Check:

    Sliding window controls data flow = To control the amount of data sent before receiving an acknowledgment [OK]
Hint: Sliding window limits unacknowledged data sent [OK]
Common Mistakes:
  • Confusing flow control with encryption
  • Mixing routing with flow control
  • Thinking sliding window assigns IPs
2. Which of the following correctly describes the sliding window size in TCP?
easy
A. It is fixed and never changes during the connection
B. It is set by the IP address of the sender
C. It is always equal to the maximum segment size (MSS)
D. It increases or decreases based on acknowledgments received

Solution

  1. Step 1: Recall how sliding window size behaves

    The window size changes dynamically as acknowledgments arrive, allowing the sender to send more data.
  2. Step 2: Match behavior to options

    It increases or decreases based on acknowledgments received correctly states the window size adjusts based on acknowledgments, unlike fixed size or unrelated factors.
  3. Final Answer:

    It increases or decreases based on acknowledgments received -> Option D
  4. Quick Check:

    Window size changes with ACKs = It increases or decreases based on acknowledgments received [OK]
Hint: Window size changes with ACKs, not fixed [OK]
Common Mistakes:
  • Assuming window size is fixed
  • Confusing window size with MSS
  • Linking window size to IP address
3. Consider a TCP connection with a window size of 4 segments. The sender has sent segments 1 to 4. The receiver acknowledges segment 2. Which segments can the sender send next?
medium
A. Segments 5, 6, and 7
B. Segments 3 and 4 again
C. Segments 5 and 6
D. No new segments until all are acknowledged

Solution

  1. Step 1: Understand sliding window movement after ACK

    When segment 2 is acknowledged, the window slides forward, allowing sending of new segments beyond 4.
  2. Step 2: Calculate which segments fit in the window

    Window size is 4, segments 1 and 2 acknowledged, so segments 3 and 4 are still unacknowledged. The sender can send segments 5 and 6 to fill the window.
  3. Final Answer:

    Segments 5 and 6 -> Option C
  4. Quick Check:

    ACK 2 slides window, send next 2 segments = Segments 5 and 6 [OK]
Hint: ACK moves window; send new segments within window size [OK]
Common Mistakes:
  • Resending unacknowledged segments unnecessarily
  • Sending more segments than window size allows
  • Waiting for all segments to be acknowledged
4. A TCP sender has a window size of 3 segments and has sent segments 1, 2, and 3. The receiver sends an acknowledgment for segment 1 only. The sender mistakenly sends segment 4 and 5 immediately. What is the problem with this behavior?
medium
A. It violates the sliding window limit and may cause congestion
B. It improves throughput by sending more data
C. It is correct because ACK 1 means all previous segments are received
D. It causes the receiver to close the connection

Solution

  1. Step 1: Analyze window size and ACK received

    The window size is 3, and only segment 1 is acknowledged, so segments 2 and 3 are still unacknowledged.
  2. Step 2: Identify why sending segments 4 and 5 is wrong

    Sending segments 4 and 5 exceeds the allowed window size, risking congestion and data loss.
  3. Final Answer:

    It violates the sliding window limit and may cause congestion -> Option A
  4. Quick Check:

    Sending beyond window size causes issues = It violates the sliding window limit and may cause congestion [OK]
Hint: Don't send beyond window size before ACKs arrive [OK]
Common Mistakes:
  • Assuming ACK 1 means all segments received
  • Ignoring window size limits
  • Thinking sending more data always helps
5. In a TCP connection, the sender's window size is 5 segments. The receiver's buffer can only hold 3 segments. How should the sliding window mechanism adapt to prevent buffer overflow?
hard
A. The sender should keep sending 5 segments regardless
B. The sender should reduce the window size to 3 segments
C. The receiver should increase its buffer size to 5 segments
D. The sender should stop sending any segments

Solution

  1. Step 1: Understand receiver buffer limits

    The receiver can only hold 3 segments, so sending more than 3 risks overflow and data loss.
  2. Step 2: Adjust sender window size accordingly

    The sliding window size must match or be less than the receiver's buffer to avoid overflow, so the sender should reduce its window size to 3.
  3. Final Answer:

    The sender should reduce the window size to 3 segments -> Option B
  4. Quick Check:

    Sender window ≤ receiver buffer to prevent overflow = The sender should reduce the window size to 3 segments [OK]
Hint: Match sender window to receiver buffer size [OK]
Common Mistakes:
  • Ignoring receiver buffer size
  • Assuming receiver buffer can always expand
  • Stopping sending completely without reason
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard