当前位置: 首页 > 专利查询>浙江大学专利>正文

针对云网络中七层负载均衡场景的网络诊断方法及装置制造方法及图纸

技术编号:36188555 阅读:13 留言:0更新日期:2022-12-31 20:58
本发明专利技术公开了一种针对云网络中七层负载均衡场景的网络诊断方法及装置,该方法通过采集云网络七层负载均衡设备内核中相关的信息,进行带状态的数据分析,推断当前TCP连接的性能表现,从而进一步推断网络中是否发生了故障以及引发网络故障的具体原因。本方法主要应用在云网络中的负载均衡器等基于内核原理工作的网络设备中。在获得精细的网络连接性能信息时,会带来一定的运行开销,针对这种开销,本方法可以通过降低对连接性能测量的采样率等方法来降低运行对网络设备本身的压力。因此,本方法可以适用于对云网络设备性能的持续性检测或者按需调用地检测等多种场景下。测或者按需调用地检测等多种场景下。测或者按需调用地检测等多种场景下。

【技术实现步骤摘要】
针对云网络中七层负载均衡场景的网络诊断方法及装置


[0001]本专利技术涉及云网络网络监测领域,尤其是一种针对云网络中七层负载均衡场景的网络诊断方法及装置。

技术介绍

[0002]随着信息技术的发展和互联网用户规模的不断扩大,各种互联网服务纷纷向云上迁移,云网络越来越多地成为互联网内容服务商所依赖的基础设施。云网络服务商为了提供良好的服务质量,满足互联网内容服务商的各种需求,同时也满足自己内部业务的需求,在云网络内部署了各种网络中间件(Network Middleware)。其中的七层负载均衡器(7

layer Software Load Balancer)发挥着流量分发的重要作用,可以实现智能化路由、静态资源缓存、访问控制、安全防护等重要作用。此外在很多微服务架构系统中,链路治理措施都需要在七层设备中进行,比如服务降级、熔断、异常注入等。因此,对于以七层负载均衡器为代表基于内核原理工作的云网络设备,能够进行及时而准确地网络异常检测是非常重要的。
[0003]这些网络设备通常处在云网络的链路中间位置,在其前端和后端均需要与上下游设备建立独立的TCP连接。TCP(传输控制协议,Transmission Control Protocol)是一个非常成熟的传输层协议,是目前互联网上最主流的协议之一,被广泛应用于多种业务场景下。业界针对不断出现的新应用场景,不断对TCP协议进行优化,各种新算法不断被提出,各种TCP的变体被不断引进。这些措施一方面使得TCP协议能够在新的应用场景下继续发挥重要作用,但是另一方面也使得TCP的处理机制变得复杂无比,各种相关算法、参数配置都会对TCP的性能造成影响,这使得诊断TCP连接的性能成为一个非常困难的任务。
[0004]现有的技术手段中,最常用的手段是修改内核,并打印TCP相关的内核变量,并定期输出,工程师基于这些数据,利用机器学习、或者TCP相关的机制进行推理等方法进行TCP连接的性能诊断,进一步检测相关设备的网络问题。另外,抓包也是一种重要的分析方法,网络工程师利用Tcpdump等工具,从可能存在问题的网络设备中抓取TCP报文,对报文进行详细检察,从而推断可能存在的问题。这些已有的手段并没有进行连接级的分析,缺少对TCP状态转移与相关事件的深刻刻画,因此对TCP连接的性能的诊断和分析缺少深度。
[0005]现有的很多技术已经支持从网络设备内核中采集到与TCP处理机制相关的重要变量,同时TCP协议自身在实现的时候也提供了私有数据域用以记录各种数据,eBPF等工具也提供了可供全局同步数据的数据机构。这些就使得在内核中进行连接级的分析成为可能。

技术实现思路

