linux tc模拟弱网延迟和丢包

模拟延迟传输简介

netem 与 tc: netem 是 Linux 2.6 及以上内核版本提供的一个网络模拟功能模块。该功能模块可以用来在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况。使用 Linux 2.6 (或以上) 版本内核的很多发行版 Linux 都开启了该内核功能,比如 Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian 等等。 tc 是Linux 系统中的一个工具,全名为 traffic control(流量控制)。tc 可以用来控制 netem 的工作模式,也就是说,如果想使用 netem ,需要至少两个条件,一个是内核中的 netem 功能被包含,另一个是要有 tc 

如何查看Linux网卡:ifconfig可查看,这里假设Linux网卡名字为eth0

  • 端口延时命令
  1. tc qdisc add dev eth0 root netem delay 100ms : 表示对端口廷时100ms
  2. tc qdisc del dev eth0 root netem delay 100ms : 表示对端口廷时命令删除
  3. tc qdisc add dev eth0 root netem delay 100ms 10ms :表示对改变端口廷时命100ms ± 10ms 延时范围(90到110)
  4. tc qdisc add dev eth0 root netem delay 100ms 10ms 25% : 表示廷时范围100ms ,同时有25%以± 10ms波动延迟
  • 端口丢包命令:
  1. tc qdisc add dev eth0 root netem loss 0.1% : 丢包率为0.1%
  2. tc qdisc add dev eth0 root netem loss 0.3% 25% : 丢包率为范围(0.3%- 25%)
  • 数据包重包命令
  1. tc qdisc add dev eth0 root netem duplicate 1% : 随机产生 1% 的重复数据包
  • 数据包分发命令
  1. tc qdisc add dev eth0 root netem gap 5 delay 10ms : 数据包重发每格5的整数倍的包将不被延时。其它的将延时10ms
  • 速率控制命令:两条命令共同完成
  1. tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
  2. tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
  • 查看规则信息
  1. tc -s qdisc ls dev eth0
  2. tc qdisc show
  • 删除规则
    tc qdisc del dev eth0 root

posted on   uestc2007  阅读(624)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示