我是靠谱客的博主 年轻墨镜,最近开发中收集的这篇文章主要介绍Linux TC工具之netem队列,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

  1. 模拟网络时延

 #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. 模拟网络丢包

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

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

 # 固定的每隔一定数量的报文就乱序一次
 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 TC工具之netem队列所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部