FLOW CONTROL
Flow control is a crucial design issue in the Data Link Layer (DLL) of the OSI model. It is a
technique that ensures proper management of data flow between a sender and receiver, especially
when both operate at different speeds or processing powers.
Without flow control, a fast sender might overwhelm a slow receiver, causing data loss or
inefficient communication.
It acts as a speed matching mechanism that regulates the number of data frames a sender
can transmit before waiting for acknowledgment from the receiver.
It helps in maintaining the balance between data transmission rate and the receiver’s
processing and memory capacity.
Importance of Flow Control
Prevents buffer overflow at the receiver side.
Ensures efficient utilization of network resources.
Synchronizes data transmission rate between sender and receiver.
Essential in environments where the receiver has limited processing power or memory.
Approaches to Flow Control
1. Feedback-Based Flow Control
In this approach:
The sender transmits a data frame.
The receiver sends an acknowledgment back after processing the frame.
The sender sends the next frame only after receiving this acknowledgment.
This ensures synchronization between sender and receiver. However, the throughput is
limited by the round-trip time of acknowledgment.
2. Rate-Based Flow Control
In this method:
The sender controls the data transmission rate based on a built-in mechanism in the
protocol.
No explicit acknowledgment is required from the receiver.
The sender adjusts its transmission rate automatically to avoid overwhelming the receiver.
This technique is useful where feedback is not feasible or desired, and the protocol can
intelligently adjust the flow.
Techniques of Flow Control in Data Link Layer
1. Stop-and-Wait Flow Control
This is the simplest flow control technique where:
Data is divided into multiple frames.
The sender sends one frame and waits for an acknowledgment before sending the next.
The process continues until the End of Transmission (EOT) frame is sent.
Advantages:
Simple and easy to implement.
Provides accurate and reliable data delivery.