我正在确保家庭网关级别的UDPstream量延迟。 在这个家庭网关,我有两种types的stream量,TCP和UDP,我保证通过使用HTB来区分对待。 我testing的带宽等于1Mbit / s(因此连接到仿真的ADSL 1Mbit链路)。
我使用以下configuration:
tc qdisc add dev br0 handle 1: root htb default 15 tc class add dev br0 parent 1: classid 1:1 htb rate 1000kbit ceil 1000kbit tc class add dev br0 parent 1:1 classid 1:14 htb rate 200kbit ceil 1000kbit prio 1 tc class add dev br0 parent 1:1 classid 1:15 htb rate 10bit ceil 1000kbit prio 2 tc filter add dev br0 parent 1: protocol ip u32 match ip tos 0xb8 0xff flowid 1:14 (UDP) tc filter add dev br0 parent 1: protocol ip u32 match ip tos 0x00 0xff flowid 1:15 (TCP) tc qdisc add dev br0 parent 1:14 handle 20: sfq limit 40 tc qdisc add dev br0 parent 1:15 handle 50: pfifo limit 1000
为了了解stream量是如何相互作用的,对于UDP,我使用“阶梯”types的stream量,因此我以0bit / s开始,并且每10秒增加100kbit / s的stream量。 当我达到1Mbit / s时,我每10秒减less100kbit / s,直到达到零。
除此之外,我还有TCPstream量,要么是file upload,要么是简单的iperf(对观察行为没有任何影响)。
通常情况下,大多数时候,我会得到一个预期的行为。 因此,我可以很好地看到TCP / UDPstream量分离和UDP的“阶梯”趋势。 此外,UDPstream量接pipeTCP(但是TCP仍然可以发送 – 而趋势与UDP相反,因此先减less,后来增加)。
不过,我可以看到TCP完全接pipeUDPstream量几秒钟。 在testing过程中发生1到3次。 一般来说,当UDP比特率已经下降(在达到0之前大约30秒)时,至less会发生一次,TCPstream量完全接pipe几秒(3到5秒)。 我无法真正理解这种行为,因为它似乎是UDPstream量不能发送,但它不应该超过它的最高点,因为它的比特率已经下降了。
我认为这与HTB调度有关,并由于某种原因阻塞了高优先级的stream量。 因此,当计算我的高优先级业务的速率时,它不知何故高于它的小区。
我曾尝试改变不同的参数(爆裂,细胞,比率),但看不到任何改善。
预先感谢您的帮助。