What is congestion?
A state
occurring in network layer when the message traffic is so heavy that it slows
down network response time.
Effects of
Congestion
·
As
delay increases, performance decreases.
·
If
delay increases, retransmission occurs, making situation worse.
Congestion
control algorithms
·
Leaky
Bucket Algorithm
Let us consider
an example to understand
Imagine a
bucket with a small hole in the bottom. No matter at what rate water enters the
bucket, the outflow is at constant rate. When the bucket is full with water
additional water entering spills over the sides and is lost.
Token bucket
Algorithm
Need of token
bucket Algorithm: -
The leaky
bucket algorithm enforces output pattern at the average rate, no matter how
bursty the traffic is. So, in order to deal with the bursty traffic we need a
flexible algorithm so that the data is not lost. One such algorithm is token
bucket algorithm.
Steps of this
algorithm can be described as follows:
1.
In
regular intervals tokens are thrown into the bucket. Ƒ
2.
The
bucket has a maximum capacity. Ƒ
3.
If
there is a ready packet, a token is removed from the bucket, and the packet is
sent.
4.
If
there is no token in the bucket, the packet cannot be sent.
In figure (A) we see a bucket holding three tokens, with five packets waiting to be transmitted. For a packet to be transmitted, it must capture and destroy one token. In figure (B) We see that three of the five packets have gotten through, but the other two are stuck waiting for more tokens to be generated.
Ways in which token bucket is superior to leaky bucket:
The leaky bucket algorithm controls the rate at which the packets are introduced in the network, but it is very conservative in nature. Some flexibility is introduced in the token bucket algorithm. In the token bucket, algorithm tokens are generated at each tick (up to a certain limit). For an incoming packet to be transmitted, it must capture a token and the transmission takes place at the same rate. Hence some of the busty packets are transmitted at the same rate if tokens are available and thus introduces some amount of flexibility in the system.
Formula: M * s = C + ρ * s
where S – is time taken
M – Maximum output rate
ρ – Token arrival rate
C – Capacity of the token bucket in byte
Let’s understand with an example,
0 Comments