CN107566206B - 一种流量测量方法、设备及系统 - Google Patents
一种流量测量方法、设备及系统 Download PDFInfo
- Publication number
- CN107566206B CN107566206B CN201710662793.7A CN201710662793A CN107566206B CN 107566206 B CN107566206 B CN 107566206B CN 201710662793 A CN201710662793 A CN 201710662793A CN 107566206 B CN107566206 B CN 107566206B
- Authority
- CN
- China
- Prior art keywords
- data
- flow
- message
- measurement data
- detected
- 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/06—Generation of reports
- H04L43/062—Generation of reports related to network traffic
-
- 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/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- 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
- H04L43/0894—Packet rate
-
- 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/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/42—Centralised routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/29—Flow control; Congestion control using a combination of thresholds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Power Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供一种流量测量方法、设备及系统,涉及通信技术领域,能够降低资源开销,提高网络吞吐率。具体方案为:报文处理设备包括缓冲区,报文处理设备获得待测报文,若缓冲区中已占用的存储空间小于预设阈值,则将待测报文的待测信息写入缓冲区,待测信息包括待测报文的流标识和待测报文的流量,从缓冲区读取待测信息,根据待测信息和第一算法,修改第一测量数据中与待测报文对应的a个数据,a为正整数,若缓冲区中已占用的存储空间大于或者等于预设阈值,则根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据,其中,w为正整数,且w小于a。本申请实施例用于流量测量。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种流量测量方法、设备及系统。
背景技术
大数据、人工智能技术的发展推动了网络智能化的发展,实现网络智能化的基础是全网数据测量,而全网数据测量需要做到基于每个报文进行信息提取和统计。
目前,现有技术中存在一种基于概要的(sketch-based)算法的流量测量技术,如图1所示,sketch-based算法可以将大量的高维数据信息映射到低维线性子空间内,从而通过对低维线性子空间数据结构的操作,可以保持待测量指标的高精度查询。其中,该线性子空间由设定的数据结构组成,通常是2维或更高维的矩阵。
其中,sketch-based算法通常支持的查询有限,比如sketch-based算法中的Count-Min Sketch算法可以查询“流f的大小是否超过阈值”,但是对于查询“找出所有超过阈值的流”,就需要枚举所有可能的数据流,而枚举海量的数据流在计算上是不可接受的。为了加强sketch-based算法的查询能力,许多sketch-based算法都需要维护额外的数据结构,由此引入了额外的资源开销。并且,针对不同的待测量,sketch-based算法通常需要不同的测量算法。当一个实际的测量任务需要多种待测量时,就要同时部署多个sketch-based算法。多个sketch-based算法的同时运行,将带来很大的资源开销。
由于sketch-based算法的资源开销大,处理效率较低,因此通常会使得未测量的报文大量堆积,从而使得大量资源用于进行报文测量,因而影响了报文的正常转发,导致网络吞吐率较低。
发明内容
本申请实施例提供一种流量测量方法、设备及系统,能够降低资源开销,提高网络吞吐率。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供了一种流量测量方法,应用于报文处理设备,该报文处理设备包括缓冲区,该方法包括:首先,报文处理设备获得待测报文。若缓冲区中已占用的存储空间小于预设阈值,则报文处理设备将待测报文的待测信息写入缓冲区,待测信息包括待测报文的流标识和待测报文的流量。之后,报文处理设备从缓冲区读取待测信息。进而,报文处理设备根据待测信息和第一算法,修改第一测量数据中与待测报文对应的a个数据,a为正整数。若缓冲区中已占用的存储空间大于或者等于预设阈值,则根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据,其中,w为正整数,且w小于a。
这样,由于w小于a,因而与采用第一算法相比,当采用第二算法处理一个待测报文时,需要修改的测量数据中与待测报文对应的数据的个数更少,因而采用第二算法处理待测报文的速度更快,效率更高,且资源开销更小。报文处理设备通过判断缓冲区是否较满,来判断报文处理设备根据第一算法处理待测报文的负担是否较重,从而在报文处理设备根据第一算法处理待测报文的负担较重时,切换为通过速度更快的第二算法来处理待测报文,从而保证报文的正常转发业务,提高网络吞吐率。
结合第一方面,在一种可能的实现方式中,a个数据为a个计数器的值,w个数据为w个计数器的值。
这样,在处理待测报文时,报文处理设备修改的第一测量数据和第二测量数据中的数据,具体是计数器的值。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,第一算法包括哈希函数,第一测量数据包括c个位置中的数据,c为正整数。报文处理设备根据待测信息和第一算法,修改第一测量数据中与待测报文对应的a个数据包括:报文处理设备根据待测报文的流标识和哈希函数,从c个位置中确定u个位置,其中,u为正整数,且u小于或者等于c。报文处理设备根据待测报文的流量,修改u个位置中的a个数据,其中,u小于或者等于a。
也就是说,在处理待测报文时,报文处理设备修改的是u个位置中的a个数据。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在从缓冲区读取待测信息之后,该方法还包括:从缓冲区删除待测报文的待测信息。
这样,可以使得缓冲区腾出空间来存储新获得的待测报文的待测信息。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,报文处理设备中存储有流表,第二测量数据包括流表中的数据,流表包括流标识与第一数据r的对应关系。报文处理设备根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据包括:根据待测信息和第二算法,修改第二测量数据中待测报文对应的第一数据rf。
该种情况下,报文处理设备修改第一测量数据中与该待测报文对应的一个数据。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,报文处理设备根据待测信息和第二算法,修改第二测量数据中待测报文对应的第一数据rf包括:当流表中包括待测报文的流标识f时,将流表中待测报文对应的第一数据rf更新为待测报文对应的第一数据rf与待测报文的流量的和。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,报文处理设备中存储有流表,流表包括流标识与第一数据r和第二数据d的对应关系。当流表中不包括待测报文的流标识f且流表已满时,在报文处理设备根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据之前,该方法还包括:计算删减值将流表中包括的每个流标识分别对应的第一数据r,更新为第一数据r与删减值的差。进而,将流表中包括的每个流标识分别对应的第二数据d,更新为第二数据d与删减值的和,而后,删除流表中满足第一预设条件的流标识与第一数据r和第二数据d的对应关系。其中,满足第一预设条件的流标识为所对应的更新后的第一数据r小于或者等于0的流标识。
其中,第一数据r的大小可以表明流标识对应的数据流的流量大小。当流表中不包括待测报文的流标识f且流表已满时,报文处理设备可以从流表中删除对应的第一数据r较小的一个或多个流标识,通过删减操作腾出流表空间,以便用于存储流量较大的数据流的流标识。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,流表包括流标识与第一数据r、第二数据d和第三数据e的对应关系。当流表中不包括待测报文的流标识f且流表已满时,报文处理设备根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据包括:若待测报文的流量大于删减值则将待测报文的流量与删减值的差,设置为待测报文对应的第一数据rf。而后,将删减值设置为待测报文对应的第二数据df。进而,将删减总流量E设置为待测报文对应的第三数据ef。而后,将待测报文的流标识f、待测报文对应的第一数据rf、待测报文对应的第二数据df以及待测报文对应的第三数据ef的对应关系插入流表。
当流表中不包括待测报文的流标识f且流表已满时,报文处理设备可以在进行删减操作后,将待测报文的流标识插入流表中。
在删减操作之后可以将删减值累加到删减总流量E上。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,报文处理设备计算删减值包括:将待测报文的流量和流表中包括的每个流标识分别对应的第一数据r按照大小顺序排序,记排序后的前两个值分别为R1和R2,最后一个值为Rk。根据R1、R2、Rk和如下表达式计算删减值 其中,δ表示常数。
这样,可以根据所有第一数据r值拟合得到一个长尾分布,通过选择阈值(即删减值),将在拟合得到的分布中的长尾部分删除。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,报文处理设备中存储有流表,流表包括流标识与第一数据r和第三数据e的对应关系。当流表中不包括待测报文的流标识f且流表未满时,报文处理设备根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据包括:将待测报文的流量设置为待测报文对应的第一数据rf。将删减总流量E设置为待测报文对应的第三数据ef。进而,将待测报文的流标识f、待测报文对应的第一数据rf以及待测报文对应的第三数据ef的对应关系插入流表。
当流表中不包括待测报文的流标识f且流表未满时,可以将待测报文对应的流标识插入流表。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,流表包括表项,表项包括流标识、第一数据r、第二数据d以及第三数据e的对应关系,第一数据r、第二数据d以及第三数据e分别为三个计数器的值。
这样,流标识对应的第一数据r、第二数据d以及第三数据e,具体可以是计数器的值。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,第二测量数据包括局部总流量,若缓冲区中已占用的存储空间大于或者等于预设阈值,则该方法还包括:报文处理设备将局部总流量更新为局部总流量与待测报文的流量的和。
也就是说,每当获得一个新的待测报文时,报文处理设备可以将该新的待测报文的流量累加到局部总流量上。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,流标识为五元组,五元组包括源互联网协议(internet protocol,IP)地址、源端口、目的IP地址、目的端口和传输层协议。或者,流标识为二元组,二元组包括源IP地址和目的IP地址。
这样,可以使得用于标识数据流的流标识的较为灵活。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,该方法还包括:报文处理设备将第一测量数据和/或第二测量数据发送给网络控制器,第一测量数据和/或第二测量数据用于网络控制器计算目标测量数据。
这样,可以使得网络控制器根据接收到的第一测量数据和/或第二测量数据计算目标测量数据,以及进行一些其它的处理。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,报文处理设备将第一测量数据和/或第二测量数据发送给网络控制器包括:根据预设周期将第一测量数据和/或第二测量数据发送给网络控制器。或者,报文处理设备接收网络控制器发送的测量数据请求消息,响应于测量数据请求消息,将第一测量数据和/或第二测量数据发送给网络控制器。
这样,报文处理设备可以周期性地向网络控制器发送测量数据,或者可以在接收到网络控制器的指示后,向网络控制器发送测量数据。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,待测报文的流标识为目标流标识,在获得待测报文之前,该方法还包括:接收网络控制器发送的指示消息,指示消息中包括目标流标识。
这样,对于具有目标流标识的待测报文,报文处理设备才会进行流量测量。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,流表对应的数据结构为哈希表或二叉树。
这样,流表具体可以通过哈希表或二叉树的形式实现。
结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,报文处理设备上配置有软件定义网络(software defined network,SDN)软件交换机。
这样,报文处理设备具体可以是软件定义网络SDN中数据面中的设备。
第二方面,本申请实施例提供一种流量测量方法,包括:网络控制器接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据,第一测量数据根据第一算法获得,第二测量数据根据第二算法获得,其中,m和n均为非负整数。而后,网络控制器合并m个第一测量数据,以获得全局第一测量数据。并且,网络控制器合并n个第二测量数据,以获得全局第二测量数据。进而,网络控制器根据全局第一测量数据和全局第二测量数据,计算目标测量数据。
这样,网络控制器可以根据报文处理设备上报的第一测量数据和第二测量数据,综合统计网络中的流量数据。
结合第二方面,在一种可能的实现方式中,目标测量数据与全局第一测量数据具有相同的数据结构。
这样,网络控制器获得的目标测量数据与根据第一算法获得的第一测量数据以及全局第一测量数据具有相同的数据结构。可以理解为,网络控制器将根据第二算法得到的全局第二测量数据转化成全局第一测量数据的形式,以恢复第二算法在删减操作中损失的流量信息,从而可以使得根据全局第一测量数据和全局第二测量数据获得的目标测量数据具有第一算法对应的测量精度。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,每个第一测量数据包括p行q列个元素。网络控制器合并m个第一测量数据,以获得全局第一测量数据包括:分别将m个第一测量数据对应位置的m个元素合并,以获得全局第一测量数据,全局第一测量数据包括p行q列个元素。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,每个第二测量数据包括局部总流量和流表,流表包括至少一个表项,表项与流标识一一对应。网络控制器合并n个第二测量数据,以获得全局第二测量数据包括:将n个第二测量数据中的n个局部总流量相加,以得到全局总流量,合并n个第二测量数据对应的n个流表的表项,以得到全局流表,全局流表中的流标识与表项一一对应。全局总流量和全局流表即为全局第二测量数据。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,表项包括流标识和流标识对应的流量数据。网络控制器合并n个第二测量数据对应的n个流表中的表项包括:在n个第二测量数据对应的n个流表的表项中,对于流标识相同的多个表项,将多个表项中的流量数据相加,以将多个表项合并成全局流表中的一个表项。其中,流标识不同的每个表项分别作为全局流表中的一个表项。
这样,在全局总流表中,每个流标识对应同一个表项。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,网络控制器根据全局第一测量数据和全局第二测量数据,计算目标测量数据包括:根据全局第一测量数据和全局第二测量数据构造优化目标函数。而后,根据凸优化算法和优化目标函数,求解目标测量数据。其中,优化目标函数的表达式为:优化目标函数满足如下约束条件:约束1:T=N+sk(x+y);约束2:|x|1+|y|1=V;约束3:rs+ds≤xs≤rs+ds+es;其中,minimize表示求解使得优化目标函数最小的自变量的值,T表示目标测量数据,N表示全局流表,V表示全局总流量,H表示全局第一测量数据,x表示H中包括的流标识对应的数据流的流量,xs表示流标识s对应的数据流的流量,y表示根据第二算法测量得到的数据流的流量中,H未包括的数据流的流量,x+y表示根据第二算法测量得到的数据流的流量,sk(x+y)表示以x+y为输入,调用第一算法得到的结果。|T|*表示T的核范数,定义为矩阵所有奇异值的和,|x|1表示向量x的L1范数,定义为x中所有数据的绝对值之和,表示向量y的弗罗贝尼乌斯范数,定义为x中所有数据的平方和。其中,α、β、γ的计算表达式分别为:γ=10σy;PN与QN分别表示矩阵N的长和宽;η(N)表示N中数据的平均值;mx与nx分别表示向量x的长和宽;σy表示y中所有数据的标准差。
一般的凸优化问题不存在解析解,即无法显式给出输出与输入之间的函数关系式,该求解方式通过近似方法,根据约束规则,在一定范围内搜索得到一个近似的局部最优解以代替所期望得到的全局最优解。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,凸优化算法包括内点法、交替方向乘子法(alternating direction method of multipliers,ADMM)或次梯度算法。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,网络控制器根据全局第一测量数据和全局第二测量数据,计算目标测量数据包括:根据全局第一测量数据和全局第二测量数据以及如下表达式计算目标测量数据:T=N+sk(x)。其中,T表示目标测量数据,N表示全局流表,x表示H中包括的流标识对应的数据流的流量,x表示根据第二算法测量得到的数据流的流量,sk(x)表示以x为输入,调用第一算法得到的结果。
这样,网络控制器可以根据x和N通过简单计算,获得目标测量数据。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,全局流表中包括表项,表项包括流标识、第一数据r和第二数据d的对应关系,x对应的数据流的流量为与数据流的流标识对应的第一数据r和第二数据d的和。
这样,网络控制器可以根据r和d获得x,并根据x和N通过简单计算,获得目标测量数据。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,全局流表中包括表项,表项包括流标识、第一数据r、第二数据d和第三数据e的对应关系,x对应的数据流的流量为与数据流的流标识对应的第一数据r、第二数据d和第三数据e的和。
这样,网络控制器可以根据r、d和e获得x,并根据x和N通过简单计算,获得目标测量数据。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,网络控制器接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据包括:周期性地接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据。或者,在网络设备接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据之前,该方法还包括:分别向每个报文处理设备发送测量数据请求消息。
这样,网络控制器可以周期性地接收报文处理设备发送的测量数据,或者可以在需要收集测量数据时,向报文处理设备发送测量数据请求消息。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,网络控制器在接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据之前,该方法还包括:分别向每个报文处理设备发送指示消息,指示消息中携带有与待测报文处理设备对应的目标流标识。其中,待测报文处理设备与目标流标识对应是指:待测报文处理设备为目标流标识对应的数据流的最后一跳设备;或者,待测报文处理设备为目标流标识对应的数据流的第一跳设备;或者,待测报文处理设备为目标流标识对应的数据流的接收端设备;或者,待测报文处理设备为目标流标识对应的数据流的发送端设备。
这样,网络控制器可以通过配置策略,预先配置报文处理设备与目标流标识的对应关系,以使得网络中同一个报文的流量仅在网络中的其中一个报文处理设备上测量并上报,而不会在多个报文处理设备上测量并上报,从而可以使得网络中各报文处理设备分别测量的报文互不重叠,避免重复测量,达到准确测量网络流量的目的。
结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,网络控制器上配置有软件定义网络SDN控制器。
这样,网络控制器具体可以是软件定义网络SDN中控制面中的控制器。
第三方面,本申请实施例提供一种报文处理设备,包括至少一个处理器、存储器、缓冲区、通信接口和总线,至少一个处理器、存储器和缓冲区通过总线相连。其中,通信接口用于当报文处理设备为报文转发设备或报文接收设备时,获得待测报文。存储器用于存储指令。处理器用于调用存储在存储器中的指令以实现:当报文处理设备为报文发送设备时获得待测报文,若缓冲区中已占用的存储空间小于预设阈值,则将待测报文的待测信息写入缓冲区,待测信息包括待测报文的流标识和待测报文的流量,从缓冲区读取待测信息,根据待测信息和第一算法,修改第一测量数据中与待测报文对应的a个数据,a为正整数,若缓冲区中已占用的存储空间大于或者等于预设阈值,则根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据,其中,w为正整数,且w小于a。缓冲区用于,在处理器将待测报文的待测信息写入缓冲区后,存储待测信息。
结合第三方面,在一种可能的实现方式中,a个数据为a个计数器的值,w个数据为w个计数器的值。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,第一算法包括哈希函数,第一测量数据包括c个位置中的数据,c为正整数,处理器具体用于:根据待测报文的流标识和哈希函数,从c个位置中确定u个位置,其中,u为正整数,且u小于或者等于c;根据待测报文的流量,修改u个位置中的a个数据,其中,u小于或者等于a。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,通信接口还用于:将第一测量数据和/或第二测量数据发送给网络控制器,第一测量数据和/或第二测量数据用于网络控制器计算目标测量数据。
结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,待测报文的流标识为目标流标识,通信接口还用于:在获得待测报文之前,接收网络控制器发送的指示消息,指示消息中包括目标流标识。
第四方面,本申请实施例提供一种网络控制器,包括至少一个处理器、存储器、通信接口和总线,至少一个处理器和存储器通过总线相连。其中,通信接口用于,接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据,第一测量数据根据第一算法获得,第二测量数据根据第二算法获得,其中,m和n均为非负整数。存储器用于存储指令。处理器用于调用存储在存储器中的指令以实现:合并m个第一测量数据,以获得全局第一测量数据,合并n个第二测量数据,以获得全局第二测量数据,根据全局第一测量数据和全局第二测量数据,计算目标测量数据。
结合第四方面,在一种可能的实现方式中,目标测量数据与全局第一测量数据具有相同的数据结构。
结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,每个第一测量数据包括p行q列个元素,处理器具体用于:分别将m个第一测量数据对应位置的m个元素合并,以获得全局第一测量数据,全局第一测量数据包括p行q列个元素。
结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,每个第二测量数据包括局部总流量和流表,流表包括至少一个表项,表项与流标识一一对应,处理器具体用于:将n个第二测量数据中的n个局部总流量相加,以得到全局总流量;合并n个第二测量数据对应的n个流表的表项,以得到全局流表,全局流表中的流标识与表项一一对应;全局总流量和全局流表即为全局第二测量数据。
结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,通信接口还用于:在接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据之前,分别向每个报文处理设备发送指示消息,指示消息中携带有与待测报文处理设备对应的目标流标识。其中,待测报文处理设备与目标流标识对应是指:待测报文处理设备为目标流标识对应的数据流的最后一跳设备;或者,待测报文处理设备为目标流标识对应的数据流的第一跳设备;或者,待测报文处理设备为目标流标识对应的数据流的接收端设备;或者,待测报文处理设备为目标流标识对应的数据流的发送端设备。
第五方面,本申请实施例提供了一种报文处理设备,包括缓冲区、获取单元、写入单元、读取单元、第一修改单元和第二修改单元。其中,获取单元用于,获得待测报文。写入单元用于,若缓冲区中已占用的存储空间小于预设阈值,则将待测报文的待测信息写入缓冲区,待测信息包括待测报文的流标识和待测报文的流量。缓冲区用于,在写入单元将待测信息写入缓冲区后,存储待测信息。读取单元用于,从缓冲区读取待测信息。第一修改单元用于,根据待测信息和第一算法,修改第一测量数据中与待测报文对应的a个数据,a为正整数。第二修改单元用于,若缓冲区中已占用的存储空间大于或者等于预设阈值,则根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据,其中,w为正整数,且w小于a。
结合第五方面,在一种可能的实现方式中,a个数据为a个计数器的值,w个数据为w个计数器的值。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,第一算法包括哈希函数,第一测量数据包括c个位置中的数据,c为正整数,第一修改单元具体用于:根据待测报文的流标识和哈希函数,从c个位置中确定u个位置,其中,u为正整数,且u小于或者等于c;根据待测报文的流量,修改u个位置中的a个数据,其中,u小于或者等于a。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,该设备还包括:删除单元,用于在读取单元从缓冲区读取待测信息之后,从缓冲区删除待测报文的待测信息。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,报文处理设备中存储有流表,第二测量数据包括流表中的数据,流表包括流标识与第一数据r的对应关系,第二修改单元具体用于:根据待测信息和第二算法,修改第二测量数据中待测报文对应的第一数据rf。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,第二修改单元具体用于:当流表中包括待测报文的流标识f时,将流表中待测报文对应的第一数据rf更新为待测报文对应的第一数据rf与待测报文的流量的和。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,流表包括流标识与第一数据r和第二数据d的对应关系,该设备还包括:处理单元,用于当流表中不包括待测报文的流标识f且流表已满时,在第二修改单元根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据之前,计算删减值将流表中包括的每个流标识分别对应的第一数据r,更新为第一数据r与删减值的差;将流表中包括的每个流标识分别对应的第二数据d,更新为第二数据d与删减值的和;删除流表中满足第一预设条件的流标识与第一数据r和第二数据d的对应关系。其中,满足第一预设条件的流标识为所对应的更新后的第一数据r小于或者等于0的流标识。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,流表包括流标识与第一数据r、第二数据d和第三数据e的对应关系,第二修改单元具体用于:当流表中不包括待测报文的流标识f且流表已满时,若待测报文的流量大于删减值则将待测报文的流量与删减值的差,设置为待测报文对应的第一数据rf;将删减值设置为待测报文对应的第二数据df;将删减总流量E设置为待测报文对应的第三数据ef;将待测报文的流标识f、待测报文对应的第一数据rf、待测报文对应的第二数据df以及待测报文对应的第三数据ef的对应关系插入流表。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,处理单元具体用于:将待测报文的流量和流表中包括的每个流标识分别对应的第一数据r按照大小顺序排序,记排序后的前两个值分别为R1和R2,最后一个值为Rk;根据R1、R2、Rk和如下表达式计算删减值 其中,δ表示常数。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,流表包括流标识与第一数据r和第三数据e的对应关系,第二修改单元具体用于:当流表中不包括待测报文的流标识f且流表未满时,将待测报文的流量设置为待测报文对应的第一数据rf;将删减总流量E设置为待测报文对应的第三数据ef;将待测报文的流标识f、待测报文对应的第一数据rf以及待测报文对应的第三数据ef的对应关系插入流表。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,流表包括表项,表项包括流标识、第一数据r、第二数据d以及第三数据e的对应关系,第一数据r、第二数据d以及第三数据e分别为三个计数器的值。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,第二测量数据包括局部总流量,更新单元还用于,将局部总流量更新为局部总流量与待测报文的流量的和。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,流标识为五元组,五元组包括源互联网协议IP地址、源端口、目的IP地址、目的端口和传输层协议;或者,流标识为二元组,二元组包括源IP地址和目的IP地址。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,该设备还包括:发送单元,用于将第一测量数据和/或第二测量数据发送给网络控制器,第一测量数据和/或第二测量数据用于网络控制器计算目标测量数据。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,发送单元具体用于:根据预设周期将第一测量数据和/或第二测量数据发送给网络控制器。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,该设备还包括:接收单元,用于接收网络控制器发送的测量数据请求消息。发送单元具体用于,响应于第一接收单元接收到的测量数据请求消息,将第一测量数据和/或第二测量数据发送给网络控制器。
结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,待测报文的流标识为目标流标识,接收单元还用于,在获取单元获得待测报文之前,接收网络控制器发送的指示消息,指示消息中包括目标流标识。
第六方面,本申请实施例提供了一种网络控制器,包括:接收单元,用于接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据,第一测量数据根据第一算法获得,第二测量数据根据第二算法获得,其中,m和n均为非负整数。第一合并单元,用于合并m个第一测量数据,以获得全局第一测量数据。第二合并单元,用于合并n个第二测量数据,以获得全局第二测量数据。计算单元,用于根据全局第一测量数据和全局第二测量数据,计算目标测量数据。
结合第六方面,在一种可能的实现方式中,目标测量数据与全局第一测量数据具有相同的数据结构。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,每个第一测量数据包括p行q列个元素,第一合并单元具体用于:分别将m个第一测量数据对应位置的m个元素合并,以获得全局第一测量数据,全局第一测量数据包括p行q列个元素。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,每个第二测量数据包括局部总流量和流表,流表包括至少一个表项,表项与流标识一一对应,第二合并单元具体用于:将n个第二测量数据中的n个局部总流量相加,以得到全局总流量;合并n个第二测量数据对应的n个流表的表项,以得到全局流表,全局流表中的流标识与表项一一对应;全局总流量和全局流表即为全局第二测量数据。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,表项包括流标识和流标识对应的流量数据,第二合并单元具体用于:在n个第二测量数据对应的n个流表的表项中,对于流标识相同的多个表项,将多个表项中的流量数据相加,以将多个表项合并成全局流表中的一个表项;流标识不同的每个表项分别作为全局流表中的一个表项。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,计算单元具体用于:根据全局第一测量数据和全局第二测量数据构造优化目标函数;根据凸优化算法和优化目标函数,求解目标测量数据。其中,优化目标函数的表达式为:优化目标函数满足如下约束条件:约束1:T=N+sk(x+y);约束2:|x|1+|y|1=V;约束3:rs+ds≤xs≤rs+ds+es;其中,minimize表示求解使得优化目标函数最小的自变量的值,T表示目标测量数据,N表示全局流表,V表示全局总流量,H表示全局第一测量数据,x表示H中包括的流标识对应的数据流的流量,xs表示流标识s对应的数据流的流量,y表示根据第二算法测量得到的数据流的流量中,H未包括的数据流的流量,x+y表示根据第二算法测量得到的数据流的流量,sk(x+y)表示以x+y为输入,调用第一算法得到的结果。|T|*表示T的核范数,定义为矩阵所有奇异值的和,|x|1表示向量x的L1范数,定义为x中所有数据的绝对值之和,表示向量y的弗罗贝尼乌斯范数,定义为x中所有数据的平方和。其中,α、β、γ的计算表达式分别为:γ=10σy。PN与QN分别表示矩阵N的长和宽;η(N)表示N中数据的平均值;mx与nx分别表示向量x的长和宽;σy表示y中所有数据的标准差。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,计算单元具体用于:根据全局第一测量数据和全局第二测量数据以及如下表达式计算目标测量数据:T=N+sk(x)。其中,T表示目标测量数据,N表示全局流表,x表示H中包括的流标识对应的数据流的流量,x表示根据第二算法测量得到的数据流的流量,sk(x)表示以x为输入,调用第一算法得到的结果。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,全局流表中包括表项,表项包括流标识、第一数据r和第二数据d的对应关系,x对应的数据流的流量为与数据流的流标识对应的第一数据r和第二数据d的和。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,表项包括流标识、第一数据r、第二数据d和第三数据e的对应关系,x对应的数据流的流量为与数据流的流标识对应的第一数据r、第二数据d和第三数据e的和。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,接收单元具体用于:周期性地接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,该网络控制器还包括:发送单元,用于分别向每个报文处理设备发送测量数据请求消息。
结合第六方面和上述可能的实现方式,在另一种可能的实现方式中,发送单元还用于:在接收单元接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据之前,分别向每个报文处理设备发送指示消息,指示消息中携带有与待测报文处理设备对应的目标流标识。其中,待测报文处理设备与目标流标识对应是指:待测报文处理设备为目标流标识对应的数据流的最后一跳设备;或者,待测报文处理设备为目标流标识对应的数据流的第一跳设备;或者,待测报文处理设备为目标流标识对应的数据流的接收端设备;或者,待测报文处理设备为目标流标识对应的数据流的发送端设备。
第七方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当其在报文处理设备上运行时,使得报文处理设备执行如上述第一方面及第一方面任一项中的流量测量方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当其在网络控制器上运行时,使得网络控制器执行如上述第二方面及第二方面任一项中的流量测量方法。
第九方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在报文处理设备上运行时,使得报文处理设备执行如上述第一方面及第一方面任一项中的流量测量方法。
第十方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在网络控制器上运行时,使得网络控制器执行上述第二方面及第二方面任一项中的流量测量方法。
第十一方面,本申请实施例提供了一种系统,该系统包括网络控制器和至少一个报文处理设备,该报文处理设备用于执行上述第一方面及第一方面任一项中的流量测量方法,该网络控制器用于执行上述第二方面及第二方面任一项中的流量测量方法。
其中,关于上述第三方面至第十一方面的有益效果,可以参见上述第一方面和第二方面中的相应描述,这里不再赘述。
附图说明
图1为现有技术提供的一种sketch-based算法的原理图;
图2为本申请实施例提供的一种网络系统架构示意图;
图3a为本申请实施例提供的一种报文处理设备的结构示意图;
图3b为本申请实施例提供的一种网络控制器的结构示意图;
图4为本申请实施例提供的一种流量测量方法流程图;
图5为本申请实施例提供的一种无锁环形队列示意图;
图6为本申请实施例提供的一种映射关系示意图;
图7为本申请实施例提供的另一种流量测量方法流程图;
图8为本申请实施例提供的一种流表示意图;
图9为本申请实施例提供的一种修改过程流程图;
图10为本申请实施例提供的一种sketch-based算法与CPU时钟周期个数的对应关系图;
图11为本申请实施例提供的另一种流量测量方法流程图;
图12为本申请实施例提供的另一种流量测量方法流程图;
图13为本申请实施例提供的一种流量测量方法与网络吞吐率的对应关系图;
图14a为本申请实施例提供的一种流量测量方法与召回率的对应关系图;
图14b为本申请实施例提供的一种流量测量方法与误检测率的对应关系图;
图14c为本申请实施例提供的一种流量测量方法与相对误差的对应关系图;
图14d为本申请实施例提供的另一种流量测量方法与召回率的对应关系图;
图14e为本申请实施例提供的另一种流量测量方法与误检测率的对应关系图;
图14f为本申请实施例提供的另一种流量测量方法与相对误差的对应关系图;
图15为本申请实施例提供的另一种报文处理设备的结构示意图;
图16为本申请实施例提供的另一种网络控制器的结构示意图;
图17为本申请实施例提供的另一种报文处理设备的结构示意图;
图18为本申请实施例提供的另一种网络控制器的结构示意图。
具体实施方式
为了便于理解,示例的给出了部分与本申请实施例相关概念的说明以供参考。如下所示:
局域网:指在某一区域内由多台计算机互联成的计算机组。
报文发送端设备:产生报文并发送的设备。
报文转发设备:接收一个设备发送的报文,并将该报文转发给另外的设备的设备。
报文接收端设备:报文的目的端接收设备。
队列:一种特殊的线性表,只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。
软件定义网络:通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以包括三种关系,例如,A和/或B,可以表示:单独包括A,同时包括A和B,单独包括B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
本申请实施例涉及的网络系统的基本架构示意图可以参见图2,其中,该网络系统01可以包括至少一个报文处理设备100和网络控制器200。示例性的,该网络系统01具体可以是一个局域网(例如企业网、校园网),数据中心网络,也可以是广域网等通信网络。其中,报文处理设备100用于发送、接收或转发报文,具体可以是主机、路由器、交换机等设备。网络控制器200用于对网络中的报文处理设备以及其它设备进行控制和管理。
示例性的,以报文处理设备100为交换机为例,图3a提供了一种交换机10的结构示意图,该交换机10可以包括线卡和转发模块。其中,线卡可以是网络线路与交换机之间的接口,转发模块用于将报文在线卡之间传输。
图3b提供了一种网络控制器200的结构示意图,该网络控制器200可以包括接口、网络功能模块、转发指令模块和网络监控管理模块。其中,网络接口允许网络管理人员部署开发各个网络功能,例如资源管理、路径计算和控制策略等。网络功能模块包括各种网络管理与控制程序,转发指令下发模块将各种管理与控制程序对应的指令下发给数据平面的交换机与路由器,网络监控管理模块可以用于对网络状态进行监管。
本申请实施例提供一种流量测量方法,涉及图2所示网络系统中的报文处理设备和网络控制器,且报文处理设备中设置有缓冲区。参见图4,该方法可以包括:
101、报文处理设备获得待测报文。
其中,待测报文是指待测量流量的报文。其中的流量是指报文在网络传输过程中产生的流量,具体可以指报文的大小,例如报文的字节数等。其中的报文可以包括任意形式或任意定义下的报文,例如IP报文、介质访问控制层(media access control,MAC)报文、因特网控制报文协议(internet control message protocol,ICMP)报文,传输控制协议(transmission control protocol,TCP)报文,用户数据报协议(user datagramprotocol,UDP)报文等。
当报文处理设备为不同设备时,报文处理设备获得待测报文的方式也不同。例如,当报文处理设备为报文发送端设备时,报文处理设备具体可以指产生报文的主机,此时报文处理设备可以直接获取由主机上的程序生成的网络报文。当报文处理设备为报文接收端设备或报文转发设备时,报文处理设备获得待测报文是指从其它设备接收待测报文。
在步骤101之后,可以转到步骤102或步骤105进行处理,以对待测报文的流量进行测量。
102、若缓冲区中已占用的存储空间小于预设阈值,则报文处理设备将待测报文的待测信息写入缓冲区,待测信息包括待测报文的流标识和待测报文的流量。
其中,流标识用于标识待测报文对应的数据流,流标识不同待测报文所属(所对应)的数据流也不同。每个待测报文可以对应一个流标识,每个流标识可以对应多个待测报文。同样,每个待测报文可以对应一种数据流,每种数据流可以对应多个待测报文。
待测报文的待测信息可以包括待测报文的流量大小以及待测报文对应的流标识。例如,待测信息具体可以为待测报文中用于表示流量大小的字段以及用于表示流标识的字段。或者,待测信息具体可以为待测报文的头部信息,头部信息中包括用于表示流量大小的字段以及用于表示流标识的字段。或者,待测信息具体可以为待测报文本身,待测报文中包括用于表示流量大小的字段以及用于表示流标识的字段。
其中,预设阈值可以根据实际需要进行设定,例如可以为90%。在上述步骤101之后,若缓冲区中已占用的存储空间小于预设阈值,即缓冲区不是很满,则报文处理设备可以将待测报文的待测信息写入缓冲区,从而将待测报文的待测信息进行缓存。
示例性的,缓冲区可以容纳几十或几百个待测报文的待测信息。并且缓冲区的大小可以设置为待测信息所占空间大小的整数倍,例如当待测信息为待测报文的头部信息,且头部信息的大小为17字节时,缓冲区的大小可以设置为17字节的整数倍,例如可以为1700字节。这样,缓冲区可以容纳整数个完整的待测信息。
需要注意的是,若当前待测报文为待测报文1,则在将待测报文1的待测信息写入缓冲区之前,缓冲区可能为空,或者缓冲区可能已保存有其它待测报文的待测信息。
103、报文处理设备从缓冲区读取待测信息。
在步骤102中将待测报文1的待测信息写入缓冲区后,报文处理设备可从缓冲区读取在步骤102中写入缓冲区的待测报文1的待测信息。
其中,若在将待测报文1的待测信息写入缓冲区之前,缓冲区为空,则在将待测报文1的待测信息写入缓冲区后,报文处理设备可以直接读取待测报文1的待测信息。或者,若在将待测报文1写入缓冲区之前,缓冲区中已存储有其它待测报文的待测信息,则在将待测报文1的待测信息写入缓冲区后,报文处理设备可以先读取其它待测报文的待测信息,而后再读取待测报文1的待测信息。
例如,在一种实现方式中,缓冲区中的数据结构具体可以为一个先进先出的队列。这样,报文处理设备可以按照待测报文的待测信息写入缓冲区的先后顺序,对待测报文进行测量。
104、报文处理设备根据待测信息和第一算法,修改第一测量数据中与待测报文对应的a个数据,a为正整数。
其中,第一测量数据与第一算法对应,第一测量数据用于保存根据第一算法测量的至少一个待测报文的流量。当报文处理设备从缓冲区读取待测报文1的待测信息后,报文处理设备可以根据待测报文1待测信息中的流标识和流量以及第一算法,修改第一测量数据中与待测报文1对应的a个数据。
105、若缓冲区中已占用的存储空间大于或者等于预设阈值,则报文处理设备根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据,其中,w为正整数,且w小于a。
其中,第二测量数据与第二算法对应,第二测量数据用于保存根据第二算法测量的至少一个待测报文的流量。在上述步骤101之后,若缓冲区中已占用的存储空间大于或者等于预设阈值,即缓冲区较满,则报文处理设备可以根据待测报文1待测信息中的流标识和流量以及第二算法,修改第二测量数据中与待测报文1对应的w个数据。
需要说明的是,在本申请实施例中,w小于a。也就是说,与采用第一算法相比,当采用第二算法处理一个待测报文时,需要修改的测量数据中与待测报文对应的数据的个数更少,因而采用第二算法处理待测报文的速度更快,效率更高,且资源开销更小。因而,在本申请实施例中,待测报文通过缓冲区和第一算法进行处理的方式可以称为慢通道处理方式,待测报文通过第二算法进行处理的方式可以称为快通道处理方式。
其中,值得注意的是,本申请实施例中“处理待测报文”的“处理”是指,根据待测报文的流标识采集或测量待测报文的流量。
也就是说,在本申请实施例中,在获得待测报文后,当缓冲区不是很满时,报文处理设备可以根据第一算法处理待测报文;而当缓冲区较满时,可以说明根据第一算法处理待测报文时产生了堆积,根据第一算法不能及时完成待测报文的处理任务,此时报文处理设备可以根据速度更快的第二算法测量待测报文,以避免持续采用第一算法处理待测报文使得待测报文大量堆积,从而过多占用资源开销,影响报文处理设备报文的正常转发业务,从而影响网络吞吐率。
因此,本申请实施例提供的流量测量方法,可以通过判断缓冲区是否较满,来判断报文处理设备根据第一算法处理待测报文的负担是否较重,从而在报文处理设备根据第一算法处理待测报文的负担较重时,切换为通过速度更快的第二算法来处理待测报文,从而保证报文的正常转发业务,提高网络吞吐率。
在本申请实施例中,参见图5,缓冲区对应的数据结构可以是无锁环形队列。读者(写者)记录各自的读(写)位置。每完成一次读取(写入)操作,其位置向前移动一位。在其他形式的缓冲区中,通常持有锁的操作可以执行,未持有锁的操作不能执行,一个操作释放锁之后,另一个操作才能进行,因而缓冲区的读取操作和写入操作通常不能同时进行。而在本申请实施例提供的如图5所示的无锁环形队列中,读取操作和写入操作通常可以同时进行,而在读取位置与写入位置相邻较近时才不能同时进行读取操作和写入操作,因而采用无锁环形队列可以使得处理效率较高。
在本申请实施例中,第一算法可以包括哈希函数,第一测量数据可以包括c个位置中的数据,c为正整数。参见图6所示的映射关系,报文处理设备在上述步骤104中根据待测信息和第一算法,修改第一测量数据中与待测报文对应的a个数据可以包括:
1041、报文处理设备根据待测报文的流标识和哈希函数,从c个位置中确定u个位置,其中,u为正整数,且u小于或者等于c。
1042、报文处理设备根据待测报文的流量,修改u个位置中的a个数据。
其中,u小于或者等于a。也就是说,u个位置中的每个位置可以对应a个数据中的至少一个数据。
在本申请实施例中,一种具体的实现方式可以为,上述步骤104中与第一算法对应的第一测量数据中的a个数据,具体可以为a个计数器的值;上述步骤105中,与第二算法对应的第二测量数据中的w个数据,具体可以为w个计数器的值。这样,在处理一个待测报文时,采用第一算法需要更新a个计数器的值,而采用第二算法需要更新w个计数器的值,且w小于a。
本申请实施例中的第一算法可以为测量精度较高的算法,例如sketch-based算法。sketch-based算法具体可以有多种,例如FlowRadar、RevSketch、UnivMon、Deltoid、TwoLevel、FM、kMin、LC、MRAC算法等。这样,与现有技术相比,本申请实施例提供的流量测量方法可以在通过缓冲区确定采用sketch-based算法无法及时完成待测报文的处理任务时,通过处理速度更快的第二算法处理待测报文,从而避免待测报文的大量堆积,提高网络吞吐率。
以下将以第一算法为sketch-based算法为例进行说明。
当第一算法为sketch-based算法时,第一测量数据可以对应一个sketch数据结构,sketch数据结构的示意图可以参见图6,sketch数据结构中的第一测量数据可以表示为矩阵形式。sketch-based算法提取待测报文的流标识,根据多个哈希函数对待测报文的流标识进行计算,从而计算获得的哈希结果,选择矩阵中的若干个单元格,进而根据待测报文的流量更新每个所选单元格中的数据。在一种实现方式中,矩阵中的每个单元格包含一个或多个计数器。通常,在不做修改的情况下,单元格中计数器的初始值可以为0。在另外的实现方式中,矩阵中的每个单元格也可以比特数据,或者键-值映射结构等。
其中,当矩阵中的每个单元格包含一个或多个计数器时,报文处理设备在步骤104中修改的a个数据可以是矩阵中至少一个单元格对应的a个计数器的值,且a通常大于或者等于4。
另外,在本申请实施例提供的测量算法中,报文处理设备中部署的第一算法可以为多个,即报文处理设备中可以同时部署有多种sketch-based算法,每种sketch-based算法分别对应一个sketch数据结构,从而分别对应一个第一测量数据。在上述步骤104中,针对每种sketch-based算法,报文处理设备可以分别修改该种sketch-based算法对应的第一测量数据中的a个数据。其中,不同sketch-based算法对应的a的具体数值可以不同。
进一步地,参见图7,在上述步骤103之后,该流量测量方法还可以包括:
106、报文处理设备从缓冲区删除待测报文的待测信息。
在待产报文的待测信息被读取后,报文处理设备可以将待测报文的待测信息从缓冲区删除,这样可以腾出存储空间以写入新获得的其它待测报文的待测信息。
在本申请实施例中,第二测量数据可以对应一个流表,报文处理设备中存储有该流表,第二测量数据包括流表中的数据。示例性的,该流表对应的数据结构具体可以为哈希表或二叉树等。其中,该流表占用的存储空间可以较小,例如可以为几个kb。
在一种情况下,流表包括流标识与第一数据r的对应关系,即包括流标识对应的数据流与第一数据r的对应关系,在上述步骤105中,报文处理设备根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据具体可以包括:
1051、报文处理设备根据待测信息和第二算法,修改第二测量数据中待测报文对应的第一数据rf。
在该种情况下,第二测量数据包括流标识与第一数据r的对应关系,报文处理设备根据待测信息中待测报文的流标识和第二算法可以确定与待测报文的流标识f对应的第一数据r,并根据待测信息中待测报文的流量修改第一数据r。该种情况下,w可以是1,即报文处理设备修改第二测量数据中待测报文对应的第一数据rf这1个数据。
其中,流表中可以包含有计数器,待测报文对应的第一数据rf具体可以是计数器的值,即报文处理设备可以更新1个计数器的值,此时的w为1。
具体的,上述步骤1051具体可以包括:
1052、当流表中包括待测报文的流标识f时,将流表中待测报文对应的第一数据rf更新为待测报文对应的第一数据rf与待测报文的流量的和。
当流表中已经存在待测报文的流标识f时,流表中也存在待测报文对应的流标识f与待测报文对应的第一数据rf的对应关系,此时报文处理设备可以将待测报文对应的第一数据rf更新为待测报文对应的第一数据rf与待测报文的流量的和,从而在处理待测报文时只修改待测报文对应的第一数据rf这1个数据。
在另一种情况下,流表中包括流标识与第一数据r和第二数据d的对应关系,即包括流标识对应的数据流与第一数据r和第二数据d的对应关系。当流表中不包括待测报文的流标识f且流表已满时,报文处理设备可以将流量较小的数据流对应的流标识、第一数据r和第二数据d从流表中删除。具体的,在上述步骤105之前,该方法还可以包括:
204、报文处理设备删除满足第一预设条件的流标识与第一数据r和第二数据d的对应关系。
其中,满足第一预设条件的流标识为所对应的更新后的第一数据r小于或者等于0的流标识。
上述步骤201-步骤204对应的操作可以称为删减操作,删减操作将损失一部分流量信息。在删减操作中,报文处理设备可以将对应的第一数据r小于删减值的数据流所对应的流标识、第一数据r以及第二数据d删除,即报文处理设备可以将第一数据r较小的一些数据流从流表中删除,以使得流表可以保存第一数据r较大的数据流所对应的流标识。
进一步地,流表中可以包括流标识与第一数据r、第二数据d和第三数据e的对应关系。当流表中不包括待测报文的流标识f且流表已满时,在步骤201-204的基础上,上述步骤105具体可以包括:
1055、报文处理设备将删减总流量E设置为待测报文对应的第三数据ef。
1056、报文处理设备将待测报文的流标识f、待测报文对应的第一数据rf、待测报文对应的第二数据df以及待测报文对应的第三数据ef的对应关系插入流表。
当待测报文的流量大于删减值时,可以说明待测报文的数据流的流量较大,该数据流对应的流标识、第一数据r和第二数据d可以保存在流表中,因而可以将待测报文的流标识f、待测报文对应的第一数据rf、待测报文对应的第二数据df以及待测报文对应的第三数据ef的对应关系插入流表中。
在该种情况下,报文处理设备在步骤105中可以修改与待测报文对应的第一数据rf、第二数据df以及第三数据ef,即需要修改w=3个数据。
在本申请实施例中,第一数据r可以理解为对应的数据流在经过删减操作后的剩余流量;当删减操作为0次时,第一数据r可以为待测报文的流量,该待测报文所对应的数据流的流标识与该第一数据r对应。第二数据d可以理解为对应的数据流在删减操作中损失的流量。第三数据e可以理解为对应的流标识在本次插入流表前,损失的最大流量的估计值。
其中,在上述步骤1055中,报文处理设备将删减总流量E设置为待测报文对应的第三数据ef。也就是说,在将流标识f插入流表时,流标识f在本次插入流表前损失的最大流量的估计值为删减总流量E。
在上述步骤201-204以及步骤1056后,该方法还可以包括:
也就是说,删减总流量E是报文处理设备每次删减操作时损失的删减值累加获得的总和。在将流标识f插入流表时,流标识f在本次插入流表前损失的最大流量的估计值,为报文处理设备每次删减操作时损失的删减值累加获得的总和。
2011、报文处理设备将待测报文的流量和流表中包括的每个流标识分别对应的第一数据r按照大小顺序排序,记排序后的前两个值分别为R1和R2,最后一个值为Rk。
在另一种情况下,当流表中不包括待测报文的流标识f且流表未满时,在上述步骤105中,报文处理设备根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据可以包括:
1057、报文处理设备将待测报文的流量设置为待测报文对应的第一数据rf。
1058、报文处理设备将删减总流量E设置为待测报文对应的第三数据ef。
1059、报文处理设备将待测报文的流标识f、待测报文对应的第一数据rf以及待测报文对应的第三数据ef的对应关系插入流表。
在该种情况下,报文处理设备可以修改待测报文对应的第一数据rf和第三数据ef这两个数据,即w=2,并将待测报文的流标识f、待测报文对应的第一数据rf以及待测报文对应的第三数据ef的对应关系插入流表。
另外,在本申请实施例中,参见图8,流表中具体可以包括表项,该表项可以包括流标识、第一数据r、第二数据d以及第三数据e的对应关系。并且,表项中第一数据r、第二数据d以及第三数据e具体可以分别为3个计数器的值。也即,对于每个待测报文,报文处理设备根据第二算法可以修改1个计数器的值(r)、2个计数器的值(e、r)或3个计数器的值(e、r、d)。通常,流表中计数器的初始值可以设置为0。
其中,上述步骤105的具体实现过程可以参见图9。
进一步地,第二测量数据还可以包括局部总流量,若缓冲区中已占用的存储空间大于或者等于预设阈值,则参见图7,该方法还可以包括:
107、报文处理设备将局部总流量更新为局部总流量与待测报文的流量的和。
在本申请实施例中,报文处理设备可以将获得的每个待测报文的流量累加到局部总流量中。也就是说,局部总流量可以理解为需要根据第二算法测量的流量,即进入快通道的总流量。具体的,局部总流量也可以为一个计数器的值。
其中,该步骤107与上述步骤105没有明确的先后关系,即步骤107可以在上述步骤105之前,也可以在上述步骤105之后。
需要说明的是,本申请上述实施例提供的第二算法的内容具体可以包括上述步骤105、上述步骤1051-1059,上述步骤201-205,上述步骤2011-2012以及上述步骤107中的相应内容。
此外,实验数据表明,采用现有技术中的测量方法时,FlowRadar、RevSketch、UnivMon、Deltoid这4种sketch-based算法在处理每个报文分别对应的中央处理器(central processing unit,CPU)时钟周期可以参见图10。由图10可知,sketch–based算法处理一个报文对应几千甚至上万个CPU时钟周期。而采用本申请实施例提供的上述第二算法,仅需要几十个CPU时钟周期即可处理一个报文。可见,本申请提供的上述第二算法的处理效率更高,本申请实施例通过在sketch-based算法和上述第二算法间进行切换,可以降低资源开销,提高报文处理设备的整体处理效率。
在本申请实施例中,待测报文对应的用于标识数据流的流标识的具体形式可以有多种。举例来说,流标识可以为五元组,该五元组包括源互联网协议IP地址、源端口、目的IP地址、目的端口和传输层协议。或者,该流标识可以为二元组,该二元组包括源IP地址和目的IP地址。或者,当待测报文为IP报文时,流标识可以为Tos字段中的前3个字符。或者,当待测报文为多协议标签交换(multi-protocol label switching,MPLS)报文时,流标识可以为EXP字段。或者,流标识还可以包括以太网源地址、以太网目的地址。
进一步地,在上述步骤105之后,参见图11,本申请实施例提供的流量测量方法还可以包括:
108、报文处理设备将第一测量数据和/或第二测量数据发送给网络控制器,第一测量数据和/或第二测量数据用于网络控制器计算目标测量数据。
报文处理设备可以将第一测量数据和/或第二测量数据上报给网络控制器,以使得网络控制器可以根据第一测量数据和/或第二测量数据计算目标测量数据,从而进行流量统计、网络管理等。
具体的,在一种可能的实现方式中,步骤108可以包括:
1081、报文处理设备根据预设周期将第一测量数据和/或第二测量数据发送给网络控制器。
在该种实现方式中,在达到上报周期时,报文处理设备可以将获得的第一测量数据和/或第二测量数据上报给网络控制器。
在另一种可能的实现方式中,步骤108可以包括:
1082、报文处理设备接收网络控制器发送的测量数据请求消息。
1083、报文处理设备响应于测量数据请求消息,将第一测量数据和/或第二测量数据发送给网络控制器。
在该种实现方式中,报文处理设备可以在接收到网络控制器发送的测量数据请求消息后,将获得的第一测量数据和/或第二测量数据上报给网络控制器。
具体的,第一测量数据与第一算法及慢通道对应,第二测量数据与第二算法及快通道对应。若在上次上报测量数据之后,报文处理设备仅根据第一算法对待测报文进行了处理,则仅上报第一测量数据;若在上次上报测量数据之后,报文处理设备仅根据第二算法对待测报文进行了处理,则仅上报第二测量数据;若在上次上报测量数据之后,报文处理设备根据第一算法和第二算法对待测报文进行了处理,则同时上报第一测量数据和第二测量数据。也就是说,报文处理设备在每次上报时可以上报第一测量数据和第二测量数据中的至少一种。
进一步地,在上述步骤108之后,报文处理设备还可以删除本次已经上报的第一测量数据和/或第二测量数据。举例来说,当第一测量数据为sketch数据结构对应的矩阵中的数据第二测量数据为流表中的数据,矩阵单元和流表中包括一个或多个计数器,且报文处理设备周期性地上报第一测量数据和/或第二测量数据之后,还可以将矩阵单元和流表中计数器的值以及局部总流量对应的计数器的值恢复为初始值,例如均恢复为0,从而到达删除第一测量数据和/或第二测量数据的目的。此外,还可以将删减总量E的计数器的值回复为初始值。
或者,在上述步骤108之后,报文处理设备也可以不删除第一测量数据和/或第二测量数据,而是记录本次上报时的第一测量数据和/或第二测量数据,以便后续报文处理设备在下次上报时可以根据新的第一测量数据和/或第二测量数据,以及本次上报时的第一测量数据和/或第二测量数据,获得两次上报期间内的实际流量值。或者,网络控制器可以根据报文处理设备在两次上报的第一测量数据和/或第二测量数据,获得两次上报期间内的实际流量值。
其中,需要说明的是,上述过程是以图2所示架构中的一个报文处理设备为例进行说明的,图2所示架构中的其它报文处理设备的处理过程与上述过程类似,即多个报文处理设备均可以向网络处理器发送第一测量数据和/或第二测量数据。
与多个报文处理设备的上报过程相对应,网络控制器可以接收多个报文处理设备发送的第一测量数据和/或第二测量数据,具体可以包括:
109、网络控制器接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据,第一测量数据根据第一算法获得,第二测量数据根据第二算法获得,其中,m和n均为非负整数。
其中,这里的m个报文处理设备和n个报文处理设备为图2所示架构中的报文处理设备,且m个报文处理设备和n个报文处理设备可以是不同的报文处理设备,也可以是相同的报文处理设备,或者可以有部分重叠。例如,这里的m个报文处理设备可以为报文处理设备1和报文处理设备2,这里的n个报文处理设备可以为报文处理设备3和报文处理设备4。再例如,这里的m个报文处理设备可以为报文处理设备1和报文处理设备2,这里的n个报文处理设备可以为报文处理设备2、报文处理设备3和报文处理设备4。再例如,这里的m=n,m个报文处理设备和n个报文处理设备均为报文处理设备1、报文处理设备2、报文处理设备3和报文处理设备4。
对于图2所示架构中的每个报文处理设备,由于其在两次上报期间内,可能仅根据第一算法对待测报文进行了处理从而更新了第一测量数据,也可能仅根据第二算法对待测报文进行了处理从而更新了第二测量数据,也可能根据第一算法和第二算法对第一测量数据和第二测量数据都进行了更新,因而可以向网络控制器上报第一测量数据和第二测量数据中的至少一种。
也就是说,图2所示架构中的所有报文处理设备都可以向网络控制器上报第一测量数据和第二测量数据;或者,图2所示架构中的部分报文处理设备可以向网络控制器上报第一测量数据,图2所示架构中的部分报文处理设备可以向网络控制器上报第二测量数据。其中,当图2所示架构中的所有报文处理设备都仅向网络控制器上报第一测量数据时,n可以为0;当图2所示架构中的所有报文处理设备都仅向网络控制器上报第二测量数据时,m可以为0。
110、网络控制器合并m个第一测量数据,以获得全局第一测量数据。
在接收到m个报文处理设备上报的m个第一测量数据后,网络控制器可以合并该m个第一测量数据,从而获得总的第一测量数据,称为全局第一测量数据。
111、网络控制器合并n个第二测量数据,以获得全局第二测量数据。
在接收到n个报文处理设备上报的n个第二测量数据后,网络控制器可以合并该n个第二测量数据,从而获得总的第二测量数据,称为全局第二测量数据。
112、网络控制器根据全局第一测量数据和全局第二测量数据,计算目标测量数据。
在获得全局第一测量数据和全局第二测量数据后,网络控制器可以根据全局第一测量数据和全局第二测量数据计算目标测量数据。
这样,网络控制器可以根据报文处理设备上报的第一测量数据和第二测量数据,综合统计网络中的流量数据,即目标测量数据。
其中,步骤112中计算获得的目标测量数据可以与全局第一测量数据具有相同的数据结构。也就是说,网络控制器获得的目标测量数据与根据第一算法获得的第一测量数据以及全局第一测量数据具有相同的数据结构。可以理解为,网络控制器将根据第二算法得到的全局第二测量数据转化成全局第一测量数据的形式,以恢复第二算法在删减操作中损失的流量信息,从而可以使得根据全局第一测量数据和全局第二测量数据获得的目标测量数据具有第一算法对应的测量精度。
因此,在本申请实施例提供的测量方法中,通过缓冲区可以在根据第一算法处理待测报文的负担较重时,切换到根据处理速度较快的第二算法进行处理,从而可以提高网络吞吐率,并且根据第一算法和第二算法得到的目标测量数据可以具有与根据第一算法获得的第一测量数据相同的数据结构,因而可以保持第一算法对应的较高的测量精度。
举例来说,第一算法为sketch-based算法,第一测量数据为sketch数据结构,第二测量数据为哈希表结构,则全局第一测量数据也为sketch数据结构,全局第二测量数据也为哈希表结构,计算获得的目标测量数据为sketch数据结构。
具体的,与上述1081-1083中的发送方式相对应,上述步骤109具体可以包括:
1091、网络控制器周期性地接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据。
或者,在另一实现方式中,在上述步骤109之前,该方法还可以包括:
1092、网络控制器分别向每个报文处理设备发送测量数据请求消息。
其中,在步骤1092中,网络控制器实际可以向图2所示架构中的每个报文处理设备发送测量数据请求消息。当图2所示架构中包括A个报文处理设备时,A小于或者等于m与n的和。
在本申请实施例中,若每个第一测量数据包括p行q列个元素,则上述步骤110具体可以包括:
1100、网络控制器分别将m个第一测量数据对应位置的m个元素合并,以获得全局第一测量数据,该全局第一测量数据包括p行q列个元素。
其中,全局第一测量数据与m个第一测量数据具有相同的数据结构,和相同的元素个数。网络控制器仅是将p×q个位置中,每个位置对应的m个第一测量数据中的m个元素相加,从而获得全局第一测量数据。该p行q列个元素可以理解为p×q的矩阵,该合并过程可以理解为矩阵的加法。需要说明的是,这里的元素与位置对应,每个位置对应的元素具体可以包括一个或多个数据。举例来说,当第一测量数据的数据结构为如图6所示的sketch数据结构时,第一测量数据可以表示为4×5的矩阵,每个单元格中的数据可以称为一个元素,每个单元格中可以包括多个数据。
在本申请实施例中,每个第二测量数据包括局部总流量和流表,若该流表包括至少一个表项,该表项与流标识一一对应,则上述步骤111具体可以包括:
1111、网络控制器将n个第二测量数据中的n个局部总流量相加,以得到全局总流量。
1112、网络控制器合并n个第二测量数据对应的n个流表的表项,以得到全局流表,全局流表中的流标识与表项一一对应。
1113、网络控制器全局总流量和全局流表即为全局第二测量数据。
其中,在步骤1112中,表项具体可以包括流标识和流标识对应的流量数据,合并n个第二测量数据对应的n个流表中的表项包括:
301、在n个第二测量数据对应的n个流表的表项中,对于流标识相同的多个表项,网络控制器将多个表项中的流量数据相加,以将多个表项合并成全局流表中的一个表项。
302、网络控制器对于流标识不同的每个表项,分别作为全局流表中的一个表项。
举例来说,参见如下表1,若流表1中包括表项1和表项2,表项1对应流标识1,表项2对应流标识2;流表2中包括表项3和表项4,表项3对应流标识2,表项4对应流标识3;则表项2和表项3对应相同的流标识2,则在合并后的全局流表中,表项2和表项3合并为一个表项,而表项1和表项4分别为全局流表中的一个表项。
表1
需要说明的是,本申请实施例是以报文处理设备中仅部署有一个第一算法为例进行说明的,当报文处理设备中部署有多个第一算法时,由于每个第一算法对应一个第一测量数据,从而对应一个全局第一测量数据,因而网络控制器可以根据多个第一算法获得多个全局第一测量数据,从而可以将多个全局第一测量数据分别与全局第二测量数据合并,获得多个目标测量数据。
在本申请实施例中,在获得全局第一测量数据和全局第二测量数据之后,网络控制器可以通过构造基于压缩感知的优化问题,获得与第一测量数据具有通过数据结构的目标测量数据。具体的,上述步骤112可以包括:
1121、网络控制器根据全局第一测量数据和全局第二测量数据构造优化目标函数。
1122、网络控制器根据凸优化算法和优化目标函数,求解目标测量数据。
其中,优化目标函数的表达式为:
该优化目标函数满足如下约束条件:
约束1:T=N+sk(x+y)
约束2:|x|1+|y|1=V
其中,minimize表示求解使得优化目标函数最小的自变量的值,T表示目标测量数据,N表示全局流表,V表示全局总流量,H表示全局第一测量数据,x表示H中包括的流标识对应的数据流的流量,xs表示流标识s对应的数据流的流量,y表示根据第二算法测量得到的数据流的流量中,H未包括的数据流的流量,x+y表示根据第二算法测量得到的数据流的流量,sk(x+y)表示以x+y为输入,调用第一算法得到的结果,rs表示流标识s对应的第一数据r,ds表示流标识s对应的第二数据d,es表示流标识s对应的第三数据e;
其中,α、β、γ的计算表达式分别为:
γ=10σy;
PN与QN分别表示矩阵N的长和宽;η(N)表示N中数据的平均值;mx与nx分别表示向量x的长和宽;σy表示y中所有数据的标准差。
其中,x和y可以表示为向量,向量的第i个数据为流标识i的流量。如果流标识i不在x或者y中,则第i个数据x[i]或y[i]为0。举例来说,当流标识为五元组时,则总共有2104种不同的五元组可能性,全局流表N共有2104个数据,mx与nx的取值分别为2104和1,x和y都是长度为2104的五元组向量。
其中,这里的凸优化算法可以有多种,例如可以为内点法或交替方向乘子法ADMM、次梯度法等。
由于一般的凸优化问题不存在解析解,即无法显式给出输出与输入之间的函数关系式,因而可以在上述步骤1121和步骤1122中,根据约束规则,通过近似方法,在一定范围内搜索得到一个近似的局部最优解以代替所期望得到的全局最优解。
其中,由于sk(x+y)表示以x+y为输入,调用第一算法得到的结果,因而sk(x+y)与根据第一算法获得的全局第一测量数据N具有相同的数据结构,sk(x+y)与N以及两者的和即目标测量函数也具有相同的数据结构,这样可以使得计算获得的目标测量数据具有第一算法的高精度特性。
在获得目标测量数据后,目标测量数据可以用于进行网络异常检测、网络流量分布统计、网络断层扫描和分布式拒绝服务(distributed denial of service,DDoS)攻击检测等中的至少一个。其中,第一算法不同,计算获得的目标测量数据的作用也可以不同。例如,当第一算法为Deltoid、RevSketch或FlowRadar时,计算获得目标测量数据可以用于大象流检测;当第一算法为TwoLevel时,计算获得的目标测量数据可以用于DDoS检测;当第一算法为LC、kMin或FM时,计算获得的目标测量数据可以用于流个数统计等。
进一步地,在本申请实施例中,步骤101中获得的待测报文的流标识可以为目标流标识。也就是说,待测报文为具有目标流标识的报文。若报文处理设备接收到多个报文,则具有目标流标识的报文为待测报文,不具有目标流标识的报文不对其流量进行测量。因而,参见图12,在步骤101之前,该方法还可以包括:
113、网络控制器分别向每个报文处理设备发送指示消息,指示消息中携带有与待测报文处理设备对应的目标流标识。
114、报文处理设备接收网络控制器发送的指示消息,指示消息中包括目标流标识。
也就是说,网络控制器可以通过发送目标流标识指定报文处理设备测量并上报目标流标识对应的报文的流量。
并且,网络控制器可以通过配置策略,预先配置报文处理设备与目标流标识的对应关系,以使得网络中同一个报文的流量仅在网络中的其中一个报文处理设备上测量并上报,而不会在多个报文处理设备上测量并上报,从而可以使得网络中各报文处理设备分别测量的报文互不重叠,避免重复测量,达到准确测量网络流量的目的。
举例来说,待测报文处理设备与目标流标识对应可以包括:待测报文处理设备为目标流标识对应的数据流的最后一跳设备;或者,待测报文处理设备为目标流标识对应的数据流的第一跳设备;或者,待测报文处理设备为目标流标识对应的数据流的接收端设备;或者,待测报文处理设备为目标流标识对应的数据流的发送端设备。当然还存在其它的报文处理设备与目标流标识的对应关系,这里不再赘述。
另外,在本申请实施例的一种具体的实现方式中,图2所示的网络系统可以为SDN网络,该网络控制器可以为SDN网络中的SDN控制器,该报文处理设备可以为SDN网络中配置有SDN软件交换机的设备。
此外,需要说明的是,本申请上述实施例中主要以第二算法为一种基于流表的算法为例进行说明的,这里称为第一流表算法;在本申请实施例的另一种实现方式中,第二算法还可以是第二流表算法,即MisraGries算法。第二流表算法的主要原理为将流标识记录在一个流表中,每个表项只有一个计数器表示当前流量。当流表满时,删除最小的表项。与本申请实施例提供的上述第一流表算法相比,由于第二流表算法每次仅删除一个表项,因而删减次数过多,需要大量的资源,影响算法效率。并且,由于每个流表项只有一个计数器,无法记录由于删减操作引起的误差,因此最终结果精度较低。
这里,将现有技术中仅根据sketch-based算法的流量测量方法称为方法一;将以sketch-based算法作为第一算法,以第二流表算法作为第二算法的测量方法称为方法二;将以sketch-based算法作为第一算法,以第一流表算法作为第二算法的测量方法称为方法三,则当sketch-based算法分别采用Deltoid、UnivMon、TwoLevel、RevSketch、FlowRadar、FM、kMin、LC、MRAC算法时,实验获得的方法一、方法二和方法三分别对应的网络吞吐率可以参见图13。图13中,竖线填充部分与方法一对应,左斜线填充部分与方法二对应,网格填充部分与方法三对应。图13中的实验数据可以表明,方法三可以达到更高的网络吞吐率。
此外,在上述步骤112中,步骤1121和步骤1122提供了一种通过凸优化算法求解目标测量函数T的具体实现方式,在上述步骤112的另外实现方式中,网络控制器还可以不通过凸优化算法,而通过简单的计算求解目标测量函数T,以降低处理的复杂度。例如,T=N+sk(x),其中,N表示全局流表,x表示H中包括的流标识对应的数据流的流量,sk(x)表示以x为输入,调用第一算法得到的结果。其中,在一种具体的实现方式中,x中每个流标识对应的数据流的流量可以为该流标识对应的第一数据r和第二数据d的和;在另一种具体的实现方式中,x中每个流标识对应的数据流的流量可以为该流标识对应的第一数据r、第二数据d和第三数据e的和。实验数据表明,当采用步骤1121和步骤1122提供的计算目标测量函数的算法时,可以达到更好的性能。
示例性的,这里以网络异常检测精度为例进行说明。若将现有技术中仅根据sketch-based算法的流量测量方法称为方法A;将以sketch-based算法作为第一算法,以第一流表算法作为第二算法,且通过表达式T=N+sk(x)计算目标测量函数,且x为r和d的和对应的流量测量方法称为方法B;将以sketch-based算法作为第一算法,以第一流表算法作为第二算法,且通过表达式T=N+sk(x)计算目标测量函数,且x为r、d和e的和对应的流量测量方法称为方法C;将以sketch-based算法作为第一算法,以第一流表算法作为第二算法,且通过上述凸优化算法计算目标测量函数的流量测量方法称为方法D,则当分别采用FlowRadar、RevSketch、UnivMon、Deltoid这几种sketch-based算法,基于heavy hitter流或heavy changer流检测网络异常时,方法A-方法D以及理想精度在召回率(recall)、误检测率(precision)和相对误差(relative error)方面的情况可以参见图14a-图14f。在14a-图14f中,竖线填充部分与方法A对应,横线填充部分与方法B对应,圆点填充部分与方法C对应,网格填充部分与方法D对应,右斜线填充部分表示理想精度值,且图14a-图14c与heavyhitter流对应,图14d-图14f与heavy changer流对应。由图14a-图14f可知,方法D对应的检测精度更高,更接近理想精度值。
上述主要从各个网元之间交互的角度对本申请实施例提供的方案进行了介绍。可以理解的是,各个网元,例如报文处理设备、网络控制器为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对报文处理设备、网络控制器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本申请实施例还提供一种报文处理设备1500,参见图15,该报文处理设备1500包括至少一个处理器1501、存储器1502、缓冲区1503、通信接口1504和总线1505,至少一个处理器1501、存储器1502和缓冲区1503通过总线1505相连。通信接口1504用于当报文处理设备1500为报文转发设备或报文接收端设备时,获得待测报文。存储器1502用于存储指令。处理器1501用于调用存储在存储器1502中的指令以实现:当报文处理设备1500为报文发送端设备时获得待测报文;若缓冲区1503中已占用的存储空间小于预设阈值,则将待测报文的待测信息写入缓冲区1503,待测信息包括待测报文的流标识和待测报文的流量;从缓冲区1503读取待测信息;根据待测信息和第一算法,修改第一测量数据中与待测报文对应的a个数据,a为正整数;若缓冲区1503中已占用的存储空间大于或者等于预设阈值,则根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据,其中,w为正整数,且w小于a。缓冲区1503用于,在处理器1501将待测报文的待测信息写入缓冲区1503后,存储待测信息。
需要说明的是,这里的缓冲区1503与存储器1502可以是两个独立的硬件模块,也可以做在一起作为一个硬件模块。
其中,该处理器1501可以用于支持报文处理设备1500执行图4、图7和图11中的步骤101-105,图7中的步骤106-107,以及图9中的步骤1052-1059。通信接口1504用于支持报文处理设备1500执行图4和图7中的步骤101(当报文处理设备1500为报文转发设备或报文接收端设备时),图11中的步骤108以及图12中的步骤114。并且,图15中的各部件还用于支持报文处理设备1500执行本文所描述的技术的其它过程。
本申请实施例还提供一种网络控制器1600,参见图16,该网络控制器1600可以包括至少一个处理器1601、存储器1602、通信接口1603和总线1604,至少一个处理器1601、存储器1602通过总线1604相连。其中,通信接口1603用于,接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据,第一测量数据根据第一算法获得,第二测量数据根据第二算法获得,其中,m和n均为非负整数。存储器1602用于存储指令。处理器1601用于调用存储在存储器1602中的指令以实现:合并m个第一测量数据,以获得全局第一测量数据;合并n个第二测量数据,以获得全局第二测量数据;根据全局第一测量数据和全局第二测量数据,计算目标测量数据。
其中,该处理器1601可以用于支持网络控制器1600执行图11和图12中的步骤110-112。通信接口1603用于支持网络控制器1600执行图11和图12中的步骤109,以及图12中的步骤113。并且,图16中的各部件还用于支持网络控制器1600执行本文所描述的技术的其它过程。
其中,图15和图16中的处理器,可以包括不同类型的处理器,或者包括相同类型的处理器;具体可以是以下的任一种:中央处理器CPU、ARM处理器、现场可编程门阵列(fieldprogrammable gate array,FPGA)、专用处理器等具有计算处理能力的器件。该处理器还可以集成为众核处理器。
图15和图16中的存储器可以是以下的任一种或任一种组合:随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、非易失性存储器(non-volatile memory,NVM)、固态硬盘(solid state drives,SSD)、机械硬盘、磁盘、磁盘阵列等存储介质。
图15和图16中的通信接口用于与其他具有设备进行数据交互。通信接口可以是以下的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
图15和图16中的总线可以包括地址总线、数据总线、控制总线等,为便于表示,图10用一条粗线表示该总线。总线可以是以下的任一种或任一种组合:工业标准体系结构(industry standard architecture,ISA)总线、外设组件互连标准(peripheralcomponent interconnect,PCI)总线、扩展工业标准结构(extended industry standardarchitecture,EISA)总线等有线数据传输的器件。
本申请实施例还提供一种报文处理设备1700,参见图17,该报文处理设备1700可以包括:包括缓冲区1701、获取单元1702、写入单元1703、读取单元1704、第一修改单元1705、第二修改单元1706、删除单元1707、更新单元1708、处理单元1709、发送单元1710和接收单元1711。其中,获取单元1702用于,获得待测报文。写入单元1703用于,若缓冲区中已占用的存储空间小于预设阈值,则将待测报文的待测信息写入缓冲区,待测信息包括待测报文的流标识和待测报文的流量。缓冲区1701用于,在写入单元1703将待测信息写入缓冲区1701后,存储待测信息。读取单元1704用于,从缓冲区1701读取待测信息。第一修改单元1705用于,根据待测信息和第一算法,修改第一测量数据中与待测报文对应的a个数据,a为正整数。第二修改单元1706用于,若缓冲区1701中已占用的存储空间大于或者等于预设阈值,则根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据,其中,w为正整数,且w小于a。
其中,发送单元1710和接收单元1711可以对应于图15所示通信接口1504的功能,写入单元1703、读取单元1704、第一修改单元1705、第二修改单元1706、删除单元1707、处理单元1708和更新单元1709可以对应上述处理器1501的功能,获取单元1702可以对应图15所示通信接口1504或处理器1501的部分功能,这里不再赘述。
本申请实施例还提供一种网络控制器1800,参见图18,该网络控制器1800可以包括:接收单元1801、第一合并单元1802、第二合并单元1803、计算单元1804和发送单元1805。其中,接收单元1801,用于接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据,第一测量数据根据第一算法获得,第二测量数据根据第二算法获得,其中,m和n均为非负整数。第一合并单元1802,用于合并m个第一测量数据,以获得全局第一测量数据。第二合并单元1803,用于合并n个第二测量数据,以获得全局第二测量数据。计算单元1804,用于根据全局第一测量数据和全局第二测量数据,计算目标测量数据。
其中,发送单元1805和接收单元1801可以对应于图16所示通信接口1603的功能,第一合并单元1802、第二合并单元1803和计算单元1804可以对应图16所示处理器1601的功能,这里不再赘述。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
本申请实施例还提供了一种计算机存储介质,用于储存为上述报文处理设备所用的计算机软件指令,当其在报文处理设备上运行时,使得报文处理设备可以执行上述实施例中的流量测量方法。例如,该存储介质具体可以为上述存储器。
本申请实施例还提供了一种计算机存储介质,用于储存为上述网络控制器所用的计算机软件指令,当其在网络控制器上运行时,使得网络控制器可以执行上述实施例中的流量测量方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在上述报文处理设备上运行时,使得报文处理设备可以执行上述实施例中的流量测量方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在上述网络控制器上运行时,使得网络控制器可以执行上述实施例中的流量测量方法。
本申请实施例还提供了一种系统,该系统的基本架构可以参见图2,该系统可以包括网络控制器和至少一个报文处理设备。该系统中的接入网设备和终端可以执行本申请上述实施例提供的流量测量方法。
其中,报文处理设备可以用于:获得待测报文;若缓冲区中已占用的存储空间小于预设阈值,则将待测报文的待测信息写入缓冲区,待测信息包括待测报文的流标识和待测报文的流量;从缓冲区读取待测信息;根据待测信息和第一算法,修改第一测量数据中与待测报文对应的a个数据,a为正整数;若缓冲区中已占用的存储空间大于或者等于预设阈值,则根据待测信息和第二算法,修改第二测量数据中与待测报文对应的w个数据,其中,w为正整数,且w小于a。
网络控制器可以用于:接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据,第一测量数据根据第一算法获得,第二测量数据根据第二算法获得,其中,m和n均为非负整数;合并m个第一测量数据,以获得全局第一测量数据;合并n个第二测量数据,以获得全局第二测量数据;根据全局第一测量数据和全局第二测量数据,计算目标测量数据。
其中,在该系统的一种划分方式中,该系统可以包括控制面和数据面,该至少一个报文处理设备可以对应控制面的功能,该网络控制器可以对应控制面的功能。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (35)
1.一种流量测量方法,应用于报文处理设备,其特征在于,所述报文处理设备包括缓冲区,所述方法包括:
获得待测报文;
若所述缓冲区中已占用的存储空间小于预设阈值,则将所述待测报文的待测信息写入所述缓冲区,所述待测信息包括所述待测报文的流标识和所述待测报文的流量;
从所述缓冲区读取所述待测信息;
根据所述待测信息和第一算法,修改第一测量数据中与所述待测报文对应的a个数据,a为正整数;
若所述缓冲区中已占用的存储空间大于或者等于所述预设阈值,则根据所述待测信息和第二算法,修改第二测量数据中与所述待测报文对应的w个数据,其中,w为正整数,且w小于a。
2.根据权利要求1所述的方法,其特征在于,所述a个数据为a个计数器的值,所述w个数据为w个计数器的值。
3.根据权利要求1所述的方法,其特征在于,所述第一算法包括哈希函数,所述第一测量数据包括c个位置中的数据,c为正整数,所述根据所述待测信息和第一算法,修改第一测量数据中与所述待测报文对应的a个数据包括:
根据所述待测报文的流标识和所述哈希函数,从所述c个位置中确定u个位置,其中,u为正整数,且u小于或者等于c;
根据所述待测报文的流量,修改所述u个位置中的a个数据,其中,u小于或者等于a。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述报文处理设备中存储有流表,所述第二测量数据包括所述流表中的数据,所述流表包括所述流标识与第一数据r的对应关系,所述根据所述待测信息和第二算法,修改第二测量数据中与所述待测报文对应的w个数据包括:
根据所述待测信息和所述第二算法,修改所述第二测量数据中所述待测报文对应的第一数据rf。
5.根据权利要求4所述的方法,其特征在于,所述根据所述待测信息和所述第二算法,修改所述第二测量数据中所述待测报文对应的第一数据rf包括:
当所述流表中包括所述待测报文的流标识f时,将所述流表中所述待测报文对应的第一数据rf更新为所述待测报文对应的第一数据rf与所述待测报文的流量的和。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述报文处理设备中存储有流表,所述第二测量数据包括所述流表中的数据,所述流表包括所述流标识与第一数据r和第二数据d的对应关系,当所述流表中不包括所述待测报文的流标识f且所述流表已满时,在所述根据所述待测信息和第二算法,修改第二测量数据中与所述待测报文对应的w个数据之前,所述方法还包括:
删除所述流表中满足第一预设条件的流标识与所述第一数据r和所述第二数据d的对应关系;
其中,所述满足第一预设条件的流标识为所对应的更新后的第一数据r小于或者等于0的流标识。
7.根据权利要求6所述的方法,其特征在于,所述流表包括所述流标识与所述第一数据r、所述第二数据d和第三数据e的对应关系,当所述流表中不包括所述待测报文的流标识f且所述流表已满时,所述根据所述待测信息和第二算法,修改第二测量数据中与所述待测报文对应的w个数据包括:
将删减总流量E设置为所述待测报文对应的第三数据ef;
将所述待测报文的流标识f、所述待测报文对应的第一数据rf、所述待测报文对应的第二数据df以及所述待测报文对应的第三数据ef的对应关系插入所述流表。
10.根据权利要求3所述的方法,其特征在于,所述报文处理设备中存储有流表,所述第二测量数据包括所述流表中的数据,所述流表包括所述流标识与第一数据r和第三数据e的对应关系,当所述流表中不包括所述待测报文的流标识f且所述流表未满时,所述根据所述待测信息和第二算法,修改第二测量数据中与所述待测报文对应的w个数据包括:
将所述待测报文的流量设置为所述待测报文对应的第一数据rf;
将删减总流量E设置为所述待测报文对应的第三数据ef;
将所述待测报文的流标识f、所述待测报文对应的第一数据rf以及所述待测报文对应的第三数据ef的对应关系插入所述流表。
11.根据权利要求5或7-10任一项所述的方法,其特征在于,所述流表包括表项,所述表项包括所述流标识、所述第一数据r、第二数据d以及第三数据e的对应关系,所述第一数据r、所述第二数据d以及所述第三数据e分别为三个计数器的值。
12.根据权利要求1-3、5或7-10任一项所述的方法,其特征在于,所述第二测量数据包括局部总流量,若所述缓冲区中已占用的存储空间大于或者等于所述预设阈值,则所述方法还包括:
将所述局部总流量更新为所述局部总流量与所述待测报文的流量的和。
13.根据权利要求1-3、5或7-10任一项所述的方法,其特征在于,所述方法还包括:
将所述第一测量数据和/或所述第二测量数据发送给网络控制器,所述第一测量数据和/或所述第二测量数据用于所述网络控制器计算目标测量数据。
14.根据权利要求1-3、5或7-10任一项所述的方法,其特征在于,所述待测报文的流标识为目标流标识,在所述获得待测报文之前,所述方法还包括:
接收网络控制器发送的指示消息,所述指示消息中包括所述目标流标识。
15.一种流量测量方法,其特征在于,包括:
接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据,所述第一测量数据根据第一算法获得,所述第二测量数据根据第二算法获得;其中,所述第一测量数据是所述报文处理设备根据待测信息和第一算法,对所述第一测量数据中与待测报文对应的a个数据修改后得出的;所述第二测量数据是所述报文处理设备在缓冲区中已占用的存储空间大于或者等于预设阈值时,根据待测信息和第二算法,对所述第二测量数据中与待测报文对应的w个数据修改后得出的;其中,m和n均为非负整数,a为正整数,w为正整数,且w小于a;
合并所述m个第一测量数据,以获得全局第一测量数据;
合并所述n个第二测量数据,以获得全局第二测量数据;
根据所述全局第一测量数据和所述全局第二测量数据,计算目标测量数据。
16.根据权利要求15所述的方法,其特征在于,所述目标测量数据与所述全局第一测量数据具有相同的数据结构。
17.根据权利要求16所述的方法,其特征在于,每个所述第一测量数据包括p行q列个元素,所述合并所述m个第一测量数据,以获得全局第一测量数据包括:
分别将所述m个第一测量数据对应位置的m个元素合并,以获得所述全局第一测量数据,所述全局第一测量数据包括p行q列个元素。
18.根据权利要求15-17任一项所述的方法,其特征在于,每个所述第二测量数据包括局部总流量和流表,所述流表包括至少一个表项,所述表项与流标识一一对应,所述合并所述n个第二测量数据,以获得全局第二测量数据包括:
将所述n个第二测量数据中的n个局部总流量相加,以得到全局总流量;
合并所述n个第二测量数据对应的n个流表的表项,以得到全局流表,所述全局流表中的所述流标识与所述表项一一对应;
所述全局总流量和所述全局流表即为所述全局第二测量数据。
19.根据权利要求18所述的方法,其特征在于,所述表项包括流标识和所述流标识对应的流量数据,所述合并所述n个第二测量数据对应的n个流表中的表项包括:
在所述n个第二测量数据对应的n个流表的表项中,对于所述流标识相同的多个表项,将所述多个表项中的流量数据相加,以将所述多个表项合并成所述全局流表中的一个表项;
所述流标识不同的每个表项分别作为所述全局流表中的一个表项。
20.根据权利要求19所述的方法,其特征在于,所述根据所述全局第一测量数据和所述全局第二测量数据,计算目标测量数据包括:
根据所述全局第一测量数据和所述全局第二测量数据构造优化目标函数;
根据凸优化算法和所述优化目标函数,求解所述目标测量数据;
其中,所述优化目标函数的表达式为:
所述优化目标函数满足如下约束条件:
约束1:T=N+sk(x+y);
约束2:|x|1+|y|1=V;
其中,minimize表示求解使得所述优化目标函数最小的自变量的值,T表示所述目标测量数据,N表示所述全局流表,V表示所述全局总流量,H表示所述全局第一测量数据,x表示所述H中包括的流标识对应的数据流的流量,xs表示流标识s对应的数据流的流量,y表示根据所述第二算法测量得到的数据流的流量中,所述H未包括的数据流的流量,x+y表示根据所述第二算法测量得到的数据流的流量,sk(x+y)表示以x+y为输入,调用所述第一算法得到的结果;
|T|*表示T的核范数,定义为矩阵所有奇异值的和,|x|1表示向量x的L1范数,定义为x中所有数据的绝对值之和,|y|1表示向量y的L1范数,定义为y中所有数据的绝对值之和,表示向量y的弗罗贝尼乌斯范数,定义为x中所有数据的平方和,x表示所述H中包括的流标识对应的数据流的流量;
其中,α、β、γ的计算表达式分别为:
γ=10σy;
PN与QN分别表示矩阵N的长和宽;η(N)表示N中数据的平均值;mx与nx分别表示向量x的长和宽;σy表示y中所有数据的标准差。
21.根据权利要求19所述的方法,其特征在于,所述根据所述全局第一测量数据和所述全局第二测量数据,计算目标测量数据包括:
根据所述全局第一测量数据和所述全局第二测量数据以及如下表达式计算所述目标测量数据:
T=N+sk(x+y);
其中,T表示所述目标测量数据,N表示所述全局流表,x表示所述H中包括的流标识对应的数据流的流量,y表示根据所述第二算法测量得到的数据流的流量,sk(x+y)表示以x+y为输入,调用所述第一算法得到的结果。
22.根据权利要求21所述的方法,其特征在于,所述全局流表中包括表项,所述表项包括流标识、第一数据r和第二数据d的对应关系,所述x对应的数据流的流量为与所述数据流的流标识对应的所述第一数据r和所述第二数据d的和。
23.根据权利要求21所述的方法,其特征在于,所述全局流表中包括表项,所述表项包括流标识、第一数据r、第二数据d和第三数据e的对应关系,所述x对应的数据流的流量为与所述数据流的流标识对应的所述第一数据r、所述第二数据d和所述第三数据e的和。
24.根据权利要求15-17或19-23任一项所述的方法,其特征在于,在接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据之前,所述方法还包括:
分别向每个所述报文处理设备发送指示消息,所述指示消息中携带有与待测报文处理设备对应的目标流标识;
其中,所述待测报文处理设备与所述目标流标识对应是指:
所述待测报文处理设备为所述目标流标识对应的数据流的最后一跳设备;
或者,所述待测报文处理设备为所述目标流标识对应的数据流的第一跳设备;
或者,所述待测报文处理设备为所述目标流标识对应的数据流的接收端设备;
或者,所述待测报文处理设备为所述目标流标识对应的数据流的发送端设备。
25.一种报文处理设备,其特征在于,包括至少一个处理器、存储器、缓冲区、通信接口和总线,所述至少一个处理器、所述存储器和所述缓冲区通过所述总线相连;
所述通信接口用于当所述报文处理设备为报文转发设备或报文接收端设备时,获得待测报文;
所述存储器用于存储指令;
所述处理器用于调用存储在所述存储器中的指令以实现:
当所述报文处理设备为报文发送端设备时获得待测报文;
若所述缓冲区中已占用的存储空间小于预设阈值,则将所述待测报文的待测信息写入所述缓冲区,所述待测信息包括所述待测报文的流标识和所述待测报文的流量;
从所述缓冲区读取所述待测信息;
根据所述待测信息和第一算法,修改第一测量数据中与所述待测报文对应的a个数据,a为正整数;
若所述缓冲区中已占用的存储空间大于或者等于所述预设阈值,则根据所述待测信息和第二算法,修改第二测量数据中与所述待测报文对应的w个数据,其中,w为正整数,且w小于a;
所述缓冲区用于,在所述处理器将所述待测报文的待测信息写入所述缓冲区后,存储所述待测信息。
26.根据权利要求25所述的设备,其特征在于,所述a个数据为a个计数器的值,所述w个数据为w个计数器的值。
27.根据权利要求25或26所述的设备,其特征在于,所述第一算法包括哈希函数,所述第一测量数据包括c个位置中的数据,c为正整数,所述处理器具体用于:
根据所述待测报文的流标识和所述哈希函数,从所述c个位置中确定u个位置,其中,u为正整数,且u小于或者等于c;
根据所述待测报文的流量,修改所述u个位置中的a个数据,其中,u小于或者等于a。
28.根据权利要求25或26任一项所述的设备,其特征在于,所述通信接口还用于:
将所述第一测量数据和/或所述第二测量数据发送给网络控制器,所述第一测量数据和/或所述第二测量数据用于所述网络控制器计算目标测量数据。
29.根据权利要求25或26任一项所述的设备,其特征在于,所述待测报文的流标识为目标流标识,所述通信接口还用于:
在获得所述待测报文之前,接收网络控制器发送的指示消息,所述指示消息中包括所述目标流标识。
30.一种网络控制器,其特征在于,包括至少一个处理器、存储器、通信接口和总线,所述至少一个处理器和所述存储器通过所述总线相连;
所述通信接口用于,接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据,所述第一测量数据根据第一算法获得,所述第二测量数据根据第二算法获得;其中,所述第一测量数据是所述报文处理设备根据待测信息和第一算法,对所述第一测量数据中与待测报文对应的a个数据修改后得出的;所述第二测量数据是所述报文处理设备在缓冲区中已占用的存储空间大于或者等于预设阈值时,根据待测信息和第二算法,对所述第二测量数据中与待测报文对应的w个数据修改后得出的;其中,m和n均为非负整数,a为正整数,w为正整数,且w小于a;
所述存储器用于存储指令;
所述处理器用于调用存储在所述存储器中的指令以实现:
合并所述m个第一测量数据,以获得全局第一测量数据;
合并所述n个第二测量数据,以获得全局第二测量数据;
根据所述全局第一测量数据和所述全局第二测量数据,计算目标测量数据。
31.根据权利要求30所述的网络控制器,其特征在于,所述目标测量数据与所述全局第一测量数据具有相同的数据结构。
32.根据权利要求30或31所述的网络控制器,其特征在于,每个所述第一测量数据包括p行q列个元素,所述处理器具体用于:
分别将所述m个第一测量数据对应位置的m个元素合并,以获得所述全局第一测量数据,所述全局第一测量数据包括p行q列个元素。
33.根据权利要求30或31任一项所述的网络控制器,其特征在于,每个所述第二测量数据包括局部总流量和流表,所述流表包括至少一个表项,所述表项与流标识一一对应,所述处理器具体用于:
将所述n个第二测量数据中的n个局部总流量相加,以得到全局总流量;
合并所述n个第二测量数据对应的n个流表的表项,以得到全局流表,所述全局流表中的所述流标识与所述表项一一对应;
所述全局总流量和所述全局流表即为所述全局第二测量数据。
34.根据权利要求30或31任一项所述的网络控制器,其特征在于,所述通信接口还用于:
在接收m个报文处理设备分别发送的m个第一测量数据,和n个报文处理设备分别发送的n个第二测量数据之前,分别向每个所述报文处理设备发送指示消息,所述指示消息中携带有与待测报文处理设备对应的目标流标识;
其中,所述待测报文处理设备与所述目标流标识对应是指:
所述待测报文处理设备为所述目标流标识对应的数据流的最后一跳设备;
或者,所述待测报文处理设备为所述目标流标识对应的数据流的第一跳设备;
或者,所述待测报文处理设备为所述目标流标识对应的数据流的接收端设备;
或者,所述待测报文处理设备为所述目标流标识对应的数据流的发送端设备。
35.一种流量测量系统,其特征在于,所述系统包括网络控制器和至少一个报文处理设备,所述报文处理设备用于执行权利要求1-14任一项所述的流量测量方法,所述网络控制器用于执行权利要求15-24任一项所述的流量测量方法。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710662793.7A CN107566206B (zh) | 2017-08-04 | 2017-08-04 | 一种流量测量方法、设备及系统 |
EP18840617.7A EP3648410A4 (en) | 2017-08-04 | 2018-06-22 | FLOW MEASUREMENT METHOD, DEVICE, AND SYSTEM |
KR1020207005001A KR102337092B1 (ko) | 2017-08-04 | 2018-06-22 | 트래픽 측정 방법, 장치, 및 시스템 |
PCT/CN2018/092519 WO2019024623A1 (zh) | 2017-08-04 | 2018-06-22 | 一种流量测量方法、设备及系统 |
JP2020505776A JP7039685B2 (ja) | 2017-08-04 | 2018-06-22 | トラフィック測定方法、デバイス、およびシステム |
US16/776,783 US11228513B2 (en) | 2017-08-04 | 2020-01-30 | Traffic measurement method, device, and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710662793.7A CN107566206B (zh) | 2017-08-04 | 2017-08-04 | 一种流量测量方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107566206A CN107566206A (zh) | 2018-01-09 |
CN107566206B true CN107566206B (zh) | 2020-09-04 |
Family
ID=60974006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710662793.7A Active CN107566206B (zh) | 2017-08-04 | 2017-08-04 | 一种流量测量方法、设备及系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11228513B2 (zh) |
EP (1) | EP3648410A4 (zh) |
JP (1) | JP7039685B2 (zh) |
KR (1) | KR102337092B1 (zh) |
CN (1) | CN107566206B (zh) |
WO (1) | WO2019024623A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566206B (zh) * | 2017-08-04 | 2020-09-04 | 华为技术有限公司 | 一种流量测量方法、设备及系统 |
US10880206B2 (en) * | 2018-06-13 | 2020-12-29 | Futurewei Technologies, Inc. | Multipath selection system and method for datacenter-centric metro networks |
CN110768856B (zh) | 2018-07-27 | 2022-01-14 | 华为技术有限公司 | 网络流测量的方法、网络测量设备以及控制面设备 |
CN109600393A (zh) * | 2019-01-17 | 2019-04-09 | 安徽云探索网络科技有限公司 | 一种用于网络安全的监测方法 |
CN110049061B (zh) * | 2019-04-29 | 2021-08-17 | 南京邮电大学 | 高速网络上轻量级DDoS攻击检测装置及检测方法 |
CN110502815A (zh) * | 2019-08-13 | 2019-11-26 | 华东师范大学 | 一种基于sketch的时钟约束规范语言方法 |
CN110830322B (zh) * | 2019-09-16 | 2021-07-06 | 北京大学 | 一种基于概率测量数据结构Sketch的网络流量测量方法和系统 |
CN110752968B (zh) * | 2019-10-16 | 2021-12-07 | 北京百度网讯科技有限公司 | 性能基准测试方法、装置、电子设备及存储介质 |
CN110868332B (zh) * | 2019-10-25 | 2021-08-13 | 电子科技大学 | 一种基于sdn的网络级流量测量方法 |
CN110912767B (zh) * | 2019-10-25 | 2022-03-25 | 电子科技大学 | 一种网络流量的单点测量方法 |
US11671429B1 (en) * | 2020-02-26 | 2023-06-06 | Equinix, Inc. | Authorization automation in procurement of interconnections within a data center |
CN111555974B (zh) * | 2020-03-19 | 2023-05-02 | 视联动力信息技术股份有限公司 | 一种数据包的处理方法、装置、终端设备和存储介质 |
CN113452657B (zh) * | 2020-03-26 | 2023-03-28 | 华为技术有限公司 | 大流量数据流的检测方法以及检测装置 |
CN111757041B (zh) * | 2020-06-17 | 2022-01-07 | 许继集团有限公司 | 一种网络视频会议流量识别方法及装置 |
EP4195540A4 (en) * | 2020-08-26 | 2024-01-10 | Huawei Technologies Co., Ltd. | TRAFFIC MONITORING METHOD AND DEVICE, INTEGRATED CIRCUIT AND NETWORK DEVICE |
WO2022041695A1 (zh) * | 2020-08-26 | 2022-03-03 | 华为技术有限公司 | 流量监控方法、装置、集成电路、网络设备及网络系统 |
CN112597201A (zh) * | 2020-12-25 | 2021-04-02 | 中国农业银行股份有限公司 | 元素的计数方法、装置、可读介质以及设备 |
CN113660209B (zh) * | 2021-07-16 | 2023-04-25 | 华东师范大学 | 一种基于sketch与联邦学习的DDoS攻击检测系统及应用 |
CN113890840A (zh) * | 2021-09-29 | 2022-01-04 | 深信服科技股份有限公司 | 流量异常检测方法、装置、电子设备和存储介质 |
CN115225540B (zh) * | 2022-05-02 | 2023-07-18 | 东北大学 | 一种面向软件定义网络的数据平面故障检测与恢复方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459560A (zh) * | 2009-01-09 | 2009-06-17 | 中国人民解放军信息工程大学 | 长流的识别方法、数据流量的测量方法及其设备 |
CN102026141A (zh) * | 2010-12-27 | 2011-04-20 | 中兴通讯股份有限公司 | 一种流量统计方法、终端和系统 |
CN103647670A (zh) * | 2013-12-20 | 2014-03-19 | 北京理工大学 | 一种基于sketch的数据中心网络流量分析方法 |
CN104301248A (zh) * | 2014-10-31 | 2015-01-21 | 杭州华三通信技术有限公司 | 报文限速方法和装置 |
CN106937052A (zh) * | 2017-03-29 | 2017-07-07 | 维沃移动通信有限公司 | 一种图像数据的处理方法及移动终端 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IL122271A (en) * | 1997-11-21 | 2001-01-11 | Eci Telecom Ltd | Apparatus and method for managing network congestion |
US7873991B1 (en) * | 2000-02-11 | 2011-01-18 | International Business Machines Corporation | Technique of defending against network flooding attacks using a connectionless protocol |
US6928054B1 (en) * | 2000-09-20 | 2005-08-09 | Nortel Networks Limited | Apparatus, method, media and signals for connection-class parameter control of packet flow |
US6820129B1 (en) * | 2000-09-22 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | System and method of managing network buffers |
US20020116397A1 (en) * | 2000-12-21 | 2002-08-22 | Berg Mitchell T. | Method and system for communicating an information packet through multiple router devices |
KR20030038089A (ko) * | 2001-11-08 | 2003-05-16 | 엘지전자 주식회사 | 데이터 버퍼를 이용한 네트워크 요소관리 시스템 및 그데이터 서비스 방법 |
US7330434B2 (en) * | 2002-04-30 | 2008-02-12 | Nippon Telegraph And Telephone Corporation | Traffic quality measurement apparatus and method |
JP3753704B2 (ja) * | 2002-04-30 | 2006-03-08 | 日本電信電話株式会社 | 通信品質測定装置及びその方法 |
US7669241B2 (en) * | 2004-09-30 | 2010-02-23 | Alcatel-Lucent Usa Inc. | Streaming algorithms for robust, real-time detection of DDoS attacks |
US7636769B2 (en) * | 2006-04-14 | 2009-12-22 | Microsoft Corporation | Managing network response buffering behavior |
US7697519B2 (en) * | 2006-10-31 | 2010-04-13 | Hewlett-Packard Development Company, L.P. | Packet processing |
US8639809B2 (en) * | 2010-08-20 | 2014-01-28 | International Business Machines Corporation | Predictive removal of runtime data using attribute characterizing |
CN107566206B (zh) * | 2017-08-04 | 2020-09-04 | 华为技术有限公司 | 一种流量测量方法、设备及系统 |
-
2017
- 2017-08-04 CN CN201710662793.7A patent/CN107566206B/zh active Active
-
2018
- 2018-06-22 WO PCT/CN2018/092519 patent/WO2019024623A1/zh unknown
- 2018-06-22 JP JP2020505776A patent/JP7039685B2/ja active Active
- 2018-06-22 EP EP18840617.7A patent/EP3648410A4/en active Pending
- 2018-06-22 KR KR1020207005001A patent/KR102337092B1/ko active IP Right Grant
-
2020
- 2020-01-30 US US16/776,783 patent/US11228513B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101459560A (zh) * | 2009-01-09 | 2009-06-17 | 中国人民解放军信息工程大学 | 长流的识别方法、数据流量的测量方法及其设备 |
CN102026141A (zh) * | 2010-12-27 | 2011-04-20 | 中兴通讯股份有限公司 | 一种流量统计方法、终端和系统 |
CN103647670A (zh) * | 2013-12-20 | 2014-03-19 | 北京理工大学 | 一种基于sketch的数据中心网络流量分析方法 |
CN104301248A (zh) * | 2014-10-31 | 2015-01-21 | 杭州华三通信技术有限公司 | 报文限速方法和装置 |
CN106937052A (zh) * | 2017-03-29 | 2017-07-07 | 维沃移动通信有限公司 | 一种图像数据的处理方法及移动终端 |
Also Published As
Publication number | Publication date |
---|---|
EP3648410A1 (en) | 2020-05-06 |
KR102337092B1 (ko) | 2021-12-07 |
US20200169485A1 (en) | 2020-05-28 |
WO2019024623A1 (zh) | 2019-02-07 |
JP2020529171A (ja) | 2020-10-01 |
KR20200028477A (ko) | 2020-03-16 |
CN107566206A (zh) | 2018-01-09 |
JP7039685B2 (ja) | 2022-03-22 |
EP3648410A4 (en) | 2020-07-01 |
US11228513B2 (en) | 2022-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566206B (zh) | 一种流量测量方法、设备及系统 | |
US10097464B1 (en) | Sampling based on large flow detection for network visibility monitoring | |
US9979624B1 (en) | Large flow detection for network visibility monitoring | |
US10873534B1 (en) | Data plane with flow learning circuit | |
CN105993150B (zh) | 增加网络设备中的分组处理速率 | |
US10536360B1 (en) | Counters for large flow detection | |
US9690842B2 (en) | Analyzing frequently occurring data items | |
EP3282643B1 (en) | Method and apparatus of estimating conversation in a distributed netflow environment | |
CN112688837B (zh) | 基于时间滑动窗口的网络测量方法与装置 | |
JP2010041471A (ja) | 通信データ統計装置、通信データ統計方法およびプログラム | |
US20110167149A1 (en) | Internet flow data analysis method using parallel computations | |
US20170180235A1 (en) | Technologies for sideband performance tracing of network traffic | |
CN112671611A (zh) | 基于sketch的大流检测方法和装置 | |
Emmerich et al. | FlowScope: Efficient packet capture and storage in 100 Gbit/s networks | |
US10003515B1 (en) | Network visibility monitoring | |
CN113518130B (zh) | 一种基于多核处理器的分组突发负载均衡方法及系统 | |
CN115396345A (zh) | 流量测量方法、装置及相关设备 | |
CN114020471B (zh) | 一种基于草图的轻量级大象流检测方法及平台 | |
Elsen et al. | goProbe: a scalable distributed network monitoring solution | |
CN114884893A (zh) | 一种转发和控制可定义的协同流量调度方法与系统 | |
CN113965492A (zh) | 一种数据流统计方法及装置 | |
CN115473836B (zh) | 一种基于流图模型的网络流量测量方法和装置 | |
US9306854B2 (en) | Method and apparatus for diagnosing interface oversubscription and microbursts | |
CN111581489B (zh) | 一种基于共享计数树的存储空间优化采样方法 | |
US20240171498A1 (en) | Detecting in-transit inband telemetry packet drops |
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 |