CN115550217B - 针对云网络中七层负载均衡场景的网络诊断方法及装置 - Google Patents

针对云网络中七层负载均衡场景的网络诊断方法及装置 Download PDF

Info

Publication number
CN115550217B
CN115550217B CN202211191708.0A CN202211191708A CN115550217B CN 115550217 B CN115550217 B CN 115550217B CN 202211191708 A CN202211191708 A CN 202211191708A CN 115550217 B CN115550217 B CN 115550217B
Authority
CN
China
Prior art keywords
connection
tcp
network
kernel
tcp connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211191708.0A
Other languages
English (en)
Other versions
CN115550217A (zh
Inventor
耿若鹏
卢建元
张少恺
方崇荣
吕彪
祝顺民
蒋江伟
程鹏
陈积明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN202211191708.0A priority Critical patent/CN115550217B/zh
Publication of CN115550217A publication Critical patent/CN115550217A/zh
Application granted granted Critical
Publication of CN115550217B publication Critical patent/CN115550217B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Abstract

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

Description

针对云网络中七层负载均衡场景的网络诊断方法及装置
技术领域
本发明涉及云网络网络监测领域,尤其是一种针对云网络中七层负载均衡场景的网络诊断方法及装置。
背景技术
随着信息技术的发展和互联网用户规模的不断扩大,各种互联网服务纷纷向云上迁移,云网络越来越多地成为互联网内容服务商所依赖的基础设施。云网络服务商为了提供良好的服务质量,满足互联网内容服务商的各种需求,同时也满足自己内部业务的需求,在云网络内部署了各种网络中间件(Network Middleware)。其中的七层负载均衡器(7-layer Software Load Balancer)发挥着流量分发的重要作用,可以实现智能化路由、静态资源缓存、访问控制、安全防护等重要作用。此外在很多微服务架构系统中,链路治理措施都需要在七层设备中进行,比如服务降级、熔断、异常注入等。因此,对于以七层负载均衡器为代表基于内核原理工作的云网络设备,能够进行及时而准确地网络异常检测是非常重要的。
这些网络设备通常处在云网络的链路中间位置,在其前端和后端均需要与上下游设备建立独立的TCP连接。TCP(传输控制协议,Transmission Control Protocol)是一个非常成熟的传输层协议,是目前互联网上最主流的协议之一,被广泛应用于多种业务场景下。业界针对不断出现的新应用场景,不断对TCP协议进行优化,各种新算法不断被提出,各种TCP的变体被不断引进。这些措施一方面使得TCP协议能够在新的应用场景下继续发挥重要作用,但是另一方面也使得TCP的处理机制变得复杂无比,各种相关算法、参数配置都会对TCP的性能造成影响,这使得诊断TCP连接的性能成为一个非常困难的任务。
现有的技术手段中,最常用的手段是修改内核,并打印TCP相关的内核变量,并定期输出,工程师基于这些数据,利用机器学习、或者TCP相关的机制进行推理等方法进行TCP连接的性能诊断,进一步检测相关设备的网络问题。另外,抓包也是一种重要的分析方法,网络工程师利用Tcpdump等工具,从可能存在问题的网络设备中抓取TCP报文,对报文进行详细检察,从而推断可能存在的问题。这些已有的手段并没有进行连接级的分析,缺少对TCP状态转移与相关事件的深刻刻画,因此对TCP连接的性能的诊断和分析缺少深度。
现有的很多技术已经支持从网络设备内核中采集到与TCP处理机制相关的重要变量,同时TCP协议自身在实现的时候也提供了私有数据域用以记录各种数据,eBPF等工具也提供了可供全局同步数据的数据机构。这些就使得在内核中进行连接级的分析成为可能。
发明内容
本发明的目的在于针对现有技术的不足,设计一套可以部署在云网络中七层负载均衡器中的可以直接从操作系统内核获取TCP相关变量,进行连接级分析,并根据分析数据的统计分布等进行异常检测的方法,可供各种网络管理技术使用,包括异常诊断、网络设备性能优化等。
本发明的目的是通过以下技术方案实现的:
根据本说明书的第一方面,提供一种针对云网络中七层负载均衡场景的网络诊断方法,该方法包括以下步骤:
S1、采集负载均衡器操作系统内核中与前端TCP连接和后端TCP连接相关的内核变量;所采集的内核变量和内核变量采集方法需要在实际部署中根据负载均衡器应用的业务场景决定;
S2、对步骤S1采集的数据以TCP连接为粒度存储在Socket结构体私有数据域中并进行关联分析,从而推断TCP机制中与连接性能相关的指标、TCP拥塞控制状态的变化与连接生命周期内发生的特殊事件;
S3、基于步骤S2的分析结果,对前端连接和后端连接分别进行统计分析,获得统计指标,包括TCP相关指标的分布情况、TCP拥塞控制状态的描述统计以及特殊事件的发生频率;基于负载均衡器前后端TCP连接的大量统计指标,推断网络性能下降原因,包括:负载均衡器自身处理能力限制、TCP参数设置不合理、前端客户端问题、后端服务器问题。
进一步地,所述前端连接指访问负载均衡器的各个客户端与其建立的TCP连接,所述后端连接指负载均衡器与实际提供服务的后端服务器之间的TCP连接。
进一步地,所述内核变量的采集方法可以是使用钩子(Hook)函数进行内核动态探测,也可以是对内核进行直接修改以打印相关变量,或者是编写相关的内核补丁进行数据采集等多种技术手段。
进一步地,所述内核变量的采集过程如下:
对于每一个TCP连接,记录其从建立开始的连接统计变量,包括收发报文、重传、对端窗口大小、自身拥塞窗口大小、连接建立的时间、RTT、RTO(超时重传阈值,Retransmission Timeout)、快速重传和超时重传的次数与时间戳;记录连接状态及相关状态变量,包括慢启动和拥塞避免状态的时间戳、拥塞窗口,以及在采用混合慢启动的情况下TCP连接进入拥塞避免状态的具体方式;记录特殊的TCP相关事件,包括对端零窗口、收发RST报文等事件。
进一步地,采集的变量、状态和事件,其中的一部分采用触发式记录,即只要事件或者状态发生了就进行记录;另一部分则比较灵活,可以采用固定周期T采集,也可以以整个连接生命周期为粒度进行记录。
进一步地,所述S1中,使用钩子函数进行内核动态探测(比如Kprobes,eBPF等手段和工具),或者使用内核补丁进行数据采集,数据采集过程中,在每一个TCP连接建立后,在TCP连接对应Socket结构体私有数据域中插入自定义的结构体,所述自定义的结构体包括连接统计变量字段、连接状态及相关状态变量字段、对特殊事件进行记录的字段;在TCP连接的生命周期中,利用这个私有数据域的结构体对内核变量进行记录,可以采用原子操作或先记录后处理的方法记录、更新到私有数据域中,并在TCP连接断开后由操作系统内核输出到用户空间。
进一步地,所述S2中,将不同时刻采集到的关于同一个TCP连接的相关的若干个指标进行关联分析;
利用socket结构体私有数据域中插入的自定义结构体,记录内核中相关的函数返回值与传入参数,包括处理快速重传、超时重传、慢启动、拥塞避免、窗口变化、RTT计算的内核函数;
根据参与到TCP连接处理的不同内核函数之间的调用关系,确定要记录的相关变量和参数,计算得到部分连接统计变量字段,包括快速重传和超时重传经历的时间,以及连接状态及相关状态变量字段,包括慢启动和拥塞避免状态的持续时间、期间的拥塞窗口变化;
自定义结构体中仍然采用结构体的形式来存放每次连接进入某特定状态例如拥塞避免时,从内核函数中获取的变量、状态或者事件,以便在进行关联分析时这些记录下来的数据不会混淆;
关联分析过程中,根据结构体中详细记录的数据,可以计算TCP连接整个生命周期中对端窗口大小、RTT、RTO、拥塞窗口的采样次数、平均值、极值;可以统计快速重传与超时重传持续的时间、次数、期间拥塞窗口与RTT值;可以计算慢启动与拥塞避免状态持续时间、次数、期间拥塞窗口与RTT值;从而获得比S1中直接记录更多的数据和统计值。
进一步地,所述S3中,在S2中每条TCP连接获取的数据之上进行进一步地分析,并推断可能的网络异常原因;
首先,需要在正常运行状态下在七层负载均衡器上部署本方法,采集一段时间的正常数据,比如一周,基于一周的数据计算出正常情况下不同变量、状态和特殊事件的统计特征和分布随时间变化的规律,以此得到均值和方差等,这里计算得到的特征包括但不限于平均每条TCP连接传输的数据量、RTT和RTO的均值、慢启动状态结束时的拥塞窗口值、慢启动和拥塞避免状态持续的时间、快速重传与超时重传的持续时间和次数、对端窗口值;
在运行阶段,S2中产生的各条TCP连接的数据不断输出,分别对前端连接和后端连接计算同样的特征值,并与正常运行状态下得到的特征值对比,基于柯西分布的正常阈值或者正态分布的3σ原则可以判断当前时间某指标是否出现异常。
进一步地,所述S3中,基于出现异常的指标,判断发生网络异常的原因,异常判断方法包括但不限于如下方法:
(1)出现对端零窗口的TCP连接数偏高:说明对端处理能力不足,无法及时读取接收到的数据,若发生在前端连接,则是客户端引发问题,若发生在后端连接,则是后端服务器引发问题;
(2)出现慢启动阶段结束时的拥塞窗口较小,说明当前网络较为拥塞,TCP连接的发送窗口无法得到有效增长;
(3)出现快速重传或者出现超时重传持续时间、次数偏高:说明网络中存在一定的丢包现象,若发生在后端连接中,说明负载均衡器自身可能存在处理能力不足的问题,导致了在负载均衡器队列中可能存在丢包现象;若发生在前端连接,则是前端连接设计的网络设备、链路的问题,导致了丢包现象;
(4)前端连接中出现大量的TCP连接发送报文数极少的现象:说明存在一定程度的网络攻击,攻击中产生了较多空连接;
(5)出现超时重传的TCP连接数量很多,但是有快速重传事件的连接数量较少,说明TCP参数设置不合理,快速重传机制没有发挥应有的作用;
(6)收到RST报文事件偏高:负载均衡器可能受到RST攻击;
(7)TCP连接RTT值偏高:说明前端/后端连接网络带宽有限;
(8)若发送RST报文事件与从后端连接收到RST报文事件均偏高,说明后端服务器被设置为倾向通过RST报文关闭连接,与网络无关。
根据本说明书的第二方面,提供一种针对云网络中七层负载均衡场景的网络诊断装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,其特征在于,所述处理器执行所述可执行代码时,用于实现如第一方面所述的针对云网络中七层负载均衡场景的网络诊断方法。
本发明与现有技术相比,具有如下的优点:
第一,通过在操作系统内核进行连接级的分析,本发明避免了先采集数据输出,在进行分析的传统方案带来的高昂的后续分析、存储、传输数据的成本;
第二,通过利用操作系统TCP协议在实现时提供的socket结构体进行数据的暂存和分析,本发明实现了低成本在内核中进行数据分析;
第三,通过后续的统计分析,本发明可以分析客户端到负载均衡器的前端连接以及负载均衡器到后端服务器整个链路中可能存在的网络问题。
附图说明
图1是本发明应用对象云网络中七层负载均衡器的连接拓扑图;
图2是本发明实施例提供的针对云网络中七层负载均衡场景的网络诊断方法流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
图1为本发明应用对象云网络中七层负载均衡器的连接拓扑图。前端连接指访问负载均衡器的各个客户端与其建立的TCP连接,后端连接指负载均衡器与实际提供服务的后端服务器之间的TCP连接。
图2为本发明方法流程图,如图2所示,本发明实施例提供的一种针对云网络中七层负载均衡场景的网络诊断方法,该方法包括以下步骤:
S1、采集负载均衡器操作系统内核中与前端TCP连接和后端TCP连接相关的内核变量;所采集的内核变量和内核变量采集方法需要在实际部署中根据负载均衡器应用的业务场景决定;具体地:
内核变量的采集方法可以是使用钩子(Hook)函数进行内核动态探测,也可以是对内核进行直接修改以打印相关变量,或者是编写相关的内核补丁进行数据采集等多种技术手段。内核变量的采集过程如下:
对于每一个TCP连接,记录其从建立开始的连接统计变量,包括收发报文、重传、对端窗口大小、自身拥塞窗口大小、连接建立的时间、RTT、RTO(超时重传阈值,Retransmission Timeout)、快速重传和超时重传的次数与时间戳;记录连接状态及相关状态变量,包括慢启动和拥塞避免状态的时间戳、拥塞窗口,以及在采用混合慢启动的情况下TCP连接进入拥塞避免状态的具体方式;记录特殊的TCP相关事件,包括对端零窗口、收发RST报文等事件。
采集的变量、状态和事件,其中的一部分采用触发式记录,即只要事件或者状态发生了就进行记录;另一部分则比较灵活,可以采用固定周期T采集,也可以以整个连接生命周期为粒度进行记录。
在一个实施例中,使用钩子函数进行内核动态探测(比如Kprobes,eBPF等手段和工具),或者使用内核补丁进行数据采集,数据采集过程中,在每一个TCP连接建立后,在TCP连接对应Socket结构体私有数据域中插入自定义的结构体,所述自定义的结构体包括连接统计变量字段、连接状态及相关状态变量字段、对特殊事件进行记录的字段;在TCP连接的生命周期中,利用这个私有数据域的结构体对内核变量进行记录,可以采用原子操作或先记录后处理的方法记录、更新到私有数据域中,并在TCP连接断开后由操作系统内核输出到用户空间。
对输出数据进行清洗,进行数据格式整理,剔除异常值等操作后,进行后续分析。
S2、对步骤S1采集的数据以TCP连接为粒度存储在Socket结构体私有数据域中并进行关联分析,从而推断TCP机制中与连接性能相关的指标、TCP拥塞控制状态的变化与连接生命周期内发生的特殊事件;
具体地,将不同时刻采集到的关于同一个TCP连接的相关的若干个指标进行关联分析;
利用socket结构体私有数据域中插入的自定义结构体,记录内核中相关的函数返回值与传入参数,包括处理快速重传、超时重传、慢启动、拥塞避免、窗口变化、RTT计算的内核函数;
根据参与到TCP连接处理的不同内核函数之间的调用关系,确定要记录的相关变量和参数,计算得到部分连接统计变量字段,包括快速重传和超时重传经历的时间,以及连接状态及相关状态变量字段,包括慢启动和拥塞避免状态的持续时间、期间的拥塞窗口变化;
自定义结构体中仍然采用结构体的形式来存放每次连接进入某特定状态例如拥塞避免时,从内核函数中获取的变量、状态或者事件,以便在进行关联分析时这些记录下来的数据不会混淆;
关联分析过程中,根据结构体中详细记录的数据,可以计算TCP连接整个生命周期中对端窗口大小、RTT、RTO、拥塞窗口的采样次数、平均值、极值;可以统计快速重传与超时重传持续的时间、次数、期间拥塞窗口与RTT值;可以计算慢启动与拥塞避免状态持续时间、次数、期间拥塞窗口与RTT值;从而获得比S1中直接记录更多的数据和统计值。
S3、基于步骤S2的分析结果,对前端连接和后端连接分别进行统计分析,获得统计指标,包括TCP相关指标的分布情况、TCP拥塞控制状态的描述统计以及特殊事件的发生频率;基于负载均衡器前后端TCP连接的大量统计指标,推断网络性能下降原因,包括:负载均衡器自身处理能力限制、TCP参数设置不合理、前端客户端问题、后端服务器问题。S3具体包括:
首先,需要在正常运行状态下在七层负载均衡器上部署本方法,采集一段时间的正常数据,比如一周,基于一周的数据计算出正常情况下不同变量、状态和特殊事件的统计特征和分布随时间变化的规律,以此得到均值和方差等,这里计算得到的特征包括但不限于平均每条TCP连接传输的数据量、RTT和RTO的均值、慢启动状态结束时的拥塞窗口值、慢启动和拥塞避免状态持续的时间、快速重传与超时重传的持续时间和次数、对端窗口值;
在运行阶段,S2中产生的各条TCP连接的数据不断输出,分别对前端连接和后端连接计算同样的特征值,并与正常运行状态下得到的特征值对比,基于柯西分布的正常阈值或者正态分布的3σ原则可以判断当前时间某指标是否出现异常。基于出现异常的指标,判断发生网络异常的原因,异常判断方法包括但不限于如下方法:
(1)出现对端零窗口的TCP连接数偏高:说明对端处理能力不足,无法及时读取接收到的数据,若发生在前端连接,则是客户端引发问题,若发生在后端连接,则是后端服务器引发问题;
(2)出现慢启动阶段结束时的拥塞窗口较小,说明当前网络较为拥塞,TCP连接的发送窗口无法得到有效增长;
(3)出现快速重传或者出现超时重传持续时间、次数偏高:说明网络中存在一定的丢包现象,若发生在后端连接中,说明负载均衡器自身可能存在处理能力不足的问题,导致了在负载均衡器队列中可能存在丢包现象;若发生在前端连接,则是前端连接设计的网络设备、链路的问题,导致了丢包现象;
(4)前端连接中出现大量的TCP连接发送报文数极少的现象:说明存在一定程度的网络攻击,攻击中产生了较多空连接;
(5)出现超时重传的TCP连接数量很多,但是有快速重传事件的连接数量较少,说明TCP参数设置不合理,快速重传机制没有发挥应有的作用;
(6)收到RST报文事件偏高:负载均衡器可能受到RST攻击;
(7)TCP连接RTT值偏高:说明前端/后端连接网络带宽有限;
(8)若发送RST报文事件与从后端连接收到RST报文事件均偏高,说明后端服务器被设置为倾向通过RST报文关闭连接,与网络无关。
基于上述的具体判断方法,网络运维人员可以推断七层负载均衡器是否遇到了网络异常以及具体是什么网络异常。
本申请实施例在云网络中的七层负载均衡器上实现了原型系统,并测试了方法效果。但是任何基于TCP网络栈处理报文的网络设备都可以利用此方法进行网络异常诊断、检测等。
与前述针对云网络中七层负载均衡场景的网络诊断方法的实施例相对应,本发明还提供了针对云网络中七层负载均衡场景的网络诊断装置的实施例。本发明实施例提供的一种针对云网络中七层负载均衡场景的网络诊断装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,用于实现上述实施例中的针对云网络中七层负载均衡场景的网络诊断方法。
以上所述仅是本发明的优选实施方式,虽然本发明已以较佳实施例披露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何的简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

Claims (9)

1.一种针对云网络中七层负载均衡场景的网络诊断方法,其特征在于,该方法包括以下步骤:
S1、采集负载均衡器操作系统内核中与前端TCP连接和后端TCP连接相关的内核变量;
使用钩子函数进行内核动态探测,或者使用内核补丁进行数据采集,数据采集过程中,在每一个TCP连接建立后,在TCP连接对应Socket结构体私有数据域中插入自定义的结构体,所述自定义的结构体包括连接统计变量字段、连接状态及相关状态变量字段、对特殊事件进行记录的字段;在TCP连接的生命周期中,利用这个私有数据域的结构体对内核变量进行记录,采用原子操作或先记录后处理的方法记录、更新到私有数据域中,并在TCP连接断开后由操作系统内核输出到用户空间;
S2、对步骤S1采集的数据以TCP连接为粒度存储在Socket结构体私有数据域中并进行关联分析,从而推断TCP机制中与连接性能相关的指标、TCP拥塞控制状态的变化与连接生命周期内发生的特殊事件;
S3、基于步骤S2的分析结果,对前端连接和后端连接分别进行统计分析,获得统计指标,包括TCP相关指标的分布情况、TCP拥塞控制状态的描述统计以及特殊事件的发生频率;基于负载均衡器前后端TCP连接的统计指标,推断网络性能下降原因,包括:负载均衡器自身处理能力限制、TCP参数设置不合理、前端客户端问题、后端服务器问题。
2.如权利要求1所述的方法,其特征在于,所述前端TCP连接指访问负载均衡器的各个客户端与其建立的TCP连接,所述后端TCP连接指负载均衡器与实际提供服务的后端服务器之间的TCP连接。
3.如权利要求1所述的方法,其特征在于,所述内核变量的采集方法包括:使用钩子函数进行内核动态探测、对内核进行直接修改以打印相关变量、编写相关的内核补丁进行数据采集。
4.如权利要求1所述的方法,其特征在于,所述内核变量的采集过程如下:
对于每一个TCP连接,记录其从建立开始的连接统计变量,包括收发报文、重传、对端窗口大小、自身拥塞窗口大小、连接建立的时间、RTT、RTO、快速重传和超时重传的次数与时间戳;
记录连接状态及相关状态变量,包括慢启动和拥塞避免状态的时间戳、拥塞窗口,以及在采用混合慢启动的情况下TCP连接进入拥塞避免状态的方式;
记录特殊的TCP相关事件,包括对端零窗口、收发RST报文。
5.如权利要求4所述的方法,其特征在于,采集变量、状态或者事件的方式包括:采用触发式记录、采用固定周期T采集、以整个连接生命周期为粒度进行记录。
6.如权利要求1所述的方法,其特征在于,所述S2中,将不同时刻采集到的关于同一个TCP连接的相关的若干个指标进行关联分析;
利用Socket结构体私有数据域中插入的自定义结构体,记录内核中相关的函数返回值与传入参数,包括处理快速重传、超时重传、慢启动、拥塞避免、窗口变化、RTT计算的内核函数;
根据参与到TCP连接处理的不同内核函数之间的调用关系,确定要记录的相关变量和参数,计算得到部分连接统计变量字段,包括快速重传和超时重传经历的时间,以及连接状态及相关状态变量字段,包括慢启动和拥塞避免状态的持续时间、期间的拥塞窗口变化;
自定义结构体中仍然采用结构体的形式来存放每次连接进入特定状态时,从内核函数中获取的变量、状态或者事件;
关联分析过程中,根据结构体中详细记录的数据,计算TCP连接整个生命周期中对端窗口大小、RTT、RTO、拥塞窗口的采样次数、平均值、极值;统计快速重传与超时重传持续的时间、次数、期间拥塞窗口与RTT值;计算慢启动与拥塞避免状态持续时间、次数、期间拥塞窗口与RTT值;从而获得比S1中直接记录更多的数据和统计值。
7.如权利要求1所述的方法,其特征在于,所述S3中,基于S2中每条TCP连接获取的数据进行分析,并推断可能的网络异常原因,具体为:
在正常运行状态下采集一段时间的正常数据,计算出正常情况下不同变量、状态和特殊事件的统计特征和分布随时间变化的规律,以此得到特征值;
在运行阶段,S2中产生的各条TCP连接的数据不断输出,分别对前端连接和后端连接计算同样的特征值,并与正常运行状态下得到的特征值对比,基于柯西分布的正常阈值或者正态分布的3σ原则判断当前时间指标是否出现异常。
8.如权利要求1所述的方法,其特征在于,所述S3中,基于出现异常的指标,判断发生网络异常的原因,异常判断方法包括:
(1)出现对端零窗口的TCP连接数偏高,说明对端处理能力不足,无法及时读取接收到的数据,若发生在前端连接,则是客户端引发问题,若发生在后端连接,则是后端服务器引发问题;
(2)出现慢启动阶段结束时的拥塞窗口偏小,说明当前网络拥塞,TCP连接的发送窗口无法得到有效增长;
(3)出现快速重传或者出现超时重传持续时间、次数偏高,说明网络中存在丢包现象,若发生在后端连接中,说明负载均衡器自身可能存在处理能力不足的问题,导致了在负载均衡器队列中可能存在丢包现象;若发生在前端连接,则是前端连接设计的网络设备、链路的问题,导致了丢包现象;
(4)前端连接中出现TCP连接发送报文数偏少的现象,说明存在网络攻击,攻击中产生了空连接;
(5)出现超时重传的TCP连接数量偏多,但是有快速重传事件的连接数量偏少,说明TCP参数设置不合理,快速重传机制没有发挥应有的作用;
(6)收到RST报文事件偏高,说明负载均衡器可能受到RST攻击;
(7)TCP连接RTT值偏高,说明前端/后端连接网络带宽有限;
(8)若发送RST报文事件与从后端连接收到RST报文事件均偏高,说明后端服务器被设置为倾向通过RST报文关闭连接,与网络无关。
9.一种针对云网络中七层负载均衡场景的网络诊断装置,包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,其特征在于,所述处理器执行所述可执行代码时,用于实现如权利要求1-8中任一项所述的针对云网络中七层负载均衡场景的网络诊断方法。
CN202211191708.0A 2022-09-28 2022-09-28 针对云网络中七层负载均衡场景的网络诊断方法及装置 Active CN115550217B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211191708.0A CN115550217B (zh) 2022-09-28 2022-09-28 针对云网络中七层负载均衡场景的网络诊断方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211191708.0A CN115550217B (zh) 2022-09-28 2022-09-28 针对云网络中七层负载均衡场景的网络诊断方法及装置

Publications (2)

Publication Number Publication Date
CN115550217A CN115550217A (zh) 2022-12-30
CN115550217B true CN115550217B (zh) 2023-07-07

Family

ID=84728921

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211191708.0A Active CN115550217B (zh) 2022-09-28 2022-09-28 针对云网络中七层负载均衡场景的网络诊断方法及装置

Country Status (1)

Country Link
CN (1) CN115550217B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101115002A (zh) * 2007-03-19 2008-01-30 重庆邮电大学 利用TCP Veno提高无线自组织网络性能的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070223492A1 (en) * 2005-11-23 2007-09-27 Ist International, Inc. Methods and apparatus for optimizing a TCP session for a wireless network
CN103297552B (zh) * 2012-03-02 2016-05-25 百度在线网络技术(北京)有限公司 传递客户端IPv4地址及端口至后端服务器的方法及装置
CN107645398A (zh) * 2016-07-22 2018-01-30 北京金山云网络技术有限公司 一种诊断网络性能和故障的方法和装置
CN110138590A (zh) * 2019-04-09 2019-08-16 上海交通大学 一种通用的tcp性能诊断方法及装置
CN115037658B (zh) * 2022-06-08 2023-05-02 广东电网有限责任公司 基于bpf的计量主站网络检测方法及计量主站

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101115002A (zh) * 2007-03-19 2008-01-30 重庆邮电大学 利用TCP Veno提高无线自组织网络性能的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种对应用透明的分布式系统性能分析方法;马晓晨;孔小利;;计算机工程与应用(17);全文 *

Also Published As

Publication number Publication date
CN115550217A (zh) 2022-12-30

Similar Documents

Publication Publication Date Title
EP1350352B1 (en) Auto-detection of limiting factors in a tcp connection
US10469364B2 (en) System and method for real-time load balancing of network packets
CN100356733C (zh) 记录介质、故障分析设备以及故障分析方法
US7903657B2 (en) Method for classifying applications and detecting network abnormality by statistical information of packets and apparatus therefor
CN107645398A (zh) 一种诊断网络性能和故障的方法和装置
JP2004528648A5 (zh)
CN102404170B (zh) 报文丢失检测方法、装置、及系统
CN103081403A (zh) 用于使用事件分析通信系统的操作的方法和装置
CN110855493B (zh) 用于混合环境的应用拓扑图绘制装置
CN112350854B (zh) 一种流量故障定位方法、装置、设备及存储介质
EP3316520B1 (en) Bfd method and apparatus
CN111049673A (zh) 一种服务网关中api调用统计和监控的方法及系统
CN106452941A (zh) 网络异常的检测方法及装置
CN110650020A (zh) 拟态模糊判决方法、装置及系统
CN113518057A (zh) 分布式拒绝服务攻击的检测方法、装置及其计算机设备
CN116633798A (zh) 一种基于数据分析的物联网卡数据流量监控预警系统
CN115550217B (zh) 针对云网络中七层负载均衡场景的网络诊断方法及装置
US10749765B2 (en) Method and system for monitoring communication in a network
CN110972199A (zh) 一种流量拥塞监测方法及装置
CN111565132B (zh) 一种双向转发检测报文的超时检测方法及系统
Nunes et al. Modeling communication delays in distributed systems using time series
CN112436979A (zh) 一种云网流量采集方法及系统
KR101263218B1 (ko) 단일 세션 내 단일 패킷 집성 방법 및 장치
CN114338189B (zh) 基于节点拓扑关系链的态势感知防御方法、装置及系统
CN117459298A (zh) 基于流速统计的DoS攻击检测方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant