• Congestion in a network may occur when the load on the network (i.e. the number of packets sent to the network) is greater than the capacity of the network (i.e. the number of packets a network can handle.)
• The various causes of congestion in a subnet are:
i. The input traffic rate exceeds the capacity of the output lines.
ii. The routers are too slow to perform bookkeeping tasks (queuing buffers, updating tables, etc.).
iii. The routers' buffer is too limited.
iv. Congestion in a subnet can occur if the processors are slow. Slow speed CPU at routers will perform the routine tasks such as queuing buffers, updating table etc slowly.
• 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.
• These two categories are:
- Open loop
- Closed loop
• Open Loop Congestion Control
i. In this method, policies are used to prevent the congestion before it happens.
ii. Congestion control is handled either by the source or by the destination. The various methods used for open loop congestion control are:
1) Retransmission Policy
a. The sender retransmits a packet, if it feels that the packet it has sent is lost or corrupted.
b. However retransmission in general may increase the congestion in the network. But we need to implement good retransmission policy to prevent congestion.
c. The retransmission policy and the retransmission timers need to be designed to optimize efficiency and at the same time prevent the congestion.
2) Window Policy
a. To implement window policy, selective reject window method is used for congestion control.
b. Selective Reject method is preferred over Go-back-n window as in Go-back-n method, when timer for a packet times out, several packets are resent, although some may have arrived safely at the receiver. Thus, this duplication may make congestion worse.
c. Selective reject method sends only the specific lost or damaged packets.
3) Acknowledgement Policy
a. The acknowledgement policy imposed by the receiver may also affect congestion.
b. If the receiver does not acknowledge every packet it receives it may slow down the sender and help prevent congestion.
c. Acknowledgments also add to the traffic load on the network. Thus, by sending fewer acknowledgements we can reduce load on the network.
d. To implement it, several approaches can be used:
A receiver may send an acknowledgement only if it has a packet to be sent.
A receiver may send an acknowledgement when a timer expires.
- A receiver may also decide to acknowledge only N packets at a time.
4) Discarding Policy
a. A router may discard less sensitive packets when congestion is likely to happen.
b. Such a discarding policy may prevent congestion and at the same time may not harm the integrity of the transmission.
5) Admission Policy
a. An admission policy, which is a quality-of-service mechanism, can also prevent congestion in virtual circuit networks.
b. Switches in a flow first check the resource requirement of a flow before admitting it to the network.
c. A router can deny establishing a virtual circuit connection if there is congestion in the "network or if there is a possibility of future congestion.
• Closed Loop Congestion Control
Closed loop congestion control mechanisms try to remove the congestion after it happens.The various methods used for closed loop congestion control are:
a. Backpressure is a node-to-node congestion control that starts with a node and propagates, in the opposite direction of data flow.
b. The backpressure technique can be applied only to virtual circuit networks. In such virtual circuit each node knows the upstream node from which a data flow is coming.
c. In this method of congestion control, the congested node stops receiving data from the immediate upstream node or nodes.
d. This may cause the upstream node on nodes to become congested, and they, in turn, reject data from their upstream node or nodes.
e. As shown in fig node 3 is congested and it stops receiving packets and informs its upstream node 2 to slow down. Node 2 in turns may be congested and informs node 1 to slow down. Now node 1 may create congestion and informs the source node to slow down. In this way the congestion is alleviated. Thus, the pressure on node 3 is moved backward to the source to remove the congestion.
ii. Choke Packet a. In this method of congestion control, congested router or node sends a special type of packet called choke packet to the source to inform it about the congestion.
b. Here, congested node does not inform its upstream node about the congestion as in backpressure method.
c. In choke packet method, congested node sends a warning directly to the source station i.e. the intermediate nodes through which the packet has traveled are not warned.
iii. Implicit Signaling
a. In implicit signaling, there is no communication between the congested node or nodes and the source.
b. 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.
c. On sensing this congestion, the source slows down.
d. This type of congestion control policy is used by TCP.
iv. Explicit Signaling
a. In this method, the congested nodes explicitly send a signal to the source or destination to inform about the congestion.
b. 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 .
c. Explicit signaling can occur in either the forward direction or the backward direction .
d. 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.
e. 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.