---
title: "Flow control mechanisms in data communication"
subject: "Telecommunications"
chapter: 8
key: "semester_8/telecommunications:flow-control-mechanisms"
source: https://www.bctengineer.com/q/semester_8/telecommunications/flow-control-mechanisms
site: BCT Engineering
---

# Flow control mechanisms in data communication

Telecommunications · Chapter 8: Data Communication

- Asked in: 2075 Chaitra, 6 marks
- Video: [Flow Control || Data Link Layer Design Issues|| Stop and Wait Protocol ||  Sliding Window Protocol](https://www.youtube.com/watch?v=0Ico08tGVHU) — Sudhakar Atchala
- Answer checked by Claude Opus 5.5 (high effort) on 2026-10-14
- Page: https://www.bctengineer.com/q/semester_8/telecommunications/flow-control-mechanisms
- Whole chapter: https://www.bctengineer.com/md/semester_8/telecommunications/chapter-8

## Question

Discuss about the various types of flow control mechanisms used in data communication.

## Short answer

Flow control prevents a fast sender from overrunning a slow receiver. Mechanisms include stop-and-wait, sliding window, credit-based window, rate-based leaky/token bucket, and start-stop XON/XOFF or RTS/CTS. They operate hop-by-hop, at network access, or end-to-end.

## Answer

**Flow control** is the set of procedures that stop a fast sender from overrunning a slow receiver (or an intermediate node) with more data than it can buffer and process. The receiver tells the sender how much it may send, or when to stop.

#### 1. Stop-and-wait flow control
- The sender sends one frame and waits for an acknowledgement (ACK) before sending the next.
- The receiver controls flow simply by delaying the ACK.
- Simple, but poor efficiency on long or fast links. Link utilisation:
$$
U = \frac{1}{1 + 2a}, \qquad a = \frac{t_{prop}}{t_{frame}}
$$

#### 2. Sliding window flow control
- The sender may send up to **W** frames before receiving an ACK. Frames carry sequence numbers (modulo $2^k$, window ≤ $2^k - 1$).
- Each ACK slides the window forward; the receiver can also send **RNR (Receive Not Ready)** to close the window.
```text
 sent+ACKed | sent, not ACKed | can send | cannot
  0 1 2     |  3 4 5          |  6 7     | 8 9 ...
            |<------- window W = 5 --->|
```
- Utilisation is 1 if $W \ge 2a + 1$, else $U = \dfrac{W}{1+2a}$. Used in HDLC, X.25 and TCP.
- Combined with error control: **Go-back-N ARQ** and **Selective-repeat ARQ**.

#### 3. Credit-based (window) end-to-end control
The receiver advertises a credit or window size (e.g. TCP receive window). The sender may send only that many bytes; a window of 0 stops it.

#### 4. Rate-based control
The source is limited to an agreed rate. **Leaky bucket** gives a constant output rate; **token bucket** allows limited bursts. Used in ATM and QoS networks.

#### 5. Start–stop (on/off) control
- **XON/XOFF** characters in software (DC1/DC3) on serial links.
- **RTS/CTS** or DTR/DSR hardware lines in RS-232 modems.
- **Choke packets / back-pressure:** a congested node tells the source or previous node to slow down.

#### Levels of flow control
| Level | Between | Example |
|---|---|---|
| Hop-by-hop (link) | Adjacent nodes | HDLC window |
| Network access | Host and network | X.25 packet level |
| End-to-end | Source and destination hosts | TCP window |

Good flow control avoids buffer overflow, packet loss and retransmissions, and keeps throughput high.

## Check yourself

The answer's key points as multiple-choice questions, with the correct option and why.

1. What is flow control meant to prevent?
   A. Bit errors caused by noise
   B. A fast sender overrunning a slow receiver's buffer
   C. Unauthorised access to the channel
   D. Routing loops
   Answer: B. Flow control stops the sender from sending more data than the receiver can buffer and process. (Key point: Purpose of flow control)

2. In stop-and-wait, U = 1/(1+2a). What is a?
   A. Frame time divided by propagation time
   B. Propagation time divided by frame transmission time
   C. Window size divided by frame size
   D. ACK time divided by timeout
   Answer: B. a = t_prop / t_frame; a large a (long or fast links) makes utilisation poor. (Key point: Stop-and-wait utilisation)

3. When does sliding window give utilisation 1?
   A. W < 2a + 1
   B. W = 1
   C. W >= 2a + 1
   D. Only when a = 0 is false
   Answer: C. If the window covers the round trip, W >= 2a+1, the sender never idles; otherwise U = W/(1+2a). (Key point: Sliding window utilisation)

4. How do leaky bucket and token bucket differ in rate-based control?
   A. Leaky bucket gives constant output rate; token bucket allows limited bursts
   B. Leaky bucket allows bursts; token bucket gives constant rate
   C. Both stop the sender with XOFF
   D. Both are used only in RS-232
   Answer: A. Leaky bucket smooths output to a constant rate; token bucket allows limited bursts using saved tokens. (Key point: Leaky vs token bucket)

## Related in Telecommunications

- [Flow control in data communication network](https://www.bctengineer.com/question.md?key=semester_8%2Ftelecommunications%3Aflow-control-network) — Telecommunications, chapter 8
- [Routing, flow control and dynamic routing](https://www.bctengineer.com/question.md?key=semester_8%2Ftelecommunications%3Arouting-flow-control-dynamic) — Telecommunications, chapter 8
- [Switching techniques in data communication](https://www.bctengineer.com/question.md?key=semester_8%2Ftelecommunications%3Aswitching-techniques-data-comm) — Telecommunications, chapter 8, asked 3×
- [Short note: Routing algorithm in data communication](https://www.bctengineer.com/question.md?key=semester_8%2Ftelecommunications%3Arouting-algorithm-data-comm) — Telecommunications, chapter 8, asked 2×

## Related in other subjects

- [Basic data transfer mechanisms in USB](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Ausb-transfer-mechanisms) — Instrumentation II, chapter 3
- [Concurrency control goals and mechanisms](https://www.bctengineer.com/question.md?key=semester_7%2Fdistributed_system%3Acc-goals-mechanisms) — Distributed System, chapter 8
- [Short note: DLL flow control](https://www.bctengineer.com/question.md?key=semester_7%2Fcomputer_networks_and_security%3Adll-flow-control) — Computer Networks and Security, chapter 3
- [USB standards and data transfer mechanisms](https://www.bctengineer.com/question.md?key=semester_5%2Finstrumentation_ii%3Ausb-standards-transfer-mech) — Instrumentation II, chapter 3
