Difference between flow control and congestion control

Both Flow control and Congestion control are traffic controlling methods in computer networks. Flow control is a technique that allows two stations working at different speeds to communicate with each other. It is a set of measures taken to regulate the amount of data that a sender sends so that a fast sender does not overwhelm a slow receiver.

Congestion occurs in a network when it receives too many packets than its designed capacity. Network congestion occurs in case of traffic overloading. There are mechanisms to control such congestion scenarios in a network.

Go through this article to find out more about Flow Control and Congestion Control and how these mechanisms are different from each other.

What is Flow Control?

Flow control is a system that guarantees a sender's transmission rate is proportional to the receiver's reception capability.

  • In data communications, flow control is used to manage the flow of data/packets between two nodes, primarily when the transmitting device can deliver data quicker than the receiver can digest it.

  • Many different devices are connected to networks of any size, and each device has its data transmission settings. A router, for example, is designed to manage data routing, whereas a PC on the receiving end of that data has significantly fewer sending/receiving capabilities.

  • If the sender begins transferring data quicker than the receiving node's ability, a conflict may arise. Flow control is employed to address this issue. This method controls the data flow between nodes by focusing on both nodes' sending and receiving capabilities.

Xon-Xoff is a flow control protocol that synchronizes the transmitter and receiver. When the receiver's buffer is complete, it sends a transmit-off signal, and when the receiver is ready to retake data, it sends a transmit on the signal. Xon-Xoff uses asynchronous serial connections.

In data link layer, flow control restricts the number of frames the sender can send before it waits for an acknowledgment from the receiver.

Types of Flow Control

Flow control can be broadly classified into two categories −

  • Feedback-based Flow Control − In these protocols, the sender sends frames after it has received acknowledgments from the user. This is used in the data link layer.

  • Rate-based Flow Control − These protocols have built in mechanisms to restrict the rate of transmission of data without requiring acknowledgment from the receiver. This is used in the network layer and the transport layer.

What is Congestion Control?

When a node or a link carries too much data, it causes queuing delays, frame or data packet loss, and blocking new connections, lowering network service quality. Response time slows as network throughput drops in a congested network. When bandwidth is limited, and data traffic exceeds capacity, congestion develops.

Congestion causes choking of the communication medium. When too many packets are displayed in a method of the subnet, the subnet's performance degrades. Hence, a network's communication channel is called congested if packets are traversing the path and experience delays mainly over the path's propagation delay.

Data packet loss due to congestion is mitigated by aggressive network protocol retransmission, which maintains a network congestion condition after reducing the initial data load. This can result in two stable states under the same data traffic load - one to deal with the initial load and the other to keep the network throughput low.

Avoiding congestion collapse in modern networks requires the use of network congestion avoidance techniques as well as congestion control, such as −

  • Protocols that use algorithm feedback to reduce data packet throughput to acceptable levels are exponential backoff protocols.

  • Prioritization strategies are used to allow only critical data streams to be transmitted.

  • Appropriate network resource allocation in anticipation of increased data packet throughput requirements.

Congestion Control Algorithms

There are two congestion control algorithms which are as follows −

  • Leaky Bucket − The leaky bucket algorithm discovers its use in the context of network traffic shaping or rate-limiting. The algorithm allows controlling the rate at which a record is injected into a network and managing burstiness in the data rate.

  • Token Bucket Algorithm − It is a control algorithm that indicates when traffic should be sent. This order comes based on the display of tokens in the bucket. The bucket contains tokens. Each of the tokens defines a packet of predetermined size. Tokens in the bucket are deleted for the ability to share a packet.

Difference between Flow Control and Congestion Control

The following table highlights the major differences between Flow Control and Congestion Control.

KeyFlow ControlCongestion Control
DefinitionFlow Control is a mechanism that controls the traffic in a computer network. Traffic represents the flow of data from the sender to the receiver.Congestion Control too is a traffic controlling mechanism.
LayersData link and Transport layers handle flow control.Network and Transport layers handle congestion control.
Prime FocusReceiver is prevented from being overwhelmed.Network is prevented from being congested.
ResponsibilityOnly sender is responsible for the traffic.Transport layer is responsible for the traffic.
How does it work?Traffic is prevented by slowing down the sender.Traffic is prevented by slowing down the transport layer.


To conclude, both Flow control and Congestion control are traffic controlling methods in computer networks, however flow control mechanisms prevent the receiver nodes from being overloaded with data, whereas congestion control mechanisms work at the network and transport layers to prevent the overall network from being congested.

Updated on: 27-Jul-2022

7K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started