我使用openwrt 图腾模块为所有网络数据包引入了2000 to的延迟。
# This is run on the terminal of the OpenWRT router
tc qdisc add dev wlan1 root netem delay 2000ms我可以清楚地看到这一点的影响,当敲击设备在网络中。
# ping 192.168.10.164
PING 192.168.10.164 (192.168.10.164): 56 data bytes
64 bytes from 192.168.10.164: seq=0 ttl=64 time=2001.956 ms
64 bytes from 192.168.10.164: seq=1 ttl=64 time=2010.677 ms
64 bytes from 192.168.10.164: seq=2 ttl=64 time=2004.216 ms
64 bytes from 192.168.10.164: seq=3 ttl=64 time=2001.451 ms
64 bytes from 192.168.10.164: seq=4 ttl=64 time=2005.981 ms但是,如果我试图在通过nc交换消息时注意到这个延迟,那么它似乎被忽略了。
|---------------------|--------------------------------|
| Terminal 1 | Terminal 2 |
| (192.168.10.164) | 192.168.10.186 |
|---------------------|--------------------------------|
| # nc -l 2389 | |
| | # nc 192.168.10.164 2389 |
| | Hello |
| # NO 2s DELAY | |
| # ALMOST INSTANT | |
| Hello | |
|---------------------|--------------------------------|我的问题是:
netem模块的情况,那么什么才是完全正确的,它将对所有IP数据包应用延迟呢?更新这似乎是由netem模块中的一个错误引起的。在路由器重新启动并响应命令之后,我遇到了预期的延迟。
发布于 2019-09-27 09:48:28
ICMP和TCP是不同的协议,如果您的命令影响ICMP数据包,则不会影响TCP数据包。
发布于 2019-09-27 11:15:17
netem的文档在这里很好(https://wiki.linuxfoundation.org/networking/netem),另一方面,您是否检查接口是否正确,一般来说,opewwrt会创建网络设备,并且您正在向wlan发送netem,并且可能是nc进程在一个与不同设备相关联的不同网络上。
发布于 2019-09-28 22:14:20
看起来您在192.168.10.164上添加了qdisc,当您从186中选择时,由于响应时间而不是请求时间,您会得到2秒的延迟。
对于您的netcat,Hello是从186个-> 164中流出的,它不通过netem (因为它是输入到接口的)。但是如果你注意到的更近,你应该能够看到一个2秒的延迟打开连接。
如果你用另一种方式打字,你应该能看到延迟。
关于重新启动,您是否有可能在重新启动后以相反的方式进行测试?即输入164而不是186?
https://unix.stackexchange.com/questions/544009
复制相似问题