Flow control and congestion control, both are the traffic controlling mechanism but, both controls the traffic at different situations. The main difference between flow control and congestion control is that the flow control is a mechanism that controls the traffic between sender and receiver. On the other hand, the congestion control mechanism controls the traffic that is placed by the transport layer into the network. Let us study the difference between flow control and congestion control with the help of comparison chart below.
Content: Flow Control Vs Congestion Control
|Basis for Comparison||Flow Control||Congestion Control|
|Basic||It controls the traffic from a particular sender to a receiver.||It controls the traffic entering the network.|
|Purpose||It prevents the receiver from being overwhelmed by the data.||It prevents the network from getting congested.|
|Responsibility||Flow control is the responsibility handled by data link layer and the transport layer.||Congestion Control is the responsibility handled by network layer and transport layer.|
|Responsible||The sender is responsible for transmitting extra traffic at receivers side.||The transport layer is responsible transmitting extra traffic into the network.
|Preventive measures||The sender transmits the data slowly to the receiver.||Transport layer transmits the data into the network slowly.|
|Methods||Feedback-based flow control and Rate-based flow control||Provisioning, traffic-aware routing and admission control|
Definition of Flow Control
Flow control issues are handled by the data link layer along with the transport layer. The main focus of flow control mechanism is to prevent the receiver from getting overloaded by the data sent by the faster-transmitting sender. If a sender is on a powerful machine and it is transmitting the data at the faster rate, even though the data transmitted is error free, it may happen that the receiver on slower-end is unable to receive data at that speed and may loose some data. There are two methods of flow control, feedback-based flow control and rate-based flow control.
In feedback-based control, after the receiver receives the first frame it informs the sender and permits it to send more information and it also inform about the status of the receiver. There are two protocols of feedback-based flow control, sliding window protocol, and stop-and-wait protocol.
Rate-based flow control
In rate-based flow control, when a sender transmits the data at a faster rate to the receiver and receiver is unable to receive the data at that speed, then the built-in mechanism in the protocol will limit the rate of transmission at which the sender is transmitting data without any feedback from the receiver.
Definition of Congestion Control
Congestion in the network is due to the presence of too many packets in the network. Congestion on the network degrades the performance of the network. As it causes the delay in delivery of the packet to the receiver or there may be a packet loss. The congestion control is the responsibility of network layer and the transport layer. The congestion is created due the packets transmitted by the transport layer into the network. The congestion on the network can be reduced effectively by reducing the load that transport layer place on the network. The congestion control can be achieved by three methods i.e. provisioning, traffic-aware routing, and admission control.
In provisioning, a network is built that is well matched with the traffic that it carries. In traffic aware routing, routes are tailored according to the traffic pattern. In admission control, the new connections to the network are refused that causes the congestion to the network.
Key Differences Between Flow Control and Congestion Control
- Being a traffic controlling mechanisms the flow control mechanism controls the traffic of data from the particular sender to a particular receiver. On the other hand, the congestion control mechanism controls the traffic into the network.
- Flow control prevents the receiver at the slower end from being overloaded with the data transmitted by the sender at the faster end whereas, the congestion control mechanism prevents the network from being congested with the data transmitted by the transport layer.
- Flow control is the responsibility of data link layer and the transport layer. On the other hand, the congestion control is the responsibility of network layer and transport layer.
- The sender is responsible for creating extra traffic at the receiver end whereas, the transport layer is responsible for the transmitting the load on the network.
- Reducing the load transmitted by the transport layer on the network would reduce the congestion on the network. On the other hand, if the sender reduces the speed of transmitting data, the loss of data at the receiver end would also be reduced.
- The flow control mechanism has two methods to control flow of data that are feedback-based flow control, rate-based flow control. On the other hand, the Congestion control mechanism has three methods to control the congestion in the network they are provisioning, traffic-aware routing and admission control.
The flow control is the point to point control mechanism that controls the traffic between a sender and a receiver and prevents the receiver from being overwhelmed with the data transmitted by faster transmitting sender. The congestion control is the mechanism that controls the traffic on the network.