Now imagine 5000 vehicles trying to enter the same road at the same time. The road itself may still be working, but traffic becomes slow, queues grow and eventually movement almost stops.
A computer network can face the same problem. When too many packets enter the network compared with the available bandwidth, buffers and processing capacity, we get network congestion.
Congestion occurs when the traffic offered to a network becomes greater than the capacity of network resources such as links, routers, buffers or processors.
As congestion increases, packets wait longer in queues, delay rises, buffers may overflow and packets may be dropped.
Congestion can be controlled using techniques such as traffic shaping, admission control, scheduling, queue management, feedback mechanisms, Leaky Bucket, Token Bucket and TCP congestion-control algorithms.
What Is Congestion in Computer Networks?
Congestion is a condition in which the network receives more traffic than its available resources can handle efficiently.
These resources include:
- Link bandwidth
- Router buffers
- Router processing capacity
- Output interfaces
Limited Output Capacity
How Does Congestion Develop?
Suppose a router can forward 1000 packets per second through an outgoing link.
Now imagine its incoming interfaces together deliver 1600 packets per second.
The extra packets cannot immediately leave.
Packets first wait in the router buffer.
If the buffer becomes full, newly arriving packets may be dropped.
Main Causes of Network Congestion
High Traffic Load
Too many packets enter the network within a short period.
Low Bandwidth
A slow outgoing link becomes a bottleneck for faster incoming traffic.
Limited Router Buffers
Queues cannot hold unlimited packets. Full buffers cause drops.
Slow Router Processing
A router may not process incoming packets quickly enough.
Traffic Bursts
A sudden burst can temporarily exceed the capacity of links and buffers.
Excessive Retransmissions
Unnecessary retransmitted packets add even more traffic to an already busy network.
Poor Routing
Many flows may be directed through the same path while another path remains underused.
Many-to-One Traffic
Several sources sending toward one destination or output link can overload that path.
Speed Mismatch
Fast incoming interfaces feeding a slow outgoing interface can create queues.
Symptoms of Congestion
Effects of Congestion
Congestion does not simply make a network “a little slow”.
It can create a chain reaction:
- Queue length increases.
- Packet delay increases.
- Buffers become full.
- Packets are dropped.
- Senders may retransmit lost packets.
- Extra retransmissions add more load.
- The network can become even more congested.
What Is Congestion Collapse?
At first, increasing traffic usually increases useful throughput.
But after a point, too much traffic may create so much packet loss and retransmission that useful throughput stops improving.
In severe situations, useful throughput can fall sharply.
Flow Control vs Congestion Control
| Point | Flow Control | Congestion Control |
|---|---|---|
| Main Problem | Sender may send faster than receiver can process | Network may receive more traffic than it can handle |
| Focus | Sender and receiver | Routers, links and overall network load |
| Protected Resource | Receiver capacity | Network capacity |
| Typical Example | Receiver window | TCP congestion window, traffic shaping |
| Question Asked | Can the receiver accept more? | Can the network carry more? |
Goals of Congestion Control
- Prevent router queues from overflowing unnecessarily.
- Keep packet delay under control.
- Maintain high useful throughput.
- Reduce unnecessary retransmissions.
- Share network capacity fairly.
- React when network load becomes excessive.
Main Approaches to Congestion Control
Open-Loop Congestion Control
Tries to prevent congestion before it happens.
The system uses policies designed to control traffic without depending mainly on continuous feedback from the congested network.
Closed-Loop Congestion Control
Detects congestion and reacts to feedback.
The network or endpoints observe congestion signs and then reduce or regulate traffic.
Open-Loop Congestion Control
Open-loop techniques are preventive.
The idea is to design communication rules that reduce the chance of congestion developing.
Closed-Loop Congestion Control
Closed-loop control uses feedback.
Packets enter
Delay / Queue / Loss
Reduce sending rate
Examples include:
- Backpressure
- Choke packets
- Explicit signalling
- TCP congestion control
Retransmission Policy
Retransmission is necessary when data is lost.
But retransmitting too early can create duplicate packets.
During congestion, unnecessary retransmissions are especially harmful because they add more load to an already busy network.
Window Policy
A sending window controls how much data can remain outstanding.
A very large amount of outstanding data can inject more traffic into the network.
Congestion-control mechanisms therefore regulate how much data a sender may place in flight.
Acknowledgement Policy
Acknowledgements also consume bandwidth.
Sending an ACK for every tiny amount of data can create extra traffic.
Delayed or cumulative acknowledgement mechanisms can reduce some ACK overhead when designed correctly.
Discard Policy
When router buffers become full, some packets may need to be discarded.
A discard policy determines which packets should be dropped.
The exact policy depends on the queue-management method and application requirements.
Admission Control
Admission control asks:
Bandwidth + Buffer + Policy
Resources Available
Resources Insufficient
Admission control is especially useful when a network wants to protect quality guarantees.
What Is Traffic Shaping?
Traffic shaping controls how fast packets enter the network.
Instead of allowing a source to send a huge burst instantly, traffic can be regulated.
Two famous traffic-shaping algorithms are:
- Leaky Bucket
- Token Bucket
Leaky Bucket Algorithm
Imagine a bucket with a small hole at the bottom.
Water may enter the bucket at different speeds, but it leaves through the hole at a controlled rate.
Leaky Bucket applies the same idea to packets.
BUCKET
How Does Leaky Bucket Work?
- Packets arrive and enter the bucket or queue.
- The bucket has limited capacity.
- Packets leave at a controlled output rate.
- If packets arrive faster than they leave, the queue fills.
- If the bucket becomes full, additional packets may be discarded.
Advantages
- Produces a controlled output rate.
- Reduces sudden bursts entering the network.
- Simple concept.
Limitation
It does not naturally preserve the ability to send a large burst later simply because the sender was idle earlier.
Token Bucket Algorithm
Token Bucket works differently.
Tokens are generated at a controlled rate and stored in a bucket up to some maximum capacity.
To transmit data, the sender must consume tokens.
How Does Token Bucket Work?
- Tokens are generated at rate r.
- The bucket can store up to B tokens.
- If the sender is idle, tokens accumulate.
- When data arrives, stored tokens allow a burst to be transmitted.
- If insufficient tokens are available, transmission must wait or be controlled according to the implementation.
Leaky Bucket vs Token Bucket
| Point | Leaky Bucket | Token Bucket |
|---|---|---|
| Main Goal | Smooth traffic into a controlled output stream | Control average rate while allowing controlled bursts |
| Idle Time | Does not store transmission credit in the same way | Tokens can accumulate during idle time |
| Bursts | Strongly smooths bursts | Allows bursts if tokens are available |
| Control Object | Packet queue / bucket | Token availability |
| Best Memory | Fixed leak | Saved tokens |
Backpressure
Backpressure is a congestion-control method where a congested node asks an upstream node to reduce or stop sending traffic toward it.
The congestion signal can move backward through upstream routers.
Choke Packet
A choke packet is a control message sent toward the source to tell it that congestion has been detected.
Queue Too High
After receiving the notification, the source reduces its traffic rate.
Implicit Congestion Signalling
In implicit signalling, the sender does not receive a direct congestion message.
Instead, it guesses congestion from symptoms such as:
- Packet loss
- Timeouts
- Increasing delay
- Duplicate acknowledgements
Explicit Congestion Signalling
In explicit signalling, routers or network devices directly indicate congestion.
The signal may tell the sender or receiver that traffic should be reduced.
Explicit Congestion Notification — ECN
ECN allows congestion to be signalled by marking packets instead of always waiting for packet loss.
Packet Marked
Sending Rate Reduced
TCP Congestion Control
TCP does not simply send unlimited data as fast as possible.
It uses congestion-control mechanisms to estimate how much data the network can currently carry.
Important ideas include:
- Congestion Window
- Slow Start
- Congestion Avoidance
- Fast Retransmit
- Fast Recovery
- AIMD
Congestion Window — cwnd
The congestion window is maintained by the TCP sender.
It limits how much unacknowledged data the sender may have in the network because of congestion considerations.
Larger cwnd → More data may be in flight. Smaller cwnd → Sender becomes more careful.
The actual sending amount is also affected by receiver flow control.
where:
- cwnd = congestion window
- rwnd = receiver advertised window
Slow Start Threshold — ssthresh
TCP uses a threshold called:
It helps determine when TCP should move from rapid Slow Start growth to slower Congestion Avoidance growth.
TCP Slow Start
The name sounds like TCP grows slowly, but the window can actually grow quickly during Slow Start.
TCP begins with a relatively small congestion window and increases it rapidly as acknowledgements arrive.
In the simplified textbook model, cwnd roughly doubles each round-trip time while all data is being acknowledged and Slow Start continues.
RTT 1
cwnd = 1 unitRTT 2
cwnd ≈ 2 unitsRTT 3
cwnd ≈ 4 unitsRTT 4
cwnd ≈ 8 unitsTCP Congestion Avoidance
After cwnd reaches the threshold, TCP becomes more careful.
Instead of rapid exponential-style growth, congestion avoidance uses slower approximately linear growth in the classic model.
AIMD — Additive Increase Multiplicative Decrease
AIMD is one of the most important congestion-control ideas.
Increase
Decrease
Fast Retransmit
TCP does not always need to wait for a retransmission timeout before suspecting a lost segment.
If the sender receives several duplicate acknowledgements, it can infer that a segment is probably missing.
In classic TCP behaviour, receiving three duplicate ACKs can trigger Fast Retransmit.
Fast Recovery
After Fast Retransmit, some TCP variants use Fast Recovery rather than returning completely to the beginning of Slow Start.
The idea is that duplicate ACKs indicate packets are still moving through the network, so the connection may not be completely blocked.
What Happens After a Timeout?
A retransmission timeout is treated as a strong sign of congestion.
In the classical teaching model:
- ssthresh is reduced.
- cwnd is reduced sharply.
- Slow Start begins again.
Queue Management
Routers must decide how to manage packets waiting for transmission.
If queues are allowed to grow too large:
- Delay becomes high.
- Buffers eventually overflow.
- Packets are dropped.
Queue-management techniques try to control this behaviour.
Tail Drop
Tail Drop is simple.
Packets are accepted until the queue becomes full.
After the buffer is full, newly arriving packets are dropped.
RED — Random Early Detection
RED tries to react before a queue becomes completely full.
As the average queue size grows, RED can begin dropping or marking some packets probabilistically.
The intention is to signal congestion earlier and avoid always waiting for complete buffer overflow.
Packet Scheduling
When many packets are waiting, the router must decide which packet should be transmitted next.
Common scheduling ideas include:
- FIFO
- Priority scheduling
- Round-robin style scheduling
- Fair queuing approaches
FIFO
First packet to arrive is normally served first.
Priority Scheduling
Higher-priority traffic may be transmitted before lower-priority traffic.
Fair Queuing
Attempts to share output capacity more fairly among different traffic flows or queues.
Solved Congestion Control Numericals
Numerical 1: Router Queue Growth
A router receives:
Extra packets entering the queue each second:
Numerical 2: Buffer Fill Time
Suppose:
Time to fill:
Numerical 3: Token Bucket
Token generation rate:
If the bucket becomes completely full while the sender is idle, it stores burst credit of:
Ignoring other limits, the source can use this accumulated credit for a controlled burst while its long-term rate remains governed by token generation.
Numerical 4: Slow Start Window Growth
Assume simplified Slow Start begins at:
After each RTT:
Numerical 5: Effective TCP Window
Suppose:
Effective usable window:
Common Exam Mistakes
Wrong. Flow control mainly protects the receiver. Congestion control protects network resources.
Wrong. After heavy congestion begins, useful throughput may stop increasing and can fall.
Wrong. Larger buffers can delay overflow but cannot create additional link bandwidth.
Wrong. Leaky Bucket strongly smooths traffic, while Token Bucket can allow controlled bursts using stored tokens.
Wrong. In the simplified model, Slow Start grows cwnd rapidly, approximately doubling it each RTT.
Wrong. cwnd is the sender's congestion-control window. rwnd is advertised by the receiver.
Wrong. Its purpose is to retransmit based on duplicate ACK evidence before the normal timeout expires.
Wrong. Tail Drop normally begins dropping when the queue is full.
Wrong. RED is designed to provide earlier congestion indication through probabilistic dropping or marking.
Wrong. ECN can mark packets to signal congestion without relying only on drops.
40 Important Congestion Control Questions With Answers
20 Congestion Control MCQs With Answers
A. Offered traffic exceeds available network capacity
B. Screen brightness becomes low
C. A file is compressed
D. DNS name changes
A. Increased queueing delay
B. Larger monitor size
C. Lower HTML size
D. Faster keyboard
A. Receiver
B. Router table
C. DNS server only
D. Cable colour
A. Network resources
B. Keyboard
C. HTML page
D. MAC address only
A. Leaky Bucket
B. Dijkstra
C. Bresenham
D. RSA
A. Controlled bursts
B. No traffic
C. Only fixed-size packets
D. Unlimited traffic
A. Regulated
B. Unlimited
C. Random only
D. Always zero
A. Backpressure
B. ARP
C. CRC only
D. DNS
A. Signal congestion to a source
B. Increase image size
C. Assign MAC addresses
D. Encrypt frames
A. Congestion Window
B. Control Wide Network Data
C. Congestion Wire Node
D. Current Window Number
A. Slow Start Threshold
B. Static Send Threshold
C. Shortest State Threshold
D. Server Speed Threshold
A. Rapidly
B. Never
C. Only after connection closes
D. By decreasing it
A. Additive Increase Multiplicative Decrease
B. Automatic Internet Multiple Data
C. Additive Internet Management Delay
D. Adaptive Internal Metric Division
A. Three duplicate ACKs
B. One normal ACK
C. No connection
D. Five routers
A. Tail Drop
B. RED
C. Token Bucket
D. CHAP
A. Random Early Detection
B. Routing Error Data
C. Rapid Ethernet Delivery
D. Random End Delay
A. Packet marking
B. Keyboard interrupts
C. DNS names
D. Image tags
A. Token Bucket
B. Leaky Bucket only
C. Tail Drop
D. FIFO only
A. 300 packets/s
B. 2100 packets/s
C. 900 packets/s
D. 0
A. More carefully than Slow Start
B. Infinitely fast
C. Only by decreasing it
D. Without ACKs
Frequently Asked Questions
What is congestion in simple words?
Congestion means too many packets are trying to use limited network resources at the same time.
What are the main causes of congestion?
High traffic load, low bandwidth, limited router buffers, slow processing, traffic bursts and unnecessary retransmissions are common causes.
What is the difference between flow control and congestion control?
Flow control prevents the sender from overwhelming the receiver, while congestion control prevents excessive traffic from overwhelming the network.
What is traffic shaping?
Traffic shaping regulates how quickly packets enter a network so traffic bursts are controlled.
What is Leaky Bucket?
Leaky Bucket is a traffic-shaping technique that stores arriving packets and releases them at a controlled rate.
What is Token Bucket?
Token Bucket generates tokens at a controlled rate and allows data to be transmitted when enough tokens are available.
What is TCP Slow Start?
Slow Start begins with a relatively small congestion window and increases it quickly while acknowledgements indicate that the network is carrying the traffic successfully.
What is AIMD?
AIMD means Additive Increase Multiplicative Decrease. It increases the sending window gradually when the network is healthy and reduces it significantly when congestion occurs.
What is Fast Retransmit?
Fast Retransmit retransmits a suspected lost TCP segment after duplicate ACK evidence without waiting for the normal retransmission timeout.
What is RED?
RED is Random Early Detection, a queue-management technique that can drop or mark packets probabilistically before the queue becomes completely full.
What is ECN?
ECN is Explicit Congestion Notification and allows compatible routers and endpoints to signal congestion by marking packets rather than relying only on packet loss.
What is congestion collapse?
Congestion collapse is a severe condition where excessive traffic and retransmissions cause useful throughput to fall sharply.
Quick Congestion Control Revision
Final Memory Trick:
Traffic too high → Queue grows → Delay rises → Buffer fills → Packets drop.
Prevent with shaping → Detect with feedback → Reduce traffic → Keep the network stable.
