19 Congestion Control
19 Congestion Control
As Internet can be considered as a Queue of packets, where transmitting nodes are constantly
adding packets and some of them (receiving nodes) are removing packets from the queue. So,
consider a situation where too many packets are present in this queue (or internet or a part of
internet), such that constantly transmitting nodes are pouring packets at a higher rate than
receiving nodes are removing them. This degrades the performance, and such a situation is
termed as Congestion. Main reason of congestion is more number of packets into the network
than it can handle. So, the objective of congestion control can be summarized as to maintain
the number of packets in the network below the level at which performance falls off
dramatically.
Congestion causes packet loss, packet loss causes retransmission of packet, retransmission of
packet cause congestion. So we can say congestion itself causes congestion.
Causes of Congestion
Insufficient memory
Slow processors
Low-Bandwidth
Bursty nature of traffic
Congestion itself
Congestion affects two vital parameters of the network performance, namely throughput and
delay.
In simple terms, the throughput can be defined as the percentage utilization of the network
capacity.
Congestion Control refers to techniques and mechanisms that can either prevent congestion,
before it happens, or remove congestion, after it has happened. Congestion control
mechanisms are divided into two categories, one category prevents the congestion from
happening and the other category removes congestion after it has taken place.
Implicit Signaling
In implicit signaling, there is no communication between the congested node or
nodes and the source.
The source guesses that there is congestion somewhere in the network when it
does not receive any acknowledgment. Therefore the delay in receiving an
acknowledgment is interpreted as congestion in the network.
On sensing this congestion, the source slows down.
This type of congestion control policy is used by TCP. BECN/FECN
Explicit Signaling - BECN/FECN
In this method, the congested nodes explicitly send a signal to the source or
destination to inform about the congestion.
Explicit signaling is different from the choke packet method. In choke packed
method, a separate packet is used for this purpose whereas in explicit signaling
method, the signal is included in the packets that carry data .
Explicit signaling can occur in either the forward direction or the backward
direction .
In backward signaling, a bit is set in a packet moving in the direction opposite to
the congestion. This bit warns the source about the congestion and informs the
source to slow down.
In forward signaling, a bit is set in a packet moving in the direction of congestion.
This bit warns the destination about the congestion. The receiver in this case
uses policies such as slowing down the acknowledgements to remove the
congestion.
When the host has to send a packet, the packet is thrown into the bucket.
The bucket leaks at a constant rate, meaning the network interface transmits packets at
a constant rate.
Bursty traffic is converted to a uniform traffic by the leaky bucket.
In practice the bucket is a finite queue that outputs at a finite rate.
The leaky bucket algorithm described above, enforces a rigid pattern at the output stream,
irrespective of the pattern of the input. For many applications it is better to allow the output to
speed up somewhat when a larger burst arrives than to loose the data. Token Bucket algorithm
provides such a solution.
Note:
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.