流量整型
调节数据传输的平均速率(和突发数据流)
相关算法
- 漏桶(leaky bucket)
- 令牌桶(token bucket)
- 其它:资源预留、准入控制、分组调度等
可以减少拥塞
漏桶算法
- 每个主机连接到网络的接口中都有一个漏桶,即一个优先长度的内部队列
- 当桶中有分组的时候,输出速率是恒定的,当桶空的时候,输出速率是0
- 当一个分组到达满的桶的时候,分组将被丢弃(满则溢)
- 每个时钟嘀嗒(tick),仅允许一个分组或固定数量的分组发送出去
作用:主机内用户进程产生的分组流往往是一个不稳定的流,漏桶可以让它输出到网络时变成一个稳定流,抹平了突发尖峰,极大地减少了发生拥塞的机会
漏桶的缺点:当漏桶满了之后,数据将被丢弃,不能处理大量的突发数据
令牌桶
令牌桶和漏桶的不同
- 当大量数据突发的时候,令牌桶算法允许输出加快到某种程度
- 令牌桶拥有令牌(tokens),且以每△T秒产生一个令牌的速度往桶中输入令牌
- 一个分组要发送的时候,它必要从桶中取出和获取到一个令牌
- 令牌桶算法允许累积令牌,但最多可以累积n(令牌桶的容量)个令牌
- 当桶满的时候,令牌桶算法丢掉的是令牌而不是分组
如图,有五个待传送的分组,令牌桶中只有三个令牌,所以只能够发送三个分组
剩下的两个分组只有等到令牌生成之后才能发送,也就是说当令牌桶空了之后,剩下的分组发送率只能够跟令牌生成的速率持平
最大突发时间计算
- 令牌桶容量:B字节
- 令牌到达的速率:R字节/秒
- 最大输出速率: M字节/秒
- 突发时间:S秒
有公式: