流量控制-超时

在接口测试的过程中,通常需要测试一些超时这样的异常场景,以下为在linux环境中使用tc工具构造的超时场景:

一、先来了解一些概念

tc分为三个模块:

qdisc队列:默认配置

class分类:类,比如一类限速10MBps

filte过滤器:将特定端口划分到特定类中

二、如何查看本机网卡

命令:ifconfig

三、shell脚本

1、新建一个shell脚本:touch limit_net

2、添加权限:chmod limit_net 755

3、编辑脚本,vi limit_net(将以下命令复制到脚本中)

#!/bin/sh
tc qdisc del dev ens160 root
tc qdisc add dev ens160 root handle 1: prio bands 4
tc qdisc add dev ens160 parent 1:4 handle 40: netem delay 5s

# sport 32772 针对32772这个服务的回包,会网络延时(以下命令二选一使用)

tc filter add dev ens160 protocol ip parent 1:0 prio 4 u32 match ip sport 32772 0xffff flowid 1:4

# dst 10.128.4.51 针对发送给ip10.128.4.51 ,会网络延时
#tc filter add dev ens160 protocol ip parent 1:0 prio 4 u32 match ip dst 10.128.4.51 flowid 1:4

4、保存脚本,ESC+:wq

5、执行:sudo ./limit_net

6、测试完成后需要单独执行:tc qdisc del dev ens160 root

四、内容讲解(结合第一点概念)

1、tc qdisc del dev ens160 root

删除所有针对网卡ens160的网络限制

2、tc qdisc add dev ens160 root handle 1: prio bands 4

在没有设置filter的情况下,所有请求都会走1-3class,4是没有用的

3、tc qdisc add dev ens160 parent 1:4 handle 40: netem delay 10s

给第4个class添加一个10秒延迟的qdisc,这个qdisc的handle id为40:,类的id为1:4

4、tc filter add dev ens160 protocol ip parent 1:0 prio 4 u32 match ip sport 32772 0xffff flowid 1:4

给root qdisc添加一个filter,将发给32772端口的包都送到第4个class

这个fliter将划分给1:4这个类的数据包

prio是优先级的意思

sport→dport,dport:目的端口,sport:来源端口 

5、tc filter add dev ens160 protocol ip parent 1:0 prio 4 u32 match ip dst 10.128.4.51 flowid 1:4

将发给10.128.4.51的包都送到第4个class

dst目的地址,src源地址

备注:

整机延时(非常不推荐使用,如果设置成功每打一个字母都会延迟)

#!/bin/sh
tc qdisc add dev ens192 root handle 1: prio
tc qdisc add dev ens192 parent 1:1 handle 2: netem delay 10s

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值