这两个命令都使用了tc
(Traffic Control)工具,它是Linux内核的一部分,用于控制网络流量的传输。这些命令模拟了弱网环境,包括丢包和延迟。
丢包
sudo tc qdisc add dev [device] root netem loss 80% 70%
-
sudo
: 以超级用户权限执行命令。 -
tc qdisc add
: 添加一个新的队列规则(qdisc, queueing discipline)。 -
dev [device]
: 指定网络设备,如eth0
,[device]
需要替换为实际的网络设备名。 -
root
: 指定在根队列上应用此规则。 -
netem
: 使用网络仿真(Network Emulation)模块。 -
loss 80% 70%
: 设置丢包率。- 第一个参数是丢包率。
- 第二个可选参数是随机丢包的概率。
- 例如,
loss 80%
表示丢包率为80%,而loss 80% 70%
表示有80%的数据包会被丢弃,且这些被丢弃的包中有70%是随机选择的。
延迟
sudo tc qdisc add dev [device] root tbf rate 1024kbit latency 5000ms burst 1540
-
sudo
: 以超级用户权限执行命令。 -
tc qdisc add
: 添加一个新的队列规则。 -
dev [device]
: 指定网络设备。 -
root
: 在根队列上应用此规则。 -
tbf
: 使用令牌桶过滤器(Token Bucket Filter)模块。 -
rate 1024kbit
: 限制传输速率为1024 Kbps(千比特每秒)。 -
latency 5000ms
: 设置最大排队延迟为5000毫秒(5秒)。这意味着如果数据包排队时间超过此值,它们将被丢弃,以保持指定的速率。 -
burst 1540
: 设置令牌桶的容量为1540字节。这是在速率限制器允许的突发(burst)中可以发送的最大字节数。突发是指短时间内可以超过平均速率的数据量。
这两个命令分别模拟了极端的网络条件:一个是几乎所有的数据包都会丢失的情况,另一个是网络速率非常低且有显著延迟的情况。这些模拟可以用于测试应用程序在极端网络条件下的表现。
恢复
可以通过如下命令,将弱网模拟去除,恢复网络。
sudo tc qdisc del dev [device] root
网友评论