Bird
Raised Fist0
Computer Networksknowledge~6 mins

Flow control (stop-and-wait, sliding window) in Computer Networks - Full Explanation

Choose your learning style10 modes available
Introduction
Imagine sending a letter to a friend and waiting for their reply before sending the next one. This slow process can waste time if the friend takes long to respond. Flow control in networks solves this problem by managing how data is sent and received to avoid overload and delays.
Explanation
Stop-and-Wait Flow Control
In stop-and-wait, the sender sends one data packet and then waits for an acknowledgment from the receiver before sending the next packet. This ensures the receiver is ready and prevents data loss, but it can be slow because the sender is idle while waiting.
Stop-and-wait sends one packet at a time and waits for confirmation before continuing.
Sliding Window Flow Control
Sliding window allows the sender to send multiple packets before needing an acknowledgment, up to a set window size. The receiver can accept and acknowledge packets in order, and the window slides forward as acknowledgments arrive, improving efficiency and speed.
Sliding window sends multiple packets at once, increasing data flow and efficiency.
Real World Analogy

Imagine a teacher handing out worksheets to students. With stop-and-wait, the teacher gives one worksheet and waits for the student to finish before giving the next. With sliding window, the teacher gives several worksheets at once, and as students finish, the teacher gives more.

Stop-and-Wait Flow Control → Teacher giving one worksheet at a time and waiting for it to be finished before giving the next
Sliding Window Flow Control → Teacher handing out multiple worksheets at once and giving more as students complete them
Diagram
Diagram
Stop-and-Wait:
Sender: [Pkt1] --send--> Receiver: [Ack1]
Sender: [Pkt2] --send--> Receiver: [Ack2]

Sliding Window:
Sender: [Pkt1][Pkt2][Pkt3][Pkt4] --send--> Receiver: [Ack1][Ack2]
Window slides forward as acks arrive
This diagram shows stop-and-wait sending one packet and waiting for acknowledgment, and sliding window sending multiple packets before acknowledgments.
Key Facts
Flow Control → A method to manage data transmission rate between sender and receiver to prevent overload.
Stop-and-Wait → A flow control method where the sender waits for an acknowledgment after each packet.
Sliding Window → A flow control method allowing multiple packets to be sent before receiving acknowledgments.
Window Size → The maximum number of unacknowledged packets the sender can transmit in sliding window.
Common Confusions
Believing stop-and-wait is always better because it is simpler.
Believing stop-and-wait is always better because it is simpler. Stop-and-wait is simpler but inefficient for long delays; sliding window improves speed by sending multiple packets.
Thinking sliding window sends packets without any limit.
Thinking sliding window sends packets without any limit. Sliding window has a fixed window size that limits how many packets can be sent before waiting for acknowledgments.
Summary
Flow control prevents the sender from overwhelming the receiver by managing data transmission rates.
Stop-and-wait sends one packet at a time and waits for acknowledgment, ensuring reliability but with low efficiency.
Sliding window allows multiple packets to be sent before acknowledgment, improving data flow and network efficiency.

Practice

(1/5)
1. Which flow control method sends one packet and waits for an acknowledgment before sending the next?
easy
A. Stop-and-Wait
B. Sliding Window
C. Multiplexing
D. Routing

Solution

  1. Step 1: Understand Stop-and-Wait flow control

    Stop-and-Wait sends one packet and waits for an acknowledgment before sending the next packet.
  2. Step 2: Compare with other methods

    Sliding Window sends multiple packets before waiting, while Multiplexing and Routing are unrelated to flow control.
  3. Final Answer:

    Stop-and-Wait -> Option A
  4. Quick Check:

    One packet at a time = Stop-and-Wait [OK]
Hint: One packet then wait means Stop-and-Wait [OK]
Common Mistakes:
  • Confusing Sliding Window with Stop-and-Wait
  • Thinking Multiplexing is a flow control method
  • Mixing routing with flow control
