一种高延迟请求的报文回溯捕获方法及装置与流程

摘要: 本发明涉及网络数据监测,特别涉及一种高延迟请求的报文回溯捕获方法及装置。背景技术:1、使用流量发生器对waf、api网关等网络设备进行高吞吐压力测试时,工程人员...
一种高延迟请求的报文回溯捕获方法及装置与流程

本发明涉及网络数据监测,特别涉及一种高延迟请求的报文回溯捕获方法及装置。

背景技术:

1、使用流量发生器对waf、api网关等网络设备进行高吞吐压力测试时,工程人员真正关注的对象通常是少数端到端延迟显著偏高的http请求。这类请求往往对应后端阻塞、垃圾回收停顿、锁竞争或慢路径处理,是定位性能缺陷的关键线索。

2、然而,此类请求在全部测试流量中的占比极低,通常不足千分之一,现有方案难以在低开销的前提下捕获此类高延迟请求报文,或者在捕获全量请求报文的同时确保不丢失此类高延迟请求报文,具体原因在于:

3、首先,全量抓包在10gbps至100gbps链路上存储与cpu开销过大,且若在网络设备本机执行抓包操作,将抢占其自身的cpu资源,导致被测延迟数据失真。

4、其次,若按固定比例随机采样则可能遗漏占比极低的高延迟请求。

5、再次,触发式抓取方案在命中规则并产生告警后记录后续报文,但高延迟请求的诊断价值集中于请求报文本身,而请求报文在触发条件满足之前已经到达,事后无法向前回溯获取。

6、最后,还存在一类采用回溯捕获机制的方案,该类方案由外部检测系统动态调整留存参数,对可疑流量进行持久化留存,并支持回溯获取历史报文。然而,该类方案的留存截断依据通常为流的大小,触发依据为入侵检测攻击特征,两者均与http请求的端到端延迟无关,无法据此筛选出高延迟请求。更为关键的是,在该类方案的触发逻辑下,触发信号需等待请求的响应完成时方才产生,而响应完成的时刻等于请求到达时刻加上端到端延迟,这导致延迟越大,请求报文等待触发的时间就越长,被后续新到达报文覆盖的概率就越高。这意味着最值得被捕获的报文恰恰最容易在触发信号产生之前被淘汰,导致该类方案在实际应用中难以有效捕获高延迟请求的报文。

7、因此亟需一种能够以有限且可预测的内存开销、在不干扰目标网络设备正常运行的前提下,对高延迟http请求的请求报文进行精准回溯捕获的技术方案。

技术实现思路

1、鉴于现有技术中的上述缺陷或不足,本发明提供了一种高延迟请求的报文回溯捕获方法及装置,旨在解决高吞吐压力测试场景下、有限且可预测的缓冲内存约束下,对高延迟的请求报文进行精准回溯捕获的技术问题。

2、本发明的一个方面,提供了一种高延迟请求的报文回溯捕获方法,包括如下步骤:

3、在目标网络设备的旁路链路上通过滚动式环形缓冲区持续捕获报文,所述滚动式环形缓冲区被配置为当存储空间已满时,新到达的报文覆盖驻留时间最长的报文,以使所述滚动式环形缓冲区仅保留最近预设时间窗内的报文;

4、响应于所述应用层解析器解析到的http请求的起始信息,获取所述应用层解析器为该http请求生成的tcp序列号范围信息,根据所述tcp序列号范围信息确定所述滚动式环形缓冲区中承载该http请求的请求报文,并将确定的请求报文标记为保留状态,以使该请求报文在所述滚动式环形缓冲区执行报文覆盖时被跳过;

5、若所述请求报文自所述http请求的起始时刻起的持续时间达到预设延迟阈值时,仍未收到所述应用层解析器发出的该http请求的响应完成信号,则判定该http请求为高延迟请求,并将所述滚动式环形缓冲区中的所述请求报文和后续到达的响应报文转移至持久存储区;若所述请求报文自所述http请求的起始时刻起的持续时间达到预设延迟阈值之前,接收到所述应用层解析器发出的该http请求的响应完成信号,则解除该请求报文的保留状态;其中,所述持续时间由所述旁路链路侧的时钟计量;

