流量控制-超时

在接口测试的过程中,通常需要测试一些超时这样的异常场景,以下为在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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
TCP拥塞控制和流量控制网络中两个不同的概念。 TCP拥塞控制是为了防止过多的数据注入到网络中,以避免网络负载过大的情况。它是一个全局性的过程,涉及到网络中的所有主机、路由器和与网络传输性能有关的因素。常用的拥塞控制方法包括慢开始、拥塞避免、快重传和快恢复。慢开始算法在TCP连接建立时和网络出现超时时使用\[1\]。 而流量控制是作用于接收者的,它的目的是控制发送者的发送速度,使接收者能够及时接收数据,防止数据丢失。流量控制只发生在发送端和接收端之间的点对点通信中。它主要通过接收端发送的窗口大小来控制发送端的发送速度\[2\]。 总结起来,拥塞控制是为了防止网络过载,而流量控制是为了控制发送速度,使接收端能够及时接收数据。 #### 引用[.reference_title] - *1* *3* [TCP之流量控制和拥塞控制](https://blog.csdn.net/ZeroWdd/article/details/108198708)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [TCP流量控制、拥塞控制](https://blog.csdn.net/gengzhikui1992/article/details/89141184)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值