服务热线
198-9911-5815
虚拟主机域名注册-常见问题 → 其他问题 → 其他问题 | ||||
一、如何安装tc命令 如果你发现tc命令在默认情况下没有安装,在Ubuntu上它是用iproute2打包的。所以安装如下: sudo apt-get install iproute2 -y 二、基本用法 您必须做的第一件事就是找出要应用于内核数据包调度程序的接口的名称。为此,发出命令: ip a 该命令将列出所有网络设备的信息(图A)。 我将通过向计算机上的ens5接口添加恒定延迟来进行演示。更具体地说,我将设备上的出站流量(出口)延迟200毫秒。为此,命令将是: sudo tc qdisc add dev ens5 root tbf rate 1024kbit latency 50ms burst 1540 上面命令中的选项是: qdisc告诉tc修改调度程序 add告诉tc添加新规则 dev ens5告诉tc该规则将应用于设备ens5 root告诉tc修改出站流量调度程序 tbf速率1024kbit告诉tc将网络降低到1024kbit速率 50ms延迟告诉tc我们将网络延迟50ms 1540告诉tc我们的存储大小 发出命令后,可以验证参数是否已通过命令应用: sudo tc qdisc show dev ens5 您应该看到正确配置了每个选项(图B)。 要删除新添加的规则,请发出命令: sudo tc qdisc del dev ens5 root 要记住的一件非常重要的事情是,一次只能将一个规则应用于一个接口。因此,为了创建与接口不同的规则,必须首先删除以前的规则。 三、如何使用tc命令模拟丢包 举例来说,假设您正在开发应用程序,则需要进行测试以查看其如何处理网络上的数据包丢失。这对于确保您的应用程序可以容忍配置不良或不可靠的网络至关重要。这是两个模拟tc丢包的示例tc命令: sudo tc qdisc add dev ens5 root netem loss 0.1% 上面的命令将随机丢弃数据包,概率为0.1%。 如果我们希望丢失数据包的概率为0.3%,而先前的数据包的丢包率为25%,该怎么办?该命令将是: sudo tc qdisc add dev ens5 root netem loss 0.3% 25% 运行上述命令后,对网络上的另一台计算机执行ping测试,您应该看到指示的数据包丢失(图C)。 有了该规则,启动您的应用程序,并查看当网络达不到标准时的运行情况。如果应用程序失败,则您还有更多工作要做。 如果该特定的丢包规则不足以满足您的要求,则可以采用Gilbert-Elliot方案,该方案定义了两种状态: Good (or drop Gap) Bad (or drop Burst) 该方案为网络损害提供了更紧密的模型,而不是简单的数据包丢失。要使用Gilbert-Elliot方案,该命令应如下所示: sudo tc qdisc add dev ens5 root netem loss gemodel 1% 10% 70% 0.1% 现在,当我们运行ping测试时,我们应该会看到与以前相似的数字,但是对于您的测试目的,数据包丢失应该更加真实(图D)。 在这里,您将看到一些使用tc命令在Linux机器上调整网络流量的示例,因此您可以更好地测试可识别网络的应用程序。有关tc的更多信息,请发出命令man tc并仔细阅读手册页。
|
||||
>> 相关文章 | ||||
没有相关文章。 |