a66*_*66a 4 networking bandwidth traffic latency tc
我正在尝试使用 Dijkstra 代码找到两个主机 H1 和 H2 之间的最短路径。在该路径上的其中一个开关中设置条件。条件是:如果数据包发送到H2则自动改变路径。
我正在使用 Mininet,我想通过过滤进入交换机并发送到 H2 的数据包来使用tc来减少出站带宽,然后 Dijkstra 代码将改变路径。
我想问一下,我可以使用(tc qdisc)来控制给定链路上出站带宽的使用吗?请问TC物理链路或仿真链路上的效果呢?
是的,它tc就是为此而设计的。TC 适用于任何类型的接口(物理和软件)。最简单的队列调度器是htb(Hierarchical Token Bucket)。
典型的简单配置:
子类的汇总带宽不应超过父类的带宽。否则调度程序将不准确。
猜测接口带宽为100Mbit/s。因此,您的配置命令将如下所示:
tc qdisc add dev enp4s0f0 root handle 1: htb default 10
tc class add dev enp4s0f0 parent 1: classid 1:1 htb rate 100Mbit ceil 100Mbit quantum 15000
tc class add dev enp4s0f0 parent 1:1 classid 1:10 htb rate 80Mbit ceil 100Mbit quantum 15000
tc class add dev enp4s0f0 parent 1:1 classid 1:11 htb rate 10Mbit ceil 10Mbit quantum 15000
tc class add dev enp4s0f0 parent 1:1 classid 1:12 htb rate 10Mbit ceil 100Mbit quantum 15000
tc qdisc add dev enp4s0f0 parent 1:10 handle 10: sfq
tc qdisc add dev enp4s0f0 parent 1:11 handle 11: sfq
tc qdisc add dev enp4s0f0 parent 1:12 handle 12: sfq
Run Code Online (Sandbox Code Playgroud)
配置好类的层次结构后,还要配置分类。有许多类型的分类器,具有不同的特征和不同的用户友好度。分类器根据配置的标准检查数据包。如果数据包匹配,则将类分配给该数据包。
tc filter add dev <iface> parent 1: prio 1 protocol ip 800::1 u32 match dst ip 192.168.10.2/32 classid 1:11
tc filter add dev <iface> parent 1: prio 1 protocol ip 800::2 u32 match dst ip 192.168.10.0/24 classid 1:12
Run Code Online (Sandbox Code Playgroud)
在这个小例子中,到主机的数据包192.168.10.2将被传递到 1:11 类,因此受到 10Mbit/s 的限制。从192.168.10.0/24子网到其他地址的数据包将被传递到类 1:12。所有其他数据包将传递到默认类 (1:10)。
这是使用该tc工具的快速入门。
如果你有问题,问它。
| 归档时间: |
|
| 查看次数: |
432 次 |
| 最近记录: |