6、其中,所述预设时间窗的长度不小于所述预设延迟阈值与补偿时长之和;所述补偿时长为所述请求报文到达所述滚动式环形缓冲区至其被标记为保留状态之间的信号路径时延。

7、本发明的另一方面,还提供了一种高延迟请求的报文回溯捕获装置,包括:

8、报文捕获模块,用于在目标网络设备的旁路链路上通过滚动式环形缓冲区持续捕获报文,所述滚动式环形缓冲区被配置为当存储空间已满时,新到达的报文覆盖驻留时间最长的报文,以使所述滚动式环形缓冲区仅保留最近预设时间窗内的报文;

9、报文标记模块,用于响应于所述应用层解析器解析到的http请求的起始信息,获取所述应用层解析器为该http请求生成的tcp序列号范围信息,根据所述tcp序列号范围信息确定所述滚动式环形缓冲区中承载该http请求的请求报文,并将确定的请求报文标记为保留状态,以使该请求报文在所述滚动式环形缓冲区执行报文覆盖时被跳过;

10、判定模块,用于若所述请求报文自所述http请求的起始时刻起的持续时间达到预设延迟阈值时,仍未收到所述应用层解析器发出的该http请求的响应完成信号,则判定该http请求为高延迟请求,并将所述滚动式环形缓冲区中的所述请求报文和后续到达的响应报文转移至持久存储区;若所述请求报文自所述http请求的起始时刻起的持续时间达到预设延迟阈值之前,接收到所述应用层解析器发出的该http请求的响应完成信号,则解除该请求报文的保留状态;其中,所述持续时间由所述旁路链路侧的时钟计量;

11、参数配置模块,用于将所述预设时间窗的长度配置为不小于所述预设延迟阈值与补偿时长之和;所述补偿时长为所述请求报文到达所述滚动式环形缓冲区至其被标记为保留状态之间的信号路径时延。

12、本发明提供的一种高延迟请求的报文回溯捕获方法及装置,具有如下有益效果:

13、(1)滚动式环形缓冲区的时间窗只需覆盖预设延迟阈值加上补偿时长即可,无需覆盖目标网络设备可能出现的任意端到端延迟。由于时间窗长度不随最坏延迟增长,缓冲区所需的内存上限可根据链路速率和时间窗预先确定,不会因延迟波动而增大。

14、(2)在请求的持续时间达到预设延迟阈值时即触发报文的判定与转移存储,无需等待响应完成信号,因此被判定为高延迟请求的报文在滚动式环形缓冲区中的停留时间不会超过该预设延迟阈值,从根本上避免了请求报文因等待响应完成而被提前淘汰。

15、(3)应用层解析器在解密时同步确定每条tls记录在tcp传输层中所占的序列号范围及其所属的http请求,捕获侧据此按序列号范围关联报文,无需逐包解密,解决了明文位置与密文序列号错位的问题,并能够正确处理http/2多路复用场景下同一tcp连接上多个请求交织的报文归属问题。

16、(4)采用自适应延迟阈值机制,使被判定为高延迟请求的流量比例始终维持在较低水平。同时设置转移存储准入控制,当被判定为高延迟请求的比例或向持久存储区转移报文的速率超过预设上限时,通过对满足转移条件的请求按比例采样或提高延迟阈值的方式,将转移速率控制在持久存储区的处理能力范围内,避免系统因写入压力过大而崩溃。

17、(5)采用旁路链路部署方式,报文捕获操作在目标网络设备之外的独立链路上执行,不占用目标网络设备的cpu资源。此外,应用层解析所需的信号由独立探针模块产生,其处理流量时完全旁路目标网络设备,从而确保目标网络设备的延迟测量不受报文捕获操作的干扰。

18、(6)将被捕获的高延迟请求的应用层特征组合反馈至流量发生器,使其能够有针对性地调整流量构成,从而将高延迟请求从混合流量中分离出来,并通过二分搜索自动收敛到触发高延迟的最小参数组合。这样由系统根据测试过程中捕获到的实际情况自动调整流量发生器的发送策略,无需工程师反复手动尝试即可明确触发高延迟的具体条件,便于工程师据此定位性能缺陷的根源。