Flow control is a mechanism used in computer networks to control the flow of data between a sender and a receiver, such that a slow receiver will not be outran by a fast sender. Flow control provides methods for the receiver to control the speed of transmission such that the receiver could handle the data transmitted by the sender. Congestion control is a mechanism that controls data flow when congestion actually occurs. It controls data entering in to a network such that the network can handle the traffic within the network.
What is Flow Control?
Flow control is a mechanism that controls the flow of data between a sender and a receiver such that a slower receiver would not be overwhelmed by the amount of data transmitted by a fast sender. This situation can occur due to several reasons such as receiver’s lack of processing power than the sender or receiver having a heavy traffic load than the sender. Mechanisms used in flow control could be categorized based on whether the receiver sends feedback to the sender. In the Open-loop flow control mechanism, receiver does not send any feedback to the sender and it is the most widely used flow control method. In Closed-loop flow control, congestion information is transmitted back to the sender. Commonly used types of flow control are network congestion, windowing flow control and data buffer.
What is Congestion Control?
Congestion control provides methods to regulate the traffic entering in to a network such that it could be managed by the network itself. Congestion control prevents a network from reaching a congestive collapse where little or no useful communication is happening due to congestion. Congestion control is mainly applied to packet switching networks. Goal of congestion control is to keep the number of packets within the network below a level that would reduce the performance dramatically. Congestion control is implemented in Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) transport layer protocols. Slow start and exponential backoff algorithms are used in TCP. Congestion control algorithms are classified based on the amount of feedback received from the network and the aspect of performance it aims to improve. Furthermore, they are classified based on criteria like modifications need to be done on the current network and the fairness criterion used by the algorithm.
What is the difference between Flow Control and Congestion Control?
Although, Flow control and congestion control are two network traffic control mechanisms used in computer networks, they have their key differences. Flow control is an end to end mechanism that controls the traffic between a sender and a receiver, when a fast sender is transmitting data to a slow receiver. On the other hand, congestion control is a mechanism that is used by a network to control congestion in the network. Congestion control prevents loss of packets and delay caused due to congestion in the network. Congestion control can be seen as a mechanism that makes sure that an entire network can handle the traffic that is coming to the network. But, flow control refers to mechanisms used to handle the transmission between a particular sender and a receiver.