一、实验拓扑与实验现象

实验拓扑如图所示,在①号机上发送数据,③号机上接受数据,同时在④号机的eth1与eth2网口限制速率为115200kbps,命令如下

tc qdisc add dev eth1 root tbf rate 115200bps buffer 1600 limit  3000
tc qdisc add dev eth2 root tbf rate 115200bps buffer 1600 limit  3000

 

tc令牌桶限速心得

图1 实验拓扑

然后在④号机上使用ifstat查看网口状态,得到结果如下:

tc令牌桶限速心得tc令牌桶限速心得

 

我们可以看到eth1的入口速率为144KB/s左右,而eth2的出口速率为112KB/s左右,那么还有32KB/s的速率哪里去了呢?

 

二、令牌桶在端口限速的原理

首先让我们了解下令牌桶限速的原理,如限速原理图如下(此图引自博文:令牌桶算法的应用 )

tc令牌桶限速心得

 

 

图2 使用令牌桶做端口限速的原理图

 

  图2展示是了linux系统中宽带管理的实现,需由端口发送的报文通过分类器分类以后,进入队列,这个队列的大小由上面tc tbf命令中的limit设定,若令牌桶中有这个报文大小的令牌,则将此报文发送出去,否则在缓存队列中等待,等待有足够多的令牌后在发送,若在这个过程中缓存队列溢出,则将导致部分报文被丢弃,这里值得注意的是发送报文是以包为单位发送的,但是令牌桶的实现是以字节为单位,而不是针对包进行的。

  每个到来的令牌从数据队列中收集一个数据包,然后从桶中被删除。这个算法关联到两个流上——令牌流和数据流,于是我们得到3种情景:

  1、数据流以等于令牌流的速率到达TBF。这种情况下,每个到来的数据包都能无延迟地通过队列。

  3、数据流以大于令牌流的速率到达TBF。这意味着桶里的令牌很快就会被耗尽。导致TBF中断一段时间,称为“越限”。如果数据包持续到    来,将发生丢包。

  

  最后一种情景非常重要,因为它可以用来对数据通过过滤器的速率进行整形。
  可见,令牌的积累可以导致越限的数据进行短时间的突发传输而不必丢包,但是持续越限的话会导致传输延迟直至丢包。

博客迁到个人博客网站:http://btdog.com.cn/index.php/home/article/detail/id/3.html

相关文章:

  • 2021-06-30
  • 2021-07-23
  • 2021-11-10
  • 2022-02-10
  • 2021-05-16
  • 2021-08-11
  • 2022-12-23
猜你喜欢
  • 2021-06-19
  • 2021-12-30
  • 2021-11-15
  • 2021-09-17
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案