流量控制算法

流量控制算法

令牌桶算法示意图:

 

令牌桶算法是一个存放固定容量令牌的桶,按照固定速率往桶里添加令牌。

令牌桶算法的描述如下:

假如用户配置的平均速率为r,则每隔1/r秒一个令牌被加入到桶中;

假设桶最多可以存b个令牌。如果令牌到达时令牌桶已经满了,那么这个令牌会被丢弃;

当一个n个字节大小的数据包到达,将从桶中删除n个令牌,接着数据包被发送到网络上;

如果令牌桶中少于n个令牌,那么不会删除令牌,并且认为这个数据包在流量限制之外;

算法允许最长b个字节的突发,但从长期运行结果看,数据包的速率被限制成常量r。对于在流量限制外的数据包可以以不同的方式处理:

  • 它们可以被丢弃
  • 它们可以排放在队列中以便当令牌桶中累积了足够多的令牌时再传输
  • 它们可以继续发送,但需要做特殊标记,网络过载的时候将这些特殊标记的包丢弃。

 


漏桶算法示意图:

漏桶作为计量工具(The Leaky Bucket Algorithm as a Meter)时,可以用于流量整形(Traffic Shaping)和流量控制(Traffic Policing),漏桶算法的描述如下:

一个固定容量的漏桶,按照常量固定速率流出水滴;

如果桶是空的,则不需流出水滴;

可以以任意速率流入水滴到漏桶;

如果流入水滴超出了桶的容量,则流入的水滴溢出了(被丢弃),而漏桶容量是不变的。

 

 

 

  

posted @ 2018-06-27 20:21  苏格拉底的落泪  阅读(174)  评论(0编辑  收藏  举报