3. Congestion
Definition: Congestion in a network may
occur if load on the network or the no of
packets sent to the network is greater than
the capacity of the network
Many possible causes
Rapid retransmissions of packets still in flight
Undelivered packets
3
4. Congestion is Unavoidable
Two packets arrive at the same time
The node can only transmit one
… and either buffer or drop the other
Congestion in network happens because routers have input
and output queues
If many packets arrive in a short period of time
The node cannot keep up with the arriving traffic
… and the buffer may eventually overflow
4
5. The packet is put at the end of input queue
The router removes the router from input queue and
uses its routing table and destination address to find the
route.
The packet is put in the appropriate output queue.
6. Issues
If the rate of arrival is higher than processing rate then
the input queue becomes longer
If packet departure rate is less than processing rate
then output queue becomes longer
7. Network Performance
Delay Versus Load
when the load is much less then delay is at minimum.
Delay becomes infinite when the load is greater than the
network capacity.
when a packet is delayed, the source, not receiving the
acknowledgment retransmit the packet which makes the
delay and congestion, worse.
8. Network Performance
Throughput Versus Load
Throughput in a network is the number of packets
passing through a network in a unit of time.
When the load exceeds capacity of network,throughput
declines sharply because packets get discarded by router.
This does not reduce no of packets because source
retransmit them.
10. Congestion Control
Congestion control refers to techniques and mechanisms that can
either prevent congestion, before it happens, or remove congestion,
after it has happened.
Categories :
11. Open loop Policies
In open-loop congestion, policies are applied to prevent
congestion before it happens.
Congestion control is handled by either the source or the
destination
Retransmission Policy :
If the sent packet is lost or corrupted, the packed needs to
be retransmitted by the sender.
Retransmission policy and retransmission timers must be
designed to optimize efficiency and at the same time
prevent congestion.
E.g.. Policy used by TCP for Retransmission
12. Window Policy :
Selective Repeat window is used instead of Go-Back-N
window.
Acknowledgment Policy :
The receiver does not acknowledges every packet it
receives, it slows the sender and help prevent congestion.
Sending fewer acknowledgements means imposing less
load on the network.
13. Discarding Policy :
A good discarding policy by the router may prevent
congestion and at the same time may not harm the
integrity of the transmission.
Admission Policy :
It is a QoS mechanism which prevents congestion in
virtual-circuit networks.
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.
14. Discarding Policy :
A good discarding policy by the router may prevent
congestion and at the same time may not harm the
integrity of the transmission.
Admission Policy :
It is a QoS mechanism which prevents congestion in
virtual-circuit networks.
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.
15. Closed- loop congestion control
Closed loop congestion control mechanisms try to
alleviate congestion after it happens.
It is useful to network which had congestion during
the transfer of messages from one node to other node.
16. Types of mechanism to prevent congestion after
it happens
1 Backpressure.
2 Choke Packet.
3 Implicit Signaling.
4 Explicit Signaling.
5 Backward Signaling.
6 Forward Signaling.
17. Backpressure
The technique of backpressure refers to a congestion
control mechanisms in which a congested node stops
receiving data from the immediate upstream node or
nodes.
This may cause the upstream nodes to become
congested and they in turn reject data from their
upstream nodes.
19. Choke Packet
A choke packet is a packet sent by a node to the source
to inform it of that congestion had occurred on the
network.
Message is sent from congested node directly to the
source station without informing the intermediate
routers
20. Choke
packet
I II III IV
Congestion
Source Destination
Data Flow
Fig 1.2 Choke Packet
21. Implicit Signaling
In implicit signaling ,there is no communication
between the congested node or nodes and the source.
The source guesses that there is a congestion somewhere
in the network.
For example, when a source sends several packets and
there is no acknowledgement for a while, one
assumption is that the network is congested
22. Explicit signaling
The node that experiences congestion can explicitly send
a signal to the source or destination .
Difference between choke packet and explicit signaling
is that in choke packet separate packet is used for the
sending signal to source, whereas in explicit signaling
method ,signal is included in the packets that carry data.
23. Backward Signaling
A bit can be set in a packet moving in the direction
opposite to the congestion .
This bit can warn the source that there is congestion and
that it needs to slow down to avoid the discarding of
packets.
24. Forward Signaling
A bit can be set in a packet moving in the direction of
the congestion .
This bit can warn the destination that there is
congestion.
The receiver in this case can use policies ,such as
slowing down the acknowledgments ,to alleviate the
congestion.
25. TCP Controlling Congestion
Congestion Window
Sender’s window size is determined not only by the
receiver but also by congestion in the network.
Actual window size = minimum(rwnd, cwnd)
Congestion Policy
Slow start: Exponential Increase
Congestion Avoidance: Additive Increase
Congestion Detection: Multiplicative Decrease
26. TCP Controlling Congestion
Slow start: Exponential Increase
Size of the congestion window starts with one maximum
segment size (MSS).
The size of window increases one MSS each time an ack is
received.
Consider cwnd=1 MSS. Sender can only send one segment.
After ack for 1 segment, cwnd size is increased by 1, now cwnd
is 2 and two more segment can be sent.
When all seven segments are acknowledged, cwnd = 8.
Size of cwnd increases exponentially.
28. TCP Controlling Congestion
Congestion Avoidance: Additive Increase
To avoid congestion, exponential growth must be stopped.
This algorithm undergoes an additive increase instead of an
exponential one.
When the size of cwnd reaches slow-start threshold, slow-start
phase stops and additive phase begins.
In this, when whole window of segment is acknowledged, the
size of cwnd is increased by 1.
30. TCP Controlling Congestion
Congestion Detection: Multiplicative Decrease
The only way the sender can guess that congestion has
occurred is by the need to re-transmit the segment.
It can occur in two cases: when timer times out or when
three ACK’s are received, in both cases the size of the
threshold is dropped to half.
31. TCP Controlling Congestion
If time-out occurs
Stronger possibility of congestion.
TCP set value of threshold to half of current window
size.
Sets cwnd to the size of one segment
It starts the slow-start phase again
If three ACK’s are received
Weaker possibility of congestion.
TCP set value of threshold to half of current window
size.
Sets cwnd to the vale of Threshold.
It starts the congestion avoidance phase.