Unit-3
Unit-3
Persistent looping problem i.e, loop will No persistent loops, only transient
be there forever. loops.
Similarly, each network interface contains a leaky bucket and the following
steps are involved in leaky bucket algorithm:
When host wants to send packet, 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.
Token Bucket Algorithm
The leaky bucket algorithm has a rigid output design at an average rate
independent of the bursty traffic.
In some applications, when large bursts arrive, the output is allowed to
speed up. This calls for a more flexible algorithm, preferably one that
never loses information. Therefore, a token bucket algorithm finds its uses
in network traffic shaping or rate-limiting.
It is a control algorithm that indicates when traffic should be sent. This
order comes based on the display of tokens in the bucket.
The bucket contains tokens. Each of the tokens defines a packet of
predetermined size. Tokens in the bucket are deleted for the ability to
share a packet.
When tokens are shown, a flow to transmit traffic appears in the display of
tokens.
No token means no flow sends its packets. Hence, a flow transfers traffic
up to its peak burst rate in good tokens in the bucket.
To learn more about Token Bucket Algorithm please refer the article.
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:
In regular intervals tokens are thrown into the bucket. ƒ
The bucket has a maximum capacity. ƒ
If there is a ready packet, a token is removed from the bucket, and the
packet is sent.
If there is no token in the bucket, the packet cannot be sent.
Let’s understand with an example, 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.
Token Bucket vs 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,