前段时间为了测试bind递归时的SRTT算法效果,使用netem模拟了一下到几个NS的任意延迟.简单的脚本如下
tc qdisc add dev eth1 handle 1: root htb
tc class add dev eth1 parent 1: classid 1:1 htb rate 100Mbps quantum 40000
tc class add dev eth1 parent 1:1 classid 1:11 htb rate 100Mbps quantum 40000
tc class add dev eth1 parent 1:1 classid 1:12 htb rate 100Mbps quantum 40000
tc class add dev eth1 parent 1:1 classid 1:13 htb rate 100Mbps quantum 40000
tc class add dev eth1 parent 1:1 classid 1:14 htb rate 100Mbps quantum 40000
tc qdisc add dev eth1 parent 1:11 handle 10: netem delay 100ms
tc qdisc add dev eth1 parent 1:12 handle 20: netem delay 200ms
tc qdisc add dev eth1 parent 1:13 handle 30: netem delay 300ms
tc qdisc add dev eth1 parent 1:14 handle 40: netem delay 400ms
tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip dst xx.xx.1.19/32 flowid 1:11
tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip dst xx.xx.3.19/32 flowid 1:12
tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip dst xx.xx.5.19/32 flowid 1:13
tc filter add dev eth1 protocol ip parent 1: prio 3 u32 match ip dst xx.xx.7.19/32 flowid 1:14
通过在本机设置到几个NS的不同延迟,对本地的bind发请求,抓包查看Bind到不同NS的请求量,可以对比出不同版本的bind的SRTT行为差异.