我是靠谱客的博主 年轻墨镜,这篇文章主要介绍Linux TC工具之netem队列,现在分享给大家,希望可以做个参考。

上回我们介绍了tbf队列,这次介绍模拟网络环境和抖动测试时非常好用的netem队列。netem队列也是无类队列,也就是说所有从网卡发送出去的包都会收到配置参数的影响!

    netem是linux2.6 及以上内核版提供的Network emulation服务,可以用来模拟广域网下的延迟、丢包、重复、损坏和乱序等问题。

  1. 模拟网络时延

复制代码
1
2
3
4
5
6
7
 #eth0网卡增加时延100ms  tc qdisc add dev eth0 root netem delay 100ms    #正常网络情况会出现抖动性延迟,将延迟设为 100ms ± 10ms  tc qdisc add dev eth0 root netem delay 100ms 10ms    #网络状况是平滑变化的,短时间里相邻报文的延迟应该是近似的而不是完全随机的。

 #这个值是百分比,代表相邻报文延迟的粘性。如果为 100%,每个相邻的报文必定相同延迟,即所有包都将延迟;

#如果是 0% 则退化到随机延迟的情况

 tc qdisc add dev eth0 root netem delay 100ms 10ms 20%
 
 # distribution 参数来限制它的延迟分布模型。比如让报文延迟时间满足正态分布
 #其他可选值有 uniform、pareto 和 paretonormal
 tc qdisc add dev eth0 root netem delay 100ms 10ms 20% distribution normal

  1. 模拟网络丢包

复制代码
1
2
3
4
5
 # 发送的报文有 50% 的丢包率  tc qdisc change dev eth0 root netem loss 50%    # 发送的报文随机丢掉 50% 的数据包,成功率为25%  tc qdisc change dev eth0 root netem loss 50% 25%
  1. 模拟包重复/损坏

复制代码
1
2
3
4
5
 # 随机产生 20% 重复的包  tc qdisc change dev eth0 root netem loss 20%    # 随机产生 5% 损坏的报文(在报文的随机位置造成一个比特的错误)  tc qdisc change dev eth0 root netem corrupt 5%
  1. 模拟包乱序

复制代码
1
2
3
4
 # 固定的每隔一定数量的报文就乱序一次  tc qdisc change dev eth0 root netem reorder 50% gap 3 delay 100ms  # 使用概率来选择乱序的报文  tc qdisc change dev eth0 root netem reorder 50% 15% delay 300ms

  本文为原创,未经许可不得在任何平台转载。如需转载,与作者联系~

关注微信公众号:智识训练营(微信ID:TechBootcamp),获取更多资讯~

 

 

最后

以上就是年轻墨镜最近收集整理的关于Linux TC工具之netem队列的全部内容,更多相关Linux内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(82)

评论列表共有 0 条评论

立即
投稿
返回
顶部