Congestion Control

What is Congestion Control?

Congestion control is a set of techniques used by connection-oriented protocols like TCP to prevent network congestion by controlling the amount of data sent into the network.

Why is Congestion Control useful?

It helps maintain network performance and avoids packet loss or delays caused by overwhelming network resources, ensuring fair bandwidth usage among multiple users.

How does Congestion Control work?

TCP uses algorithms like Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery to dynamically adjust the sending rate based on network feedback and detected packet loss.

Where is Congestion Control used?

It is used in all TCP-based communications across the internet and private networks to maintain reliable and efficient data transmission.

Which OSI layer does Congestion Control belong to?

Congestion control mechanisms are implemented at the Transport Layer (Layer 4) of the OSI model.

Is Congestion Control Windows specific?

No, congestion control algorithms are part of the TCP implementation on all major operating systems including Windows, Linux, and macOS.

Is Congestion Control Linux specific?

No, Linux implements TCP congestion control with various algorithms, and this functionality is common across all platforms supporting TCP.

Which Transport Protocol uses Congestion Control?

TCP (Transmission Control Protocol) primarily uses congestion control techniques to manage network traffic.

Is Congestion Control using client-server model?

Yes, congestion control is used in client-server communication to ensure that data flows efficiently and fairly between sender and receiver.

  • In this section, you are going to learn

  • Terminology

  • Version Info

  • setup

Congestion Control - Testcases

S.No

Test Case

Description

Expected Result

1

Normal Traffic

Send data under normal conditions

No congestion detected

2

High Traffic Volume

Send large data quickly

Congestion detected

3

Sudden Traffic Spike

Abrupt increase in traffic

Congestion control triggered

4

Packet Loss Detection

Simulate packet loss

Congestion control activated

5

Timeout Detection

Simulate timeout

Congestion window reduced

6

Duplicate ACKs

Send duplicate ACKs

Fast retransmit triggered

7

Triple Duplicate ACKs

Send 3 duplicate ACKs

Fast recovery initiated

8

Slow Start Phase

Begin connection

Exponential window growth

9

Congestion Avoidance Phase

After slow start

Linear window growth

10

Fast Retransmit

Detect loss via ACKs

Retransmit lost packet

11

Fast Recovery

Recover from loss

Resume transmission smoothly

12

Window Size Increase

Increase congestion window

Throughput improves

13

Window Size Decrease

Decrease window after loss

Throughput reduced

14

Zero Window Size

Receiver sets window to 0

Sender pauses transmission

15

Window Probe

Probe zero window

Receiver responds with window update

16

RTT Measurement

Measure round-trip time

RTT calculated accurately

17

Bandwidth Estimation

Estimate available bandwidth

Bandwidth used efficiently

18

Buffer Overflow

Simulate buffer overflow

Congestion detected

19

Queue Delay

Increase queue delay

Congestion signaled

20

ECN Enabled

Use Explicit Congestion Notification

ECN flags processed

21

ECN Disabled

Disable ECN

No ECN flags used

22

Random Early Detection

Drop packets early

Congestion avoided

23

TCP Reno Behavior

Use Reno algorithm

Reno phases executed correctly

24

TCP Tahoe Behavior

Use Tahoe algorithm

Tahoe phases executed correctly

25

TCP Cubic Behavior

Use Cubic algorithm

Cubic growth observed

26

TCP BBR Behavior

Use BBR algorithm

Bandwidth-based control applied

27

Congestion Window Saturation

Max out window size

No further growth allowed

28

Congestion Window Reset

Reset window after loss

Window set to initial value

29

ACK Delay

Delay ACKs artificially

RTT increases, window adjusted

30

ACK Burst

Send burst of ACKs

Window grows rapidly

31

Retransmission Timeout

Trigger RTO

Congestion window reset

32

Multiple Loss Events

Simulate multiple losses

Multiple recovery phases triggered

33

No Congestion

Send small data

No control triggered

34

Idle Connection

No data sent for long

Window remains unchanged

35

Reconnection

Reconnect after termination

Slow start initiated again

36

Flow Control Interaction

Combine with flow control

Both mechanisms work together

37

Application-Limited Flow

App sends limited data

Window growth paused

38

Delayed ACKs

ACKs delayed intentionally

RTT increases, window adjusted

39

ACK Loss

ACKs lost in transit

Retransmission triggered

40

Mixed Traffic

Mix of large and small packets

Adaptive control applied

41

Network Jitter

Simulate jitter

RTT variation handled

42

Network Congestion

Simulate real congestion

Control mechanisms activated

43

Link Failure

Simulate link drop

Connection reset

44

Recovery After Congestion

Resume normal traffic

Window grows again

45

Congestion in VPN

Simulate congestion over VPN

VPN handles congestion

46

Congestion in NAT

Simulate congestion behind NAT

NAT handles control correctly

47

Congestion in Proxy

Simulate congestion via proxy

Proxy forwards control signals

48

Congestion in Cloud

Simulate cloud network congestion

Cloud handles control efficiently

49

Congestion in Mobile Network

Simulate mobile congestion

Mobile TCP adapts

50

Congestion Logging

Log congestion events

Logs generated successfully

  • Reference links