[0006]本专利技术的目的在于针对现有技术的不足,设计一套可以部署在云网络中七层负载均衡器中的可以直接从操作系统内核获取TCP相关变量,进行连接级分析,并根据分析数据的统计分布等进行异常检测的方法,可供各种网络管理技术使用,包括异常诊断、网络设备性能优化等。
[0007]本专利技术的目的是通过以下技术方案实现的:
[0008]根据本说明书的第一方面,提供一种针对云网络中七层负载均衡场景的网络诊断方法,该方法包括以下步骤:
[0009]S1、采集负载均衡器操作系统内核中与前端TCP连接和后端TCP连接相关的内核变量;所采集的内核变量和内核变量采集方法需要在实际部署中根据负载均衡器应用的业务场景决定;
[0010]S2、对步骤S1采集的数据以TCP连接为粒度存储在Socket结构体私有数据域中并进行关联分析,从而推断TCP机制中与连接性能相关的指标、TCP拥塞控制状态的变化与连接生命周期内发生的特殊事件;
[0011]S3、基于步骤S2的分析结果,对前端连接和后端连接分别进行统计分析,获得统计指标,包括TCP相关指标的分布情况、TCP拥塞控制状态的描述统计以及特殊事件的发生频率;基于负载均衡器前后端TCP连接的大量统计指标,推断网络性能下降原因,包括:负载均衡器自身处理能力限制、TCP参数设置不合理、前端客户端问题、后端服务器问题。
[0012]进一步地,所述前端连接指访问负载均衡器的各个客户端与其建立的TCP连接,所述后端连接指负载均衡器与实际提供服务的后端服务器之间的TCP连接。
[0013]进一步地,所述内核变量的采集方法可以是使用钩子(Hook)函数进行内核动态探测,也可以是对内核进行直接修改以打印相关变量,或者是编写相关的内核补丁进行数据采集等多种技术手段。
[0014]进一步地,所述内核变量的采集过程如下:
[0015]对于每一个TCP连接,记录其从建立开始的连接统计变量,包括收发报文、重传、对端窗口大小、自身拥塞窗口大小、连接建立的时间、RTT、RTO(超时重传阈值,Retransmission Timeout)、快速重传和超时重传的次数与时间戳;记录连接状态及相关状态变量,包括慢启动和拥塞避免状态的时间戳、拥塞窗口,以及在采用混合慢启动的情况下TCP连接进入拥塞避免状态的具体方式;记录特殊的TCP相关事件,包括对端零窗口、收发RST报文等事件。
[0016]进一步地,采集的变量、状态和事件,其中的一部分采用触发式记录,即只要事件或者状态发生了就进行记录;另一部分则比较灵活,可以采用固定周期T采集,也可以以整个连接生命周期为粒度进行记录。
[0017]进一步地,所述S1中,使用钩子函数进行内核动态探测(比如Kprobes,eBPF等手段和工具),或者使用内核补丁进行数据采集,数据采集过程中,在每一个TCP连接建立后,在TCP连接对应Socket结构体私有数据域中插入自定义的结构体,所述自定义的结构体包括连接统计变量字段、连接状态及相关状态变量字段、对特殊事件进行记录的字段;在TCP连接的生命周期中,利用这个私有数据域的结构体对内核变量进行记录,可以采用原子操作或先记录后处理的方法记录、更新到私有数据域中,并在TCP连接断开后由操作系统内核输出到用户空间。
[0018]进一步地,所述S2中,将不同时刻采集到的关于同一个TCP连接的相关的若干个指标进行关联分析;
[0019]利用socket结构体私有数据域中插入的自定义结构体,记录内核中相关的函数返回值与传入参数,包括处理快速重传、超时重传、慢启动、拥塞避免、窗口变化、RTT计算的内
核函数;
[0020]根据参与到TCP连接处理的不同内核函数之间的调用关系,确定要记录的相关变量和参数,计算得到部分连接统计变量字段,包括快速重传和超时重传经历的时间,以及连接状态及相关状态变量字段,包括慢启动和拥塞避免状态的持续时间、期间的拥塞窗口变化;
[0021]自定义结构体中仍然采用结构体的形式来存放每次连接进入某特定状态例如拥塞避免时,从内核函数中获取的变量、状态或者事件,以便在进行关联分析时这些记录下来的数据不会混淆;
[0022]关联分析过程中,根据结构体中详细记录的数据,可以计算TCP连接整个生命周期中对端窗口大小、RTT、RTO、本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种针对云网络中七层负载均衡场景的网络诊断方法,其特征在于,该方法包括以下步骤:S1、采集负载均衡器操作系统内核中与前端TCP连接和后端TCP连接相关的内核变量;S2、对步骤S1采集的数据以TCP连接为粒度存储在Socket结构体私有数据域中并进行关联分析,从而推断TCP机制中与连接性能相关的指标、TCP拥塞控制状态的变化与连接生命周期内发生的特殊事件;S3、基于步骤S2的分析结果,对前端连接和后端连接分别进行统计分析,获得统计指标,包括TCP相关指标的分布情况、TCP拥塞控制状态的描述统计以及特殊事件的发生频率;基于负载均衡器前后端TCP连接的大量统计指标,推断网络性能下降原因,包括:负载均衡器自身处理能力限制、TCP参数设置不合理、前端客户端问题、后端服务器问题。2.如权利要求1所述的方法,其特征在于,所述前端连接指访问负载均衡器的各个客户端与其建立的TCP连接,所述后端连接指负载均衡器与实际提供服务的后端服务器之间的TCP连接。3.如权利要求1所述的方法,其特征在于,所述内核变量的采集方法包括:使用钩子函数进行内核动态探测、对内核进行直接修改以打印相关变量、编写相关的内核补丁进行数据采集。4.如权利要求1所述的方法,其特征在于,所述内核变量的采集过程如下:对于每一个TCP连接,记录其从建立开始的连接统计变量,包括收发报文、重传、对端窗口大小、自身拥塞窗口大小、连接建立的时间、RTT、RTO、快速重传和超时重传的次数与时间戳;记录连接状态及相关状态变量,包括慢启动和拥塞避免状态的时间戳、拥塞窗口,以及在采用混合慢启动的情况下TCP连接进入拥塞避免状态的方式;记录特殊的TCP相关事件,包括对端零窗口、收发RST报文。5.如权利要求4所述的方法,其特征在于,采集变量、状态或者事件的方式包括:采用触发式记录、采用固定周期T采集、以整个连接生命周期为粒度进行记录。6.如权利要求1所述的方法,其特征在于,所述S1中,使用钩子函数进行内核动态探测,或者使用内核补丁进行数据采集,数据采集过程中,在每一个TCP连接建立后,在TCP连接对应Socket结构体私有数据域中插入自定义的结构体,所述自定义的结构体包括连接统计变量字段、连接状态及相关状态变量字段、对特殊事件进行记录的字段;在TCP连接的生命周期中,利用这个私有数据域的结构体对内核变量进行记录,采用原子操作或先记录后处理的方法记录、更新到私有数据域中,并在TCP连接断开后由操作系统内核输出到用户空间。7.如权利要求1所述的方法,其特征在于,所述S2中,将不同时刻采集到的关于同一个TCP连接的相关的若干个指标进行关联分析;利用socket结构体私有数据域中插入的自定义结构体,记录内核中相关的函数返回值与传入参数,包括处理快速重传、超时重传、慢启动、拥塞避免、窗口变化、RTT计算的内核函数;根据参与到TCP连接处理的不同内核函数之间的调用关系,确定要记录的相关变量和参数,计算...

【专利技术属性】
技术研发人员:耿若鹏卢建元张少恺方崇荣吕彪祝顺民蒋江伟程鹏陈积明
申请(专利权)人:浙江大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1