linux 模拟端口占用,linux-使用tc模拟特定端口上的网络延迟

尝试这个:

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处理的数据包数量合理.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值