CN108462590B - 网络流量的监控方法及装置、计算机终端 - Google Patents
网络流量的监控方法及装置、计算机终端 Download PDFInfo
- Publication number
- CN108462590B CN108462590B CN201710090783.0A CN201710090783A CN108462590B CN 108462590 B CN108462590 B CN 108462590B CN 201710090783 A CN201710090783 A CN 201710090783A CN 108462590 B CN108462590 B CN 108462590B
- Authority
- CN
- China
- Prior art keywords
- byte number
- structure body
- protocol
- monitoring point
- original structure
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种网络流量的监控方法及装置、计算机终端。其中,该方法包括:检测指定时间段内的指定触发事件;在检测到所述指定触发事件时,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息,其中,所述监视点为通过指针指向用于采集服务质量信息的函数实现。
Description
技术领域
本申请涉及网络安全领域,具体而言,涉及一种网络流量的监控方法及装置、计算机终端。
背景技术
在机房集群中,每个服务器或服务器上运行的虚拟机需要承载大量的业务流量,常常达到每秒百万级别的业务流。由于数据量比较大,因此,要对业务流进行监控,需要占用大量的CPU资源,并且采集的数据不是很完整。例如,相关技术中提供了一种利用特定软件来采集服务质量信息的方案,但是,该方案仅能采集部分服务质量信息,例如,只能采集TCP五元组或流量等,而不能够采集完整的服务质量信息,虽然可以结合机器上运行的特定指令(例如/proc/net/tcp)补充获取剩余的服务质量信息(例如TCP五元组的丢包数据),但要上述两种方法结合使用,无法做到实时对应。而且采集成本较高,大量流量消耗10%以上的CPU,不能作为长期运行的监控项。针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种网络流量的监控方法及装置、计算机终端,以至少解决相关技术中无法保证在占用较少的CPU资源的同时,兼顾服务质量信息采集的完整性和实时性的技术问题。
根据本申请实施例的一个方面,提供了一种网络流量的监控方法,包括:检测指定时间段内的指定触发事件;在检测到所述指定触发事件时,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息,其中,所述监视点为通过指针指向用于采集服务质量信息的函数实现。
根据本申请实施例的另一方面,还提供了一种网络流量的监控装置,包括:检测模块,用于检测指定时间段内的指定触发事件;采集模块,用于在检测到所述指定触发事件时,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息,其中,所述监视点为通过指针指向用于采集服务质量信息的函数实现。
根据本申请实施例的另一方面,还提供了一种计算机终端,用于提供与用户的交互界面,所述交互界面中包括:第一控件,用于提供网络通信过程中触发检测指定时间段内的指定触发事件的按钮;第二控件,用于展示在检测到所述指定触发事件时,通过网络协议中设置的监视点采集的当前网络通信过程中的服务质量信息。
在本申请实施例中,采用通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息的方式,由于仅是通过网络协议中设置的监视点来采集服务质量信息,不需要和其它技术手段(例如在设备上运行一些特定指令)配合,因此,可以减少了CPU资源的占用,同时,由于是在网络通信过程中使用的网络协议中设置的监视点,因此可以采集较为完整的服务质量信息,进而解决了相关技术中无法保证在占用较少的CPU资源的同时,兼顾服务质量信息采集的完整性和实时性的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a是根据本申请实施例的一种TCP/IP协议栈示意图
图1b是根据本申请实施例的一种可选的网络流量的监控方法的流程示意图;
图2为根据本申请实施例的一种可选的bictcp结构体示意图;
图3为根据本申请实施例的一种可选的cubic协议下的bictcp结构体示意图;
图4示出了一种用于实现网络流量的监控方法的计算机终端(或移动设备)的硬件结构框图;
图5是根据本申请实施例的一种网络流量的监控方法的流程图;
图6是根据本申请实施例的网络流量的监控装置的结构框图;
图7是根据本申请实施例的一种计算机终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
服务质量信息:用于反映互联网协议的服务优劣性的信息,主要表现在互联网协议数据使用时的各项性能指标,例如包括但不限于TCP五元组信息、丢包率、时延等信息。
传输控制协议(Transfer Control Protocol,简称为TCP):是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
二进制增加拥塞控制(binary increase congestion control,简称为bic):TCP拥塞控制算法的一种。
Cubic算法:是一种拥塞控制算法,采用cubic curve方式实现拥塞控制,可以克服bic算法的性能缺陷,属于bic的替代升级版。
丢包率:通信测量中,丢失的数据包数量在所发送数据包中所占的比例。
消息中间件:是一种由消息传送机制或消息队列模式组成的最典型的中间件技术。通过消息中间件,应用程序或组件之间可以进行可靠的异步通讯来降低系统之间的耦合度,从而提高整个系统的可扩展性和可用性。
实施例1
在相关技术中的机房集群中,服务器或服务器上运行的虚拟机需要承载大量的业务流量,由于数据量比较大,因此,对于业务流的监控需要占用大量的CPU资源,为解决该问题,相关技术中提供了一种利用软件采集服务质量信息的方案,但是,该方案仅能采集部分服务质量信息,不能采集完整的服务质量信息,因此,如何在秒级别监控全量服务质量信息,并且尽可能小的消耗CPU,不影响业务的运行是一个亟需解决的问题。针对上述问题,本申请实施例提供一种新的拥塞控制方案,可全量采集TCP五元组、流量和丢包情况(包括但不限于丢包率、丢失的数据包等信息),时间精度较高。
为实现上述目的,本实施例采用的技术方案如下:
如图1a所示,本实施例涉及到的协议栈架构如下:
链路层:数据链路层的最基本的功能是向该层用户提供透明的和可靠的数据传送基本服务。该层的透明传输是指在该层上进行数据透传,即对传输的数据内容、格式及编码无限制,不必对传输的业务数据进行处理;该链路层的可靠性主要体现在避免信息丢失、信息干扰和信息发送的顺序不准确等方面。
IP层:IP协议是TCP/IP协议的核心,所有的TCP,UDP,控制报文协议(InternetControl Message Protocol,简称为ICMP),IP控制协议(IP Control Protocol,简称为IPCP)的数据都以IP数据格式传输。
TCP层:TCP协议是一个面向连接的、可靠的协议。它将一台主机发出的字节流无差错地发往互联网上的其他主机。在发送端,它负责把上层传送下来的字节流分成报文段并传递给下层。在接收端,它负责把收到的报文进行重组后递交给上层。TCP协议还要处理端到端的流量控制,以避免缓慢接收的接收方没有足够的缓冲区接收发送方发送的大量数据。
在应用层和TCP层之间设置有一个TCP滑动窗口,该TCP窗口可以用于拥塞控制。
应用层:应用层主要用于提供常见的网络应用服务,直接为应用进程提供服务。
在上述协议栈结构下,本实施例的网络流量的监控方法如图1b所示,包括以下处理过程:
步骤S102,在应用层和TCP层之间设置一个TCP滑动窗口,该TCP窗口可以用于拥塞控制,TCP滑动窗口分为接收窗口和发送窗口。拥塞控制协议(包括但不限于bic、cubic协议等)是传输层进行流控的一种措施,接收方通过通告发送方自己的窗口大小,从而控制发送方的发送速度,从而达到防止发送方发送速度过快而导致自己被淹没的目的。
步骤S104,在终端的操作系统默认的bic拥塞控制算法中插入一个hook,以对业务流量进行监控。此hook会在监听到TCP滑动窗口的ack应答时抓取TCP五元组、流量和丢包情况(例如丢包率)。为了可靠性的保障,TCP数据包在发送端发出后且未接收到接收端的应答前,完整的数据包会在TCP滑动窗口中进行缓存。所以tcp滑动窗口中本身就存储有TCP五元组、流量和丢包数据,因此,利用这一特点,可以直接插入一个hook。其中,上述操作系统包括但不限于linux操作系统、Windows操作系统、android操作系统等。
步骤S106:在动态插入操作系统的内核(是一种内核态的内存)时申请环形缓存区,用来存储采集到的TCP数据。为了避免占内存溢出或占用过多系统内存影响业务,所以此处设计了可调节的环形缓冲区(ringbuffer)内存。利用ringbuffer技术,实现内存灵活可调,避免内存溢出。其中,上述操作系统包括但不限于linux操作系统、Windows操作系统、android操作系统等。
现在商业服务器大部分都在使用以开源Linux kernel为核心操作系统。Kernel把内存分为内存地址空间和用户地址空间,地址空间内部可以相互访问,地址空间之间无法直接访问。用户要操作内核地址空间的数据,需要写内核模块(kernel module)插入内核地址空间。其中,用户地址空间为内存地址空间中的低位地址,内核地址空间为内存地址空间中的高位地址。
步骤S108,建立内核地址空间与用户地址空间的映射关系,由于存储的数据要传输到用户态(即用户地址空间),才能被访问侧(例如在用户侧设置一个agent,该agent可以为一个进程)采集到。此处采集内核态物理内存直接映射到用户态的技术,实现零拷贝。避免同一份数据因为地址空间的原因,进行耗时的内存拷贝。利用mapping技术,实现内核地址空间和用户地址空间的零拷贝,可以实现百万数据的轻松传输。
步骤S110,利用上述映射关系,输出数据,并通过消息中间件对业务数据进行数据缓冲和分布式计算。上面所提及方案实现了一个新的内核模块(是内核加载的一个模块,一般是指驱动程序)在TCP窗口中做数据采集。上述方案虽然可以实现了TCP五元组,流量,丢包和延迟的采集。但是其是基于bic拥塞控制算法协议之上实现的。由于kernel已经可以进行升级,例如升级到3.0+,拥塞控制算法也可以相应地升级为更高效和稳定的cubic,因此,基于linux kernel新版本的限制,无法用相同的技术手段对cubic进行升级改造。这就意味着,需要对拥塞控制算法降级使用。潜在的风险不可控,对于已经稳定运行的业务方式不可接受的。
针对上述问题,在cubic协议下实现了bic一样的功能,保持版本不改变性能不降低。以下详细说明。
从上面的描述可知,Bic协议下的业务流量的拥塞控制方案中,对TCP滑动窗口的数据结构进行了改进,即:在linux kernel的TCP/IP协议栈中,代表滑动窗口的核心数据结构是struct bictcp,在上述方案中对这个结构体进行了hook,以便在TCP窗口期中记录TCP相关数据。hook本身会额外占用struct bictcp 32-64个字节,具体结构如图2所示。
由于struct bictcp其实是一个强制转换出来的类型,其是由父结构体
struct inet_connection_sock里的icsk_ca_priv成员强转来的。而icsk_ca_priv是一个长度16的整形数组,意味着bictcp结构体的最大尺寸是16*32。由于cubic协议增加了很多新特性,所以bictcp结构体的长度已经是16*32即达到了最大长度,无法再插入hook。因此,为了能够插入hook,需要对结构体进行改进,具体实现过程如下:
struct inet_connection_sock{
······
U32icsk_ca_priv[16];→struct bictcp
······
};
由于将长度为16*32的cubic.bictcp已经替换为长度为8*32的bic.bictcp,因此,可以插入hook。以下结合图3详细说明基于Cubic协议下的新方案,如图3所示:
C语言中指针在32位平台中占用1*32个单位,在64位平台中2*32个单位。为了平台兼容性从bictcp中抽出两个32单位的成员round_start和curr_rtt,然后放入一个指针new_point,再把前面抽出来的两个成员放在new_point指向的结构体内。在后续采集过程中,TCP数据记录在新的new_point内。再更改外围逻辑,访问round_start和curr_rtt的地方,全部改为访问new_point->round_start和new_point->curr_rtt。
这样通过搬迁struct bictcp成员的方式实现了struct bictcp的插装,减小cubic结构体的长度,避免降级使用拥塞控制算法,牺牲效率和稳定性,其他部分和上面所提及的方案相同,此处不再赘述。
实施例2
根据本申请实施例,还提供了一种网络流量的监控方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例2所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图4示出了一种用于实现网络流量的监控方法的计算机终端(或移动设备)的硬件结构框图。如图4所示,计算机终端40(或移动设备40)可以包括一个或多个(图中采用402a、402b,……,402n来示出)处理器402(处理器402可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器404、以及用于通信功能的传输模块406。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图4所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端40还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。
应当注意到的是上述一个或多个处理器402和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端40(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器404可用于存储应用软件的软件程序以及模块,如本申请实施例中的方法对应的程序指令/数据存储装置,处理器402通过运行存储在存储器404内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的网络流量的监控方法。存储器404可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器404可进一步包括相对于处理器402远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端40。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置406用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端40的通信供应商提供的无线网络。在一个实例中,传输装置406包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置406可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端40(或移动设备)的用户界面进行交互。
在上述运行环境下,本申请提供了如图5所示的网络流量的监控方法。图5是根据本申请实施例2的网络流量的监控方法的流程图。如图5所示,该方法包括以下处理步骤:
步骤S502,检测指定时间段内的指定触发事件;
可选地,该步骤可以通过以下方式实现,但不限于此:检测在上述指定时间段内是否收到已发请求的应答消息,其中,在收到上述应答消息时,确定检测到上述指定触发事件。以TCP数据包的流量监控为例,为了可靠性的保障,TCP数据包在发送端发出去后未得到接收端的应答前,完整的数据包会在TCP window中缓存起来。所以tcp window中天然就有TCP五元组,流量和丢包数据。利用这一特点,直接插入一个hook做数据输出,这样可以采集到比较完整的服务质量信息。
步骤S504,在检测到上述指定触发事件时,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息,其中,上述监视点为通过指针指向用于采集服务质量信息的函数实现。
可选地,上述监视点依据以下规则设置:在上述网络协议的原始结构体的实际字节数未到达上述原始结构体所支持的最大字节数,并且上述实际字节数与上述最大字节数之差大于或等于设置上述监视点所需要的字节数时,直接在上述原始结构体中设置上述监视点;在上述网络协议的原始结构体的实际字节数到达上述原始结构体所支持的最大字节数,或者,上述实际字节数与上述最大字节数之差小于设置上述监视点所需要的字节数时,将上述原始结构体中预设数量个成员移至新的结构体内,并在上述原始结构体内设置指向上述新的结构体的指针,其中,上述预设数量个成员所占用的字节数大于或等于设置上述监视点所需要的字节数。即在一个可选实施例中,上述监视点通过以下方式确定:在上述网络协议中设置hook事件,将上述hook时间作为上述监视点。
可选地,上述预设数量个成员为依据上述原始结构体中各个成员的优先级选择的成员。可选地,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息之前,上述方法还包括:依据预设映射关系,从与用户地址空间对应的内存地址空间获取上述服务质量信息。
可选地,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息之后,将上述服务质量信息存储至内存的环形缓冲区中。
可选地,上述指定时间段包括传输控制协议TCP的滑动窗口,上述滑动窗口包括发送端口和接收窗口。
可选地,上述服务质量信息包括:TCP五元组、流量信息和丢包率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例3
根据本申请实施例,还提供了一种用于实施上述网络流量的监控方法的装置,如图6所示,该装置包括:
检测模块60,用于检测指定时间段内的指定触发事件;
采集模块62,连接至检测模块60,用于在检测到上述指定触发事件时,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息,其中,上述监视点为通过指针指向用于采集服务质量信息的函数实现。
需要说明的是,上述各个模块是可以通过软件或硬件的形式实现的,对于后者,可以表现为以下实现形式,但不限于此:上述各个模块位于同一处理器中;或者,上述各个模块位于不同的处理器中。
需要说明的是,本实施例中的优选实施方式可以参见实施例1和2中的相关描述,此处不再赘述。
实施例5
本实施例提供一种计算机终端,用于提供与用户的交互界面70,如图7上述,上述交互界面70中包括:
第一控件700,用于提供网络通信过程中触发检测指定时间段内的指定触发事件的按钮;
第二控件702,用于展示服务质量信息,该服务质量信息为在检测到上述指定触发事件时,通过网络协议中设置的监视点采集的当前网络通信过程中的服务质量信息。
需要说明的是,本实施例中的优选实施方式可以参见实施例1和2中的相关描述,此处不再赘述。
实施例6
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行网络流量的监控方法中以下步骤的程序代码:检测指定时间段内的指定触发事件;在检测到所述指定触发事件时,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息,其中,所述监视点为通过指针指向用于采集服务质量信息的函数实现。
可选地,本实施例提供的一种计算机终端的具体结构,可以参见图4所示计算机终端的结构,但并不限于此,该计算机终端包括的结构特征可以多于或少于图4所示计算机终端的结构。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:检测指定时间段内的指定触发事件;在检测到所述指定触发事件时,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息,其中,所述监视点为通过指针指向用于采集服务质量信息的函数实现。
可选的,上述处理器还可以执行如下步骤的程序代码:检测在所述指定时间段内是否收到已发请求的应答消息,其中,在收到所述应答消息时,确定检测到所述指定触发事件。
可选的,上述处理器还可以执行如下步骤的程序代码:在所述网络协议的原始结构体的实际字节数未到达所述原始结构体所支持的最大字节数,并且所述实际字节数与所述最大字节数之差大于或等于设置所述监视点所需要的字节数时,直接在所述原始结构体中设置所述监视点;
在所述网络协议的原始结构体的实际字节数到达所述原始结构体所支持的最大字节数,或者,所述实际字节数与所述最大字节数之差小于设置所述监视点所需要的字节数时,将所述原始结构体中预设数量个成员移至新的结构体内,并在所述原始结构体内设置指向所述新的结构体的指针,其中,所述预设数量个成员所占用的字节数大于或等于设置所述监视点所需要的字节数。
采用本申请实施例,提供了一种网络流量的监控方案,解决了相关技术中无法保证在占用较少的CPU资源的同时,兼顾服务质量信息采集的完整性和实时性的技术问题。
本领域普通技术人员可以理解,本实施例中提供的计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(Mobile InternetDevices,MID)、PAD等终端设备。本实施例提供的计算机终端的结构可以参见图4所示计算机终端,但不限于此。例如,本实施例提供的计算机终端还可包括比图4中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图4所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (8)
1.一种网络流量的监控方法,其特征在于,包括:
检测指定时间段内的指定触发事件;
在检测到所述指定触发事件时,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息,其中,所述监视点为通过指针指向用于采集服务质量信息的函数实现;
其中,所述监视点依据以下规则设置:在所述网络协议的原始结构体的实际字节数未到达所述原始结构体所支持的最大字节数,并且所述实际字节数与所述最大字节数之差大于或等于设置所述监视点所需要的字节数时,直接在所述原始结构体中设置所述监视点;
在所述网络协议的原始结构体的实际字节数到达所述原始结构体所支持的最大字节数,或者,所述实际字节数与所述最大字节数之差小于设置所述监视点所需要的字节数时,将所述原始结构体中预设数量个成员移至新的结构体内,并在所述原始结构体内设置指向所述新的结构体的指针,其中,所述预设数量个成员所占用的字节数大于或等于设置所述监视点所需要的字节数;
所述指定时间段包括传输控制协议TCP的滑动窗口,所述滑动窗口包括发送端口和接收窗口,所述滑动窗口用于拥塞控制,该拥塞控制对应的拥塞控制协议包括bic协议与cubic协议,在该bic协议插入一个hook,将该hook作为所述监视点,该hook用于对业务流量进行监控。
2.根据权利要求1所述的方法,其特征在于,检测指定时间段内的指定触发事件,包括:
检测在所述指定时间段内是否收到已发请求的应答消息,其中,在收到所述应答消息时,确定检测到所述指定触发事件。
3.根据权利要求1所述的方法,其特征在于,所述预设数量个成员为依据所述原始结构体中各个成员的优先级选择的成员。
4.根据权利要求1所述的方法,其特征在于,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息之前,所述方法还包括:
依据预设映射关系,从与用户地址空间对应的内存地址空间获取所述服务质量信息。
5.根据权利要求1所述的方法,其特征在于,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息之后,所述方法还包括:
将所述服务质量信息存储至内存的环形缓冲区中。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述服务质量信息包括:TCP五元组、流量信息和丢包率。
7.一种网络流量的监控装置,其特征在于,包括:
检测模块,用于检测指定时间段内的指定触发事件;
采集模块,用于在检测到所述指定触发事件时,通过网络协议中设置的监视点采集当前网络通信过程中的服务质量信息,其中,所述监视点为通过指针指向用于采集服务质量信息的函数实现;
其中,所述监视点依据以下规则设置:在所述网络协议的原始结构体的实际字节数未到达所述原始结构体所支持的最大字节数,并且所述实际字节数与所述最大字节数之差大于或等于设置所述监视点所需要的字节数时,直接在所述原始结构体中设置所述监视点;
在所述网络协议的原始结构体的实际字节数到达所述原始结构体所支持的最大字节数,或者,所述实际字节数与所述最大字节数之差小于设置所述监视点所需要的字节数时,将所述原始结构体中预设数量个成员移至新的结构体内,并在所述原始结构体内设置指向所述新的结构体的指针,其中,所述预设数量个成员所占用的字节数大于或等于设置所述监视点所需要的字节数;
所述指定时间段包括传输控制协议TCP的滑动窗口,所述滑动窗口包括发送端口和接收窗口,所述滑动窗口用于拥塞控制,该拥塞控制对应的拥塞控制协议包括bic协议与cubic协议,在该bic协议插入一个hook,该hook用于对业务流量进行监控。
8.一种计算机终端,用于提供与用户的交互界面,其特征在于,所述交互界面中包括:
第一控件,用于提供网络通信过程中触发检测指定时间段内的指定触发事件的按钮;
第二控件,用于展示在检测到所述指定触发事件时,通过网络协议中设置的监视点采集的当前网络通信过程中的服务质量信息;
其中,所述监视点依据以下规则设置:在所述网络协议的原始结构体的实际字节数未到达所述原始结构体所支持的最大字节数,并且所述实际字节数与所述最大字节数之差大于或等于设置所述监视点所需要的字节数时,直接在所述原始结构体中设置所述监视点;
在所述网络协议的原始结构体的实际字节数到达所述原始结构体所支持的最大字节数,或者,所述实际字节数与所述最大字节数之差小于设置所述监视点所需要的字节数时,将所述原始结构体中预设数量个成员移至新的结构体内,并在所述原始结构体内设置指向所述新的结构体的指针,其中,所述预设数量个成员所占用的字节数大于或等于设置所述监视点所需要的字节数;
所述指定时间段包括传输控制协议TCP的滑动窗口,所述滑动窗口包括发送端口和接收窗口,所述滑动窗口用于拥塞控制,该拥塞控制对应的拥塞控制协议包括bic协议与cubic协议,在该bic协议插入一个hook,该hook用于对业务流量进行监控。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710090783.0A CN108462590B (zh) | 2017-02-20 | 2017-02-20 | 网络流量的监控方法及装置、计算机终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710090783.0A CN108462590B (zh) | 2017-02-20 | 2017-02-20 | 网络流量的监控方法及装置、计算机终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108462590A CN108462590A (zh) | 2018-08-28 |
CN108462590B true CN108462590B (zh) | 2021-09-28 |
Family
ID=63221832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710090783.0A Active CN108462590B (zh) | 2017-02-20 | 2017-02-20 | 网络流量的监控方法及装置、计算机终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108462590B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365551B (zh) * | 2019-07-04 | 2021-05-07 | 杭州吉讯汇通科技有限公司 | 网络信息采集方法、装置、设备及介质 |
CN111722979B (zh) * | 2020-06-10 | 2024-02-13 | 北京百度网讯科技有限公司 | 质量监测方法、装置、服务器及存储介质 |
CN111800490B (zh) * | 2020-06-23 | 2023-07-14 | 深信服科技股份有限公司 | 获取网络行为数据的方法、装置及终端设备 |
CN112367269A (zh) * | 2020-10-30 | 2021-02-12 | 深圳壹账通智能科技有限公司 | 基于双指针的滑动窗口限流方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827029A (zh) * | 2010-04-21 | 2010-09-08 | 烽火通信科技股份有限公司 | 一种Linux网络设备动态标记RTP流量的方法 |
US8707417B1 (en) * | 2012-02-14 | 2014-04-22 | Trend Micro, Inc. | Driver domain as security monitor in virtualization environment |
CN104394094A (zh) * | 2014-11-28 | 2015-03-04 | 深圳市共进电子股份有限公司 | 一种上下行业务数据的QoS流量控制方法及装置 |
-
2017
- 2017-02-20 CN CN201710090783.0A patent/CN108462590B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101827029A (zh) * | 2010-04-21 | 2010-09-08 | 烽火通信科技股份有限公司 | 一种Linux网络设备动态标记RTP流量的方法 |
US8707417B1 (en) * | 2012-02-14 | 2014-04-22 | Trend Micro, Inc. | Driver domain as security monitor in virtualization environment |
CN104394094A (zh) * | 2014-11-28 | 2015-03-04 | 深圳市共进电子股份有限公司 | 一种上下行业务数据的QoS流量控制方法及装置 |
Non-Patent Citations (3)
Title |
---|
"基于Netfilter/Iptables的网络流量监控系统的设计与实现";吴小倩;《中国优秀硕士学位论文全文数据库 信息科技辑》;20131115;参见第29、30、38、39页,图3-18、3-19、3-20 * |
TCP 滑动窗口(发送窗口和接收窗口);佚名;《https://my.oschina.net/xinxingegeya/blog/485650》;20150730;全文 * |
环形缓冲区的实现原理(ring buffer);佚名;《http://www.360doc.com/content/17/0219/08/478627_630209821.shtml》;20170219;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108462590A (zh) | 2018-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108462590B (zh) | 网络流量的监控方法及装置、计算机终端 | |
EP4047934A1 (en) | Message sending method and device, readable medium and electronic device | |
US20230115570A1 (en) | System and Method for Improving Internet Communication by Using Intermediate Nodes | |
CN106850402B (zh) | 消息的传输方法和装置 | |
US8868727B2 (en) | Methods and computer program products for storing generated network application performance data | |
EP3720019B1 (en) | Internet of things data transmission method, device and system | |
US20060161733A1 (en) | Host buffer queues | |
US20170171255A1 (en) | Method and device for establishing a data connection and computer-readable medium | |
WO2017004952A1 (zh) | 用于检测和阻止恶意点击广告链接的方法和装置 | |
CN110688146A (zh) | 对监控系统进行动态配置的方法、装置以及存储介质 | |
EP2922337A1 (en) | Method for distinguishing type of communication network and method for providing content using same | |
CN104348680A (zh) | 网速检测的方法及装置 | |
CN104412565A (zh) | 用于涉及承载无关协议的套接字管理的方法 | |
CN111585815B (zh) | 一种端口数据采集方法及装置 | |
EP2922255A1 (en) | Method and apparatus for providing content by selecting data acceleration algorithm | |
CN105554096A (zh) | 一种云游戏云端服务的实现方法及系统 | |
CN108460044B (zh) | 数据的处理方法和装置 | |
CN114095876A (zh) | 广播数据的处理方法和装置、存储介质及电子装置 | |
CN109032693A (zh) | 一种加载展示信息方法、装置、电子设备及可读存储介质 | |
CN110417861B (zh) | 一种信息推送方法以及相关装置 | |
CN108494700B (zh) | 跨链路数据传输方法、装置、计算机设备及存储介质 | |
CN114070755B (zh) | 虚拟机网络流量确定方法、装置、电子设备和存储介质 | |
CN109218127B (zh) | 数据处理方法、装置以及移动终端 | |
CN111031004B (zh) | 业务流量处理的方法、业务流量学习的方法、装置及系统 | |
CN110868360B (zh) | 流量统计方法、电子设备、系统及介质 |
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 |