linux-使用tc模拟特定端口上的网络延迟
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux-使用tc模拟特定端口上的网络延迟,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2031字,纯文字阅读大概需要3分钟。
内容图文
![linux-使用tc模拟特定端口上的网络延迟](/upload/InfoBanner/zyjiaocheng/949/7ee84a0ae51941cfb87c2d9f12c35448.jpg)
我正在尝试使用ubuntu上的tc命令在来自源端口7000的tcp数据包上模拟固定时间延迟.我正在使用的命令是:
sudo tc qdisc add dev eth1 root handle 1: prio
sudo tc qdisc add dev eth1 parent 1:1 handle 2: netem delay 3000ms
sudo tc filter add dev eth1 parent 1:0 protocol ip u32 match ip sport 7000 0xffff flowid 2:1
该过滤器似乎没有造成任何延迟,请有人指出我要去哪里了吗?另外,是否可以通过任何方式ping端口或进行等效的测试延迟?
谢谢!
解决方法:
尝试这个:
sudo tc qdisc add dev eth1 root handle 1: prio priomap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
sudo tc qdisc add dev eth1 parent 1:2 handle 20: netem delay 3000ms
sudo tc filter add dev eth1 parent 1:0 protocol ip u32 match ip sport 7000 0xffff flowid 1:2
>我在prio中添加了全零的priomap,因此所有常规流量都将流过一个频段
>默认情况下,prio根据数据包的DSCP值将流量分配到不同的频段
>这意味着某些与您的过滤器不匹配的流量可能会与延迟的流量归为同一类
>然后我将netem分配给以下类别之一-1:2
>最后,我添加了您的过滤器,因此它将为匹配的数据包分配流ID 1:2
>这可能是您出错的地方
>您需要将过滤器分配给有级prio qdisc的1:2,而不是无级netem.
为了测试它,我将过滤器更改为dport 80而不是sport 7000,并连接到checkip.amazonaws.com花了我6秒钟的时间(TCP Syn的延迟为3秒,HTTP GET的延迟为3秒):
malt@ubuntu:~$wget -O - checkip.amazonaws.com
--2016-10-23 06:21:42-- http://checkip.amazonaws.com/
Resolving checkip.amazonaws.com (checkip.amazonaws.com)... 75.101.161.183, 54.235.71.200, 107.20.206.176, ...
Connecting to checkip.amazonaws.com (checkip.amazonaws.com)|75.101.161.183|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10
Saving to: ‘STDOUT’
- 0%[ ] 0 --.-KB/s X.X.X.X
- 100%[===========================================================>] 10 --.-KB/s in 0s
2016-10-23 06:21:48 (3.58 MB/s) - written to stdout [10/10]
不过,连接到其他端口(例如443-HTTPS,22-SSH等)的速度要快得多.您也可以运行sudo tc -s qdisc show dev eth1以确保netem处理的数据包数量合理.
内容总结
以上是互联网集市为您收集整理的linux-使用tc模拟特定端口上的网络延迟全部内容,希望文章能够帮你解决linux-使用tc模拟特定端口上的网络延迟所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。