Congestion Control and Quality of Service

Congestion Control:

Congestion Control is a type of network layer issue, and it is concerned with what happens when there is more data in the network than can be sent with reasonable packet delays, and there are no lost packets.

Causes of Congestion:

The main cause of congestion is a huge amount of data traffic. But other factors are equally important for making congestion as given below:
1. Sudden arrival of large data (called burst data) from many input lines and trying to access a single output line of a router. In this case, the particular output line is blocked if its bandwidth isn’t sufficiently high.
2. Low bandwidth line will produce congestion even if the data rate isn’t too high.
3. Mismatch between the speeds of different components of the system may also produce congestion.

Principle of Congestion Control:

Congestion can be controlled in either of two ways:
1. Open-Loop Control
2. Closed-Loop Control

Open-Loop Control:

Open-Loop Control always involves good design such that congestion doesn’t occur. So while designing the system all possible causes of congestion and the remedy for each of them are to be incorporated before installation. Some of the concerned points are:

  • When to accept new traffic
  • When to discard packets
  • Which packet to discard
  • Making scheduling decisions at various points of the network.
  • Closed-Loop Control:

    Closed-Loop Control is always based on the concept of feedback from the network. It contains the following parts:
    i. Monitor the system to detect when and where congestion occurs.

    ii. Pass this information to the places where actions can be taken.

    iii. Adjust system operation to correct the problem.

    Quality of Service (QoS):

    With the increasing use of networks assuring the good Quality of Service (QoS) became another important requirement of networks. Four characteristics and parameters contribute to the quality of service are:
    1. Reliability
    2. Delay
    3. Jitter
    4. Bandwidth

    Techniques for Achieving Good QoS:

    A single technique can’t provide good quality of service, rather a combination of techniques is implemented by the system designers to get better QoS. Some of the techniques are given below:

    Over Provisioning:

    It is the easiest solution. A sufficient number of routers with sufficient capacity, buffer space and bandwidth are used in the network such that it can always provide good QoS. But it is an expensive solution.


    In this technique, packets are buffered before delivery. Packets deliver at regular intervals of time. This method doesn’t improve reliability and bandwidth but it increases the delay and improves jitter.

    Traffic Shaping:

    In the previous technique, hosts are designed to transmit at a uniform rate. But sometimes it’s not possible to meet regularity in transmission because of various reasons. Traffic shaping smoothens the traffic on the server side rather than on the client side. The steps are given below:

    1. Service level agreement is done between the user and subnet.
    2. As long as the user sends packets according to the agreed contract, the carrier promises to deliver them all in a timely fashion.
    3. It is highly important for real-time data transfer.
    4. Monitoring the traffic flow is called Traffic Policing.
    5. Leaky Bucket and Token Bucket Algorithm is used for traffic shaping.

    Resource Reservation:

    Traffic shaping improves the QoS but it maintains that some predefined path must be set before sending data packets. For a virtual-circuit connection, the path is set before data transfer and resources can be reserved for the specific circuit. Kinds of resources that can be preserved are :

    i. Bandwidth: High Bandwidth can handle a large data rate. So, it provides high bandwidth that will ensure good quality of service.
    ii. Buffer Space: High Buffer Space is reserved for accepting and temporarily storing packets such that traffic shaping can be done and good QoS is provided.
    iii. CPU Cycles: For timely processing of packets CPU cycles are also reserved thereby providing good QoS.