Linux TC模拟网络延迟、丢包、乱序

1.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。

流量控制的基本原理如下图所示:

 2.TC常用命令

2.1 模拟网络延时

命令:

tc qdisc add dev eth0 root netem delay 100ms

说明:该命令指的是对eth0网卡设置延时100ms,eth0名可以通过ifconfig查看,时间单位可以为s、ms、us

2.2模拟网络丢包

命令:

tc qdisc add dev eth0 root netem loss 1% 30%

说明:该命令指的是对eth0网卡设置为随机丢包1%,成功率30%。

2.3模拟包重复

命令:

tc qdisc add dev eth0 root netem duplicate 1%

说明:该命令指的是对eth0网卡设置随机产生1%的重复包。

2.4模拟包乱序

命令:

tc qdisc change dev eth0 root netem delay 10ms reorder 25% 50%

说明:该命令指的是对eth0网卡设置为25%的数据包(50%相关)会被立即发送,其他延迟10秒,在新版本中,也可以通过以下指令实现: tc qdisc add dev eth0 root netem delay 100ms 10ms 75%(大约有75%的包会延迟±10ms发送)。

2.5 查看配置

命令:

tc qdisc show dev eth0

说明:该命令指的是查看eth0网卡设置。

2.6 恢复初始配置

命令:

tc qdisc del dev eth0 root

说明:该命令指删除所有的配置,恢复初始配置。

3.示例

产生100ms延时,10%丢包。则:

第一步:设置前ping 20包,查看情况:

第二步:tc qdisc add dev eth0 root netem delay 100ms loss 10%,再ping包,则显示如下:

通过以上两步,可以看出明显延时100ms,同时有10%的丢包,所以模拟成功。

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值