2. Which of the following correctly describes the sliding window flow control method?
easy
A. Sends one packet and waits for acknowledgment
B. Sends multiple packets before waiting for acknowledgment
C. Sends packets without any acknowledgment
D. Sends packets only after a timeout

Solution

  1. Step 1: Recall sliding window behavior

    Sliding Window sends multiple packets before waiting for acknowledgment to improve speed.
  2. Step 2: Eliminate incorrect options

    Sends one packet and waits for acknowledgment describes Stop-and-Wait. The other options do not describe standard flow control methods.
  3. Final Answer:

    Sends multiple packets before waiting for acknowledgment -> Option B
  4. Quick Check:

    Multiple packets sent = Sliding Window [OK]
Hint: Multiple packets sent before wait means Sliding Window [OK]
Common Mistakes:
  • Choosing Stop-and-Wait for sliding window question
  • Thinking no acknowledgment is used
  • Confusing timeout with acknowledgment wait
3. Consider a sliding window protocol with window size 4. If the sender has sent packets 1, 2, 3, and 4, but only packets 1 and 2 are acknowledged, which packets can the sender send next?
medium
A. Packets 5 and 6
B. Packets 3, 4, and 5
C. Packets 5, 6, 7, and 8
D. Packets 3, 4, 5, and 6

Solution

  1. Step 1: Understand sliding window acknowledgments

    Packets 1 and 2 are acknowledged, so the window slides forward by 2 packets.
  2. Step 2: Calculate new window range

    Window size is 4, so after acknowledging 1 and 2, sender can send packets 5 and 6 (next two packets).
  3. Final Answer:

    Packets 5 and 6 -> Option A
  4. Quick Check:

    Window slides by acknowledged packets = Packets 5 and 6 [OK]
Hint: Window slides by acknowledged packets count [OK]
Common Mistakes:
  • Trying to resend unacknowledged packets
  • Sending too many packets beyond window size
  • Not sliding window after acknowledgments
4. A stop-and-wait protocol implementation is not receiving acknowledgments and keeps resending the same packet. What is the most likely cause?
medium
A. The sender is sending multiple packets at once
B. The sender window size is too large
C. The receiver is not sending acknowledgments
D. The network is using sliding window instead

Solution

  1. Step 1: Analyze stop-and-wait behavior

    Stop-and-wait waits for acknowledgment before sending next packet; no acknowledgment causes resending.
  2. Step 2: Identify cause of no acknowledgment

    If acknowledgments are missing, likely the receiver is not sending them or they are lost.
  3. Final Answer:

    The receiver is not sending acknowledgments -> Option C
  4. Quick Check:

    No acknowledgment = Resend same packet [OK]
Hint: No ack means receiver not responding [OK]
Common Mistakes:
  • Blaming sender window size in stop-and-wait
  • Confusing sliding window with stop-and-wait
  • Assuming multiple packets sent in stop-and-wait
5. In a sliding window protocol with window size 5, the sender transmits packets 1 to 5. Packets 2 and 3 are lost, but packets 1, 4, and 5 are acknowledged. Which packets should the sender retransmit next to maintain correct flow control?
hard
A. Packets 6 and 7
B. Packets 2, 3, and 6
C. Packets 2, 3, 4, and 5
D. Packets 2 and 3 only

Solution

  1. Step 1: Identify lost packets

    Packets 2 and 3 are lost, so they need retransmission.
  2. Step 2: Understand acknowledgments impact

    Packets 1, 4, and 5 are acknowledged, so only lost packets 2 and 3 must be resent before sending new packets.
  3. Final Answer:

    Packets 2 and 3 only -> Option D
  4. Quick Check:

    Retransmit lost packets only = Packets 2 and 3 [OK]
Hint: Retransmit only lost packets, not acknowledged ones [OK]
Common Mistakes:
  • Retransmitting already acknowledged packets
  • Sending new packets before lost ones
  • Confusing lost packets with acknowledged packets
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