CN112822077A - 数据中心网络中全网流量测量方法、系统及丢包检测方法 - Google Patents
数据中心网络中全网流量测量方法、系统及丢包检测方法 Download PDFInfo
- Publication number
- CN112822077A CN112822077A CN202110201231.9A CN202110201231A CN112822077A CN 112822077 A CN112822077 A CN 112822077A CN 202110201231 A CN202110201231 A CN 202110201231A CN 112822077 A CN112822077 A CN 112822077A
- Authority
- CN
- China
- Prior art keywords
- information
- flow
- buffer
- data packet
- module
- 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.)
- Granted
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/04—Processing captured monitoring data, e.g. for logfile generation
-
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据中心网络中全网流量测量方法、系统及丢包检测方法,所述系统包括用于支持捕获所有流经该交换机的流量的采集器,采集器包括数据包解析模块、缓存器模块和计数表模块;数据包解析模块,用于解析收到的数据包的五元组信息和数据包大小信息;缓存器模块,用于建立并维护缓存空间以缓存流量信息,并维护缓存空间中的流量信息;缓存器模块更新流量信息的方式为递增操作;计数表模块,用于建立并维护计数表以存储流量信息,同时维护计数表中的流量信息;当缓存器模块缓存空间无空余时,缓存空间中的流量信息经压缩后,更新或添加至计数表对应位置中。本发明可保证流量信息的实时性、准确性和全面性,支持多样化的网络测量需求。
Description
技术领域
本发明属于网络测量技术领域,具体涉及一种数据中心网络中全网流量测量方法、系统及丢包检测方法。
背景技术
网络规模的不断扩大,使得数据中心网络结构逐渐复杂化,同时用户对网络服务质量的要求以及公司对网络设备精细化管理的要求也变得越来越高。传统的人工排查故障的方式响应迟缓、处理效率低下,无法适应这些新变化、新需求。因此,常态化的网络流量测量是对这些复杂数据中心网络进行管理监控的基础手段。而多样化的网络问题,比如网络黑洞、丢包、路由错误等都给网络测量带来了越来越大的挑战。
在交换机中部署测量探针,以被动测量的方式对流量信息进行记录,可保证测量数据的实时性、准确性和全面性,同时降低了测量本身对带宽资源的占用和对实时网络状态的影响,成为了一种被广泛使用的网络测量方式。
NetFlow是一种目前广泛应用的、部署于交换机中的被动流量测量工具,采用了抽样哈希的方式来压缩和存储流量信息,以减少捕获流数目的方式来减小存储消耗。但是在流的数量很多的情况下,简单的抽样哈希使得哈希冲突发生的概率大大增加,从而加剧存储空间的消耗,导致流插入的速度无法与交换机处理数据包的速度相匹配。
FlowRadar通过IBLT(Invertible Bloom Lookup Table)的哈希存储结构对所有的流进行编码统计,与传统的哈希表存储方式相比压缩了存储空间,从而能够存储所有的流信息。但是FlowRadar的局限性在于,解码过程存在较大的时间开销,不利于快速分析和检测网络异常。
OpenSketch,OneSketch等技术采用抽样的压缩计数方法,并将得到的流量信息存储在名为Sketch的数据结构中。基于哈希的Sketch数据结构可通过设置哈希函数,将具有相同哈希值的键值数据存入相同的桶内,以减少空间开销。桶内的数据值作为测量结果,是真实值的近似。OpenSketch,OneSketch等流量测量技术可以减小对交换机存储和计算资源的占用。但是,Sketch不能有效存储全部网络流量、抽样导致的部分流量信息损失等问题会导致流量信息无法反映真实的网络状态。
LossRadar仅提供对丢包的快速有效检测,虽然在丢包检测上能够实现非常好的实验效果,但是不能应对测量应用多样化的需求。
因此,针对测量探针部署于交换机中的被动流量测量技术,如何在保证获取到的流量信息具有实时性、准确性和全面性的同时,降低流量信息在存取过程中产生的时间开销和空间开销,同时支持多样化的网络测量需求,成为了亟待解决的关键技术问题。
发明内容
本发明提供了一种数据中心网络中全网流量测量方法与系统,降低哈希冲突频率、加快数据包处理速度、降低交换机存储开销和计算资源开销,保证流量信息的实时性和准确性;同时对流量的五元组(FiveTuple)、数据包数量(PacketSize)和总字节数(ByteSize)信息进行记录的方法,可保证流量信息的全面性,支持多样化的网络测量需求。
为达到上述目的,本发明所述一种数据中心网络中全网流量测量系统,包括采集器所述采集器部署并运行于交换机或服务器上,支持捕获所有流经该交换机的流量,所述采集器包括数据包解析模块、缓存器模块和计数表模块;
所述数据包解析模块,用于解析收到的数据包的五元组信息和数据包大小信息;
所述缓存器模块,用于建立并维护缓存空间以缓存流量信息,同时维护缓存空间中的流量信息;缓存器模块更新流量信息的方式为递增操作;
所述计数表模块,用于建立并维护计数表以存储流量信息,同时维护计数表中的流量信息;当缓存器模块缓存空间无空余时,缓存空间中的流量信息经压缩后,更新或添加至计数表对应位置中。
进一步的,采集器和控制器连接,所述控制器用于基于采集器得到的流量进行分析,以支持网络异常流量监测。
一种基于上述的系统的数据中心网络中全网流量测量方法,包括以下步骤:
步骤1:解析出数据包的五元组信息和数据包数量;
步骤2:判断该数据包信息对应的流信息是否存在于缓存器缓存空间中,以决定执行更新或添加操作;当缓存器模块所维护的缓存空间已满时将缓存空间中的流量数据写入计数表中。
进一步的,步骤2包括以下步骤:
数据包信息进入缓存器模块,由缓存器模块检索其所有已分配的缓存空间,判断是否存在一条已缓存的流量数据,其五元组与该数据包的五元组相同:
若存在,则对已缓存的对应流量信息中的数据包数量属性值执行自增1操作,总字节数属性值更新为当前总字节数与进入缓存器模块的数据包信息中的数据包大小之和;
若不存在,则首先根据该数据包信息构建一条新的流量信息,所构建的新的流量信息的五元组信息为数据包信息中的五元组信息,总字节数为数据包信息中的数据包字节数,数据包数量为1;之后,缓存器模块检查其是否有空闲的缓存位置:若有,则将构建的新的流量信息存储于检索到的第一个空闲的缓存位置中;否则,先将缓存空间中所有已经存储的流量信息逐一写入到计数表中,之后将构建的新的流量信息存入缓存空间第一个空闲的位置中。
进一步的,将缓存器的缓存空间中的流量信息写入到计数表中的步骤包括:
步骤S1、对即将写入计数表的流量信息的五元组进行d次哈希运算,d次哈希运算的结果对应至计数表的d个子表中,在每一个子表中分别得到一个对应于该子表内部哈希桶的索引;
步骤S2、根据步骤S1中得到的d个索引,访问上述d个子表的相应哈希桶,判断所述哈希桶中是否存在一条流量信息,其五元组信息同即将写入计数表的流量信息的五元组信息一致:
若存在,则对已存在的流量信息中数据包数量和总字节数字段进行更新;
否则,对即将写入计数表的流量信息的数据包数量和总字节数字段进行压缩,之后将流量信息写入选取的哈希桶中。
进一步的,S2中,将流量信息写入一个负载最轻的哈希桶中。
进一步的,若有多个哈希桶均满足负载最低的条件,则选取对应计数子表索引值最低的哈希桶。
进一步的,S2中,按照CACTI的压缩更新方式对已存在的流量信息中数据包数量和总字节数字段进行更新。
基于上述的一种数据中心网络中全网流量测量方法的网络中丢包的检测方法,包括以下步骤:
获取流i的路径,比较入口交换机S1与出口交换机Sx之间是否存在数据包损耗:
若发生损耗,则认为流i发生了丢包,此时执行n-1次比较操作,判定在哪两个交换机之间发生了丢包,n为流i流经路径上的交换机数量;
否则,控制器判定流i未发生丢包。
与现有技术相比,本发明至少具有以下有益的技术效果:
第一:本发明采用D-Left哈希的方式维护和管理流量数据,通过不同的哈希函数确定写入的哈希桶位置和负载均衡的哈希桶选择策略,使得流量数据写入时可能发生的哈希冲突次数大大减少,因哈希冲突带来的存储空间开销和数据读写时间开销也因此被降低,从而加快了数据包处理速度;相比于FlowRadar的IBLT哈希存储结构,不仅免去了IBLT读取数据时高昂的信息解码开销,而且使数据解码的错误率大大降低,加快了数据包处理速度,实现了流量信息的实时性、准确性和全面性。
第二:本发明采用CACTI压缩计数的方法存储流量信息中的数据包数量和总字节数信息。相比于不经压缩的直接存储,降低了存储空间开销;相比于抽样计数、变长统计、Small Active Counter等压缩计数方式,其错误率更低、压缩和解压缩的时间开销更小,加快了数据包处理速度,实现了流量信息的实时性、准确性和全面性。
第三:本发明设置了缓存器模块以暂存流量信息,利用计算机体系结构中的局部性原理,以极少量存储空间为代价,降低了访问计数表的频率,规避了绝大部分CACTI压缩计数执行的时间开销,加快了数据包的处理速度。
第四:本发明对包括数据包数量和总字节数信息在内的流量信息的记录,可保证流量信息的全面性,从而支持多样化的网络测量需求,有效地解决了LossRadar等工具和方法存在的仅能够对一部分网络异常进行检测的问题。
IBLT哈希存储结构的存储特性,虽节省了一定空间,但却使得不同流量的信息不经解码是无法分离的,分离所需的解码不仅需要做大量不必要的计算,例如解出不需要的流量信息,同时还会存在一定的错误率。而本发明所提出的存储策略,仅对一条流内的计数信息进行压缩,不同流之间的数据从一开始就区分的很清楚。因此,可以很方便地取出特定的流量信息,从而满足算法3b中仅取出部分流量信息的要求。本发明所提出的存储策略,仅对一条流内的计数信息进行压缩,不同流之间的数据从一开始就区分的很清楚。因此,可以很方便地取出特定的流量信息,从而满足算法3b中仅取出部分流量信息的要求。
附图说明
图1为本发明提出的DFlow的系统结构;
图2为本发明提出的DFlow系统流量信息存储结构;
图3为D-Left哈希处理算法;
图4a为数据包处理流程图;
图4b为更新所有缓存流量信息至计数表的子流程;
图5为数据包处理算法;
图6为实施例1中数据包处理示意图;
图7为实施例2的网络拓扑示意图;
图8a为传统丢包检测算法;
图8b为DFlow丢包检测优化算法。
具体实施方式
为了使本发明的目的和技术方案更加清晰和便于理解。以下结合附图和实施例,对本发明进行进一步的详细说明,此处所描述的具体实施例仅用于解释本发明,并非用于限定本发明。
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
本发明提出了一种针对数据中心网络的被动网络流量测量的方法与系统,简称为DFlow系统。下面将对DFlow系统予以介绍:
DFlow的系统结构如图1所示,DFlow的系统结构主要分为两部分:采集器和控制器。其中,采集器扮演类似SDM中的探测信标的角色,而控制器可以作为支持上层测量应用以及连接采集器的组件。
1)采集器,部署并运行于交换机中,可支持捕获所有流经该交换机的流量,包括数据包解析模块、缓存器模块和计数表模块。所有的采集器和控制器通过通讯线连接。
所述数据包解析模块,用于解析收到的数据包的五元组信息和数据包大小信息,数据包解析模块的输出端和缓存器模块的输入端连接。
所述缓存器模块,用于建立并维护一定的存储空间(缓存空间)以缓存流量信息,同时维护缓存空间中的流量信息。缓存器模块更新流量信息的方式为简单的递增操作,缓存器模块的输出和计数表模块的输入端连接。
所述计数表模块,用于建立并维护一定的存储空间(计数表)以存储流量信息,同时维护计数表中的流量信息。当缓存器模块缓存空间无空余时,缓存空间中的流量信息经压缩后,更新或添加至计数表对应位置中(视该流量信息是否已存在于计数表中执行更新或添加操作),计数表模块的输出端和控制器连接。
2)控制器,接收并分析采集器以一定时间间隔上报的流量信息,从而对包括但不限于网络异常分析检测在内的测量应用提供支持。
采集器可部署于网络中的交换机上,并能够捕获所有流经自身的流量。需要注意的是,用户可以根据特定需求,选择数据中心网络中合适的交换机作为采集器,而不需要在所有的交换机上都执行流量测量工作。例如,对网络中Heavy Hitter检测时,仅需将DFlow系统部署于骨干交换机节点,或者汇聚层交换机节点上执行流量测量任务,即可覆盖到网络中的所有流量信息。此外,为了适应多种测量需求,采集器可以部署至任何网络设备上运行,即除了交换机,采集器也可以部署在服务器上运行,以监控服务器接收或者发送的任何流量信息,从而及时发现服务器的数据包异常情况。
除采集器之外,另一个重要的组件就是控制器。在控制器上主要执行流量分析工作。采集器将采集到的流量信息发送给控制器,由控制器来完成流量分析工作,以支持各类测量应用。该设计实现了流量分析与采集工作的解耦,便于技术人员对网络和网络设备进行高效的管控。控制器获取流量信息之后,根据全网络中的流量信息可对网络异常进行分析检测。
本发明提出了一种基于上述DFlow系统的流量信息测量方法,下面将对该流量信息存储方法予以介绍:
由于流量采集是采集器的主要任务,故在DFlow系统中,所有流量存储优化策略都实现于采集器上。DFlow的流量存储优化策略采取了D-Left哈希和压缩计数相结合的方式,从而有效降低存储空间开销。
针对存储数据的快速查找,哈希是被广泛使用的一种方式。然而,当插入的流量信息条数过多时,哈希冲突发生的可能性就会增大,从而导致查找时间变长、为了实现高效查找而耗费的存储空间大幅增加。目前存在几种优化解决哈希冲突的方式,包括Cuckooinghashing、FlowRadar使用的IBLT(Invertible Bloom Lookup Table)和本发明选用的D-Left hashing。考虑到Cuckooing hashing在处理哈希冲突时剔除原有数据的机制所产生的额外时间开销,以及IBLT高昂的解码开销、处理哈希冲突和读取信息时解码过程中存在一定错误率等因素,本发明最终选用D-Left哈希作为DFlow系统中流量信息的存储机制。DFlow的设计针对D-Left哈希的特性进行了优化,即通过将哈希冲突均匀地分布在d个计数子表中,从而有效降低哈希冲突和存储空间开销。
为了降低计数时计数结果对存储空间的占用,在流量信息存储的实现中还引入了压缩计数的方式以降低计数信息对存储空间的占用。本发明选用CACTI压缩计数算法实现计数信息的压缩,其模型的函数表达式为:
其中,b为预定义的控制相关错误率和存储大小的参数,c为已压缩的计数信息,n为实际的计数信息,压缩操作为c=f-1(n),解压缩操作为n=f(c)。此外,假设此时c为已压缩的总字节数,当一个字节数为l的数据包到来时,可无需对已压缩数据进行解压缩后更新,而是采用DISCO的更新方式,即计数值(数据包数量或总字节数)以pd(c,l)的概率为c增加δ(c,l)+1,以1-pd(c,l)的概率为c增加δ(c,l):
δ(c,l)=f-1(l+f(c)-c)-1
该压缩计数方法的错误率上界为对同一数据进行压缩和解压缩的错误率低于可变长统计。同时,这种压缩方式还可对单独的计数结果可以进行实时的压缩,相比Small Active Counte,可以快速的计算出压缩后结果,免去更新计数结果时先解压缩再压缩而产生的额外计算开销。
DFlow系统的流量信息存储结构如图2所示,其结构可分为计数表和缓存空间两部分。与普通的计数表相比,DFlow的计数表包含d个子表,每个子表均包含n个哈希桶,每个哈希桶里可以存储多条流量信息。其中,本方法中,测量的流量信息均包含有以下字段:
1)流的五元组信息(FlowTuple):源IP地址,目的IP,源端口,目的端口,协议号;
2)数据包数量(PacketNumber):当前流量信息所表示的流,自测量开始所通过的数据包数量;
3)总字节数(ByteSize):当前流量信息所表示的流,自测量开始所通过的所有数据包的字节数之和;
DFlow系统中还引入了缓存机制,如图2所示。缓存器模块的设置,可以实现加快数据包处理速度这一目标。在D-Left哈希存储机制中,计数表模块访问其维护的多个计数子表以及流量数据存取过程中执行的CACTI压缩操作均存在时间开销,会对数据包的处理速度带来一定程度的负面影响。当缓存器模块收到数据包解析模块解析得到的数据包信息时,缓存器模块将对其内部暂存的数据进行查找,并同数据包信息进行比对,以确定缓存空间中是否存在一条流量数据以命中(hit)该数据包信息(即存在一条流量数据,其五元组信息同数据包信息的五元组信息一致)。根据流量的局部突发原理,合理设置缓存空间的大小可以实现较高的命中率,从而避免频繁的访问计数表,提高数据包的处理速度。单独的D-Left哈希的算法处理过程如图3所示,其展示了计数表更新的整个过程。其中,HV[i]代表对五元组信息进行哈希运算之后的在第i个子表中的哈希索引结果,HVInsert代表了最小负载桶的哈希值。
下文将详细说明本发明所涉及到的基于DFlow系统的流量信息存储方法中,具体的存储优化策略、数据包处理流程和数据压缩的过程和原理。整个处理流程主要分为两个步骤:数据包解析和流量信息维护。其中,流量信息维护主要分为两个步骤来进行:即先由缓存器模块操作,之后由计数表模块操作。
参照图4a,当一个数据包到来时,先经过数据包解析模块,解析出数据包的五元组信息和数据包大小信息。在流量信息维护阶段,缓存器模块将首先接收到数据包信息,数据包信息包括五元组信息、数据包数量和总字节数,以判断自身所缓存的流量信息中,是否存在一条流量信息的五元组与该数据包信息的五元组相同(五元组相同的数据包将被认为属于同一条流)。
若存在,就直接在已缓存的对应流量信息做如下修改:流量信息中的数据包数量属性值执行自增1操作,总字节数属性值更新为当前总字节数与进入缓存器模块的数据包信息中的总字节数之和。考虑到缓存中的计数字段(数据包数量与总字节数)的值一般较小、占用的长度不会较长、压缩的计数方式存在较大时间开销而不利于发挥缓存的优势等原因,故此步骤中使用直接递增的方式更新缓存中流量信息的计数字段。
若不存在,则首先根据该数据包信息构建一条新的流量信息。所构建的新的流量信息,其五元组信息为数据包信息中的五元组信息,总字节数为数据包信息中的数据包大小信息,数据包数量为1。
之后,缓存器模块检查其是否有空闲的缓存位置:
若是,则将构建的新的流量信息存储于检索到的第一个空闲的缓存位置中;
否则,先将缓存空间中所有已经存储的流量信息逐一写入到计数表中,之后将构建的新的流量信息存入第一个空闲的缓存位置中。这样的添加和更新方式可以减小对计数表的访问次数,使得访问计数表的操作仅在缓存中无空闲空间时才执行,避免了不同存储区域的频繁交互。一次性的全部更新,可以更好的利用交换机不同存储区域之间的通信通道,降低不同存储区域的频繁交互所引入的额外时间开销。
将缓存空间中所有已经存储的流量信息逐一写入到计数表时,对于每一条流量信息,均执行下述操作:
参照图4b,首先,对从缓存空间中取出,即将写入计数表的一条流量信息的五元组进行d次哈希运算。d次哈希运算的结果对应至计数表的d个子表中,借此可在每一个子表中分别得到一个对应于该子表内部哈希桶的索引。根据上述得到的d个索引,访问上述d个子表的相应哈希桶,判断这些哈希桶中是否存在一条流量信息,其五元组信息同即将写入计数表的流量信息的五元组信息一致。若存在,则按照CACTI算法的DISCO更新方式对已存在的流量信息中数据包数量和总字节数字段进行更新。即,取出已存在的流量信息,根据缓存中需要写入计数表的流量信息中的计数字段值,对计数表中存在的对应流量信息的计数字段使用DISCO更新方式进行更新。因为缓存器模块的引入,访问计数表的频次被大大降低,所以对计数字段中的信息进行压缩更新将不会引入过多的时间开销。此外,考虑到存储的数据大小范围比较明确,还可以将压缩过程中所需要的一部分对数运算和乘法运算提前执行,并将结果存储在单独的存储空间中。在实际的压缩操作中,只需要取出需要的运算结果(如果存在),并辅以移位、异或等便于硬件执行的运算即可得到压缩之后的计数结果,从而进一步降低压缩操作的时间开销。若计数表中不存在缓存中取出的当前流量信息,计数表模块将检查这些哈希桶,并选取一个负载最轻(包含的流量信息最少)的哈希桶,对即将写入计数表的流量信息的数据包数量和总字节数字段进行CACTI压缩,之后将流量信息写入选取的哈希桶内。若有多个哈希桶均满足负载最低的条件,则选取对应计数子表索引值最低的哈希桶。图4展示了上述流量信息存储方法中数据包的处理流程,其中图4a为数据包处理流程,图4b为图4a中更新所有缓存流量信息至计数表子流程的具体展示。图5为数据包处理流程的算法表示。
DFlow系统中需要占据存储资源的情况主要分为两部分:一是缓存空间的建立与维护,二是计数表的建立与维护。根据流量的局部突发原理,缓存空间只需要很小的存储空间就可以满足系统需要,而计数表则需要大量的存储空间。如果缓存空间设置过大,会导致缓存匹配需要花费很多的时间来遍历缓存数组才能确定当前缓存中是否已经存在该数据包所代表的流;而缓存设置过小则会频繁失配(miss),局部经常会出现数据包无法命中缓存的情况,进而导致流量数据写入计数表的操作被频繁执行,缓存加速的目的无法被实现。因此在存储空间的分配上,缓存大小的分配将直接影响交换机对数据包的处理速度,需要仔细斟酌。
实施例1
此实施例将以具体实例的方式展示流量信息测量方法中数据包的处理流程,以及此过程中流量信息的变化情况。如图6所示,其展示了当一个数据包到来时,缓存空间和计数表中流量信息变化的情况,图中从左到右是数据包依次到来的顺序。缓存空间大小设置为2,压缩参数b设置为1.002。
当流1的第1个数据包(数据包大小为1000字节)到来时,其信息将被解析。缓存器模块将检查是否存在一条流量数据命中该数据包信息,查找结果是并无符合条件的缓存记录,原因是此时缓存空间无任何流量信息。因此一条新的流量信息(流1)将基于上述解析出的数据包信息生成,其中总字节数为1000字节,数据包数量为1,五元组信息与上述流1的数据包中的五元组信息一致(这些数据均未被执行任何压缩操作)。缓存器模块随后将检查是否存在空闲的缓存空间用于暂存新的流量数据,结果是存在空闲空间,故上述生成的流量数据将直接存入查找到的缓存空间的空闲位置中。而流2的第1个数据包(数据包大小为600字节)到来时,流1的第1个数据包的处理过程将被重复,其结果是缓存中新增一条总字节数为600字节、数据包数量为1,五元组信息与前述流2的数据包中的五元组信息一致的流量信息。
当流1的第2个数据包(数据包大小为1064字节)到来时,缓存器模块将检查命中情况,结果是存在与流1的第2个数据包五元组信息一致的流量信息。故缓存器模块将直接在缓存的流量数据中更新计数字段,其中总字节数更新为2064字节,数据包数量更新为2。流2的第2个数据包(数据包大小为300字节)到来时,流1的第2个数据包的处理过程将被重复,其结果是缓存中已存在的流2的流量信息被更新,总字节数更新为900字节,数据包数量更新为2。
当流3的第1个数据包到来时,流1的第1个数据包的处理过程将被重复。但缓存器模块执行空闲空间检查时,发现已无空闲的缓存空间。此时,缓存空间中的所有流量信息将进入计数表模块中。由计数表模块将收到的信息按照前述压缩更新操作写入其D-Left哈希存储结构中。此时流1的总字节数真值为2064字节,压缩之后写入计数表中的值为818字节;流2的总字节数真值为900字节,压缩之后写入计数表中的值为515字节。对流1的总字节数压缩之后的值进行无偏估计(解压缩)之后,得到的值为2063字节,与真值仅差0.05%,以极低的错误率为代价实现了对计数信息的压缩。
实施例2
本实施例将说明基于DFlow网络流量测量系统对网络中丢包的检测。
图7展示了一个网络拓扑的示例,其中Si代表第i台交换机,连线则代表不同交换机之间的链路。以流1从S1到S2传输为例进行说明,假设流1的数据包将以S1→S4→S2的路径通过该网络。
在传统的丢包检测过程中,控制器必须首先获取流1的传输路径。之后,根据传输路径上的交换机所采集的流1的流量信息判断流1在传输过程中的损耗程度。判断方法为:在传输路径上,对路径中直接相邻的上游交换机和下游交换机中分别采集的流1流量信息中的数据包数量字段,比较两者的差距。若该差距达到预先设定的阈值,则认为这两台交换机之间出现了丢包问题。上述丢包检测过程可用如图8a所示的算法描述。以流1从S1到S2传输的实例说明该流程:控制器在获取到S1→S4→S2的路径后,需要首先比较S1与S4中采集的流1的数据包数量,假设S1中采集的流1的数据包数量多于S4,且S1中的采集的值与S4中采集的值差距超过了阈值,那么可以判定S1与S4之间出现了丢包。检测S4与S2之间是否丢包的过程与上述检测S1与S4之间丢包的过程类似。对于一条包含n个交换机的路径,控制器需要执行n-1次比较操作。
基于DFlow系统的丢包测量所使用的算法如图8b所示,其对图8a所示算法进行了优化。以上述流1从S1到S2传输为例,控制器在获取到流1的路径S1→S4→S2后,并不急于立刻执行n-1次比较,而是首先比较入口交换机S1与出口交换机S2之间是否存在数据包损耗。如果发生损耗,则认为流1发生了丢包,此时再执行上述n-1次比较操作;否则,控制器判定流1未发生丢包,n-1次比较步骤将被直接省略。当流1被认定出现丢包的情况时,可针对性地减小该条流经过的所有交换机的上报时间间隔;同时,增大其它没有发生问题的交换机的上报时间间隔。从而,控制器可对这些发生问题的交换机上报的信息进行优先分析,从而真正确定丢包的位置以及丢包的原因。这样,不仅单路径丢包、多路径负载不均衡丢包等丢包问题均可被检测,而且多余的比较操作所带来的开销被避免,提高了丢包检测的效率。
值得注意的是,基于DFlow系统的丢包测量工具可以直接采用图8b所示算法进行丢包检测,但是对于使用IBLT哈希存储结构的FlowRadar则不可采用。原因在于,IBLT的编码存储机制会出现同一存储元组内多条流量信息叠加的情况,故必须将所有交换机的流量信息的解码之后才能将需要的流量信息进行分离,从而进行检测。这一解码过程将会执行大量不必要的计算(例如得到不需要的流量信息)。因此图8b所示优化算法事实上并不适用于FlowRadar。
实施例3
本实施例将说明基于DFlow网络流量测量系统对网络中Heavy Hitter的检测。
Heavy Hitter一般指的是存在一条流,其流量大小(数据量大小或者数据包数量)超过预设阈值的情况。对Heavy Hitter的测量是一种较为常见的网络测量应用,主要方式为读取流量采集信息中的流量计数信息并同预设阈值进行比对,若前者大于后者则认为出现了Heavy Hitter情况。
DFlow采集器支持捕获流的总字节数信息,所以基于DFlow系统的Heavy Hitter检测工具可以基于流的数据量大小进行检测。与很多仅基于流的数据包数量进行HeavyHitter检测的工具相比,基于DFlow系统的Heavy Hitter检测工具可以分析整个网络的吞吐量以及异常的大数据流量,从而执行更加准确的检测。
此外,基于DFlow系统的Heavy Hitter检测应用对采集器在不同交换机上的使用策略进行了优化。以Pod为8的胖树(Fat-Tree)网络为例,从任意一台源主机发出的数据包一般需要经过5台交换机以到达目的主机。如果仅在核心层交换机启用DFlow采集器并对流经它的流量进行统计,即可覆盖网络中的所有流量,并且每一条流可以减少80%的冗余统计信息。控制器可以通过为交换机动态下发流表项的方式,控制不同交换机中流量信息采集功能的开闭。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.根据权利要求1所述的一种数据中心网络中全网流量测量系统,其特征在于,包括采集器所述采集器部署并运行于交换机或服务器上,支持捕获所有流经该交换机的流量,所述采集器包括数据包解析模块、缓存器模块和计数表模块;
所述数据包解析模块,用于解析收到的数据包的五元组信息和数据包大小信息;
所述缓存器模块,用于建立并维护缓存空间以缓存流量信息,同时维护缓存空间中的流量信息;缓存器模块更新流量信息的方式为递增操作;
所述计数表模块,用于建立并维护计数表以存储流量信息,同时维护计数表中的流量信息;当缓存器模块缓存空间无空余时,缓存空间中的流量信息经压缩后,更新或添加至计数表对应位置中。
2.根据权利要求1所述的一种数据中心网络中全网流量测量系统,其特征在于,所述采集器和控制器连接,所述控制器用于基于采集器得到的流量进行分析,以支持网络异常流量监测。
3.一种基于权利要求1所述的系统的数据中心网络中全网流量测量方法,其特征在于,包括以下步骤:
步骤1:解析出数据包的五元组信息和数据包数量;
步骤2:判断该数据包信息对应的流信息是否存在于缓存器缓存空间中,以决定执行更新或添加操作;当缓存器模块所维护的缓存空间已满时将缓存空间中的流量数据写入计数表中。
4.根据权利要求3所述的一种数据中心网络中全网流量测量方法,其特征在于,所述步骤2包括以下步骤:
数据包信息进入缓存器模块,由缓存器模块检索其所有已分配的缓存空间,判断是否存在一条已缓存的流量数据,其五元组与该数据包的五元组相同:
若存在,则对已缓存的对应流量信息中的数据包数量属性值执行自增1操作,总字节数属性值更新为当前总字节数与进入缓存器模块的数据包信息中的数据包大小之和;
若不存在,则首先根据该数据包信息构建一条新的流量信息,所构建的新的流量信息的五元组信息为数据包信息中的五元组信息,总字节数为数据包信息中的数据包字节数,数据包数量为1;之后,缓存器模块检查其是否有空闲的缓存位置:若有,则将构建的新的流量信息存储于检索到的第一个空闲的缓存位置中;否则,先将缓存空间中所有已经存储的流量信息逐一写入到计数表中,之后将构建的新的流量信息存入缓存空间第一个空闲的位置中。
5.根据权利要求4所述的一种数据中心网络中全网流量测量方法,其特征在于,将缓存器的缓存空间中的流量信息写入到计数表中的步骤包括:
步骤S1、对即将写入计数表的流量信息的五元组进行d次哈希运算,d次哈希运算的结果对应至计数表的d个子表中,在每一个子表中分别得到一个对应于该子表内部哈希桶的索引;
步骤S2、根据步骤S1中得到的d个索引,访问上述d个子表的相应哈希桶,判断所述哈希桶中是否存在一条流量信息,其五元组信息同即将写入计数表的流量信息的五元组信息一致:
若存在,则对已存在的流量信息中数据包数量和总字节数字段进行更新;
否则,对即将写入计数表的流量信息的数据包数量和总字节数字段进行压缩,之后将流量信息写入选取的哈希桶中。
6.根据权利要求5所述的一种数据中心网络中全网流量测量方法,其特征在于,所述S2中,将流量信息写入一个负载最轻的哈希桶中。
7.根据权利要求6所述的一种数据中心网络中全网流量测量方法,其特征在于,若有多个哈希桶均满足负载最低的条件,则选取对应计数子表索引值最低的哈希桶。
8.根据权利要求5所述的一种数据中心网络中全网流量测量方法,其特征在于,所述S2中,按照CACTI的压缩更新方式对已存在的流量信息中数据包数量和总字节数字段进行更新。
9.基于权利要求3所述的一种数据中心网络中全网流量测量方法的网络中丢包的检测方法,其特征在于,包括以下步骤:
获取流i的路径,比较入口交换机S1与出口交换机Sx之间是否存在数据包损耗:
若发生损耗,则认为流i发生了丢包,此时执行n-1次比较操作,判定在哪两个交换机之间发生了丢包,n为流i流经路径上的交换机数量;
否则,控制器判定流i未发生丢包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110201231.9A CN112822077B (zh) | 2021-02-23 | 2021-02-23 | 数据中心网络中全网流量测量方法、系统及丢包检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110201231.9A CN112822077B (zh) | 2021-02-23 | 2021-02-23 | 数据中心网络中全网流量测量方法、系统及丢包检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112822077A true CN112822077A (zh) | 2021-05-18 |
CN112822077B CN112822077B (zh) | 2022-12-09 |
Family
ID=75865013
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110201231.9A Active CN112822077B (zh) | 2021-02-23 | 2021-02-23 | 数据中心网络中全网流量测量方法、系统及丢包检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112822077B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024758A (zh) * | 2021-11-09 | 2022-02-08 | 清华大学 | 流量特征提取方法、系统、存储介质及电子设备 |
CN116389322A (zh) * | 2023-06-02 | 2023-07-04 | 腾讯科技(深圳)有限公司 | 流量数据处理方法、装置、计算机设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109861881A (zh) * | 2019-01-24 | 2019-06-07 | 大连理工大学 | 一种基于三层Sketch架构的大象流检测方法 |
-
2021
- 2021-02-23 CN CN202110201231.9A patent/CN112822077B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109861881A (zh) * | 2019-01-24 | 2019-06-07 | 大连理工大学 | 一种基于三层Sketch架构的大象流检测方法 |
Non-Patent Citations (3)
Title |
---|
傅明等: "基于预测缓存的OpenFlow虚拟流表高效查找方法", 《计算机工程》 * |
李秉桓,董永吉: "一种Netflow流量采集探测器的设计", 《计算机安全》 * |
李首扬等: "Memcached的分析与改进", 《网络新媒体技术》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114024758A (zh) * | 2021-11-09 | 2022-02-08 | 清华大学 | 流量特征提取方法、系统、存储介质及电子设备 |
CN116389322A (zh) * | 2023-06-02 | 2023-07-04 | 腾讯科技(深圳)有限公司 | 流量数据处理方法、装置、计算机设备和存储介质 |
CN116389322B (zh) * | 2023-06-02 | 2023-08-15 | 腾讯科技(深圳)有限公司 | 流量数据处理方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112822077B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107566206B (zh) | 一种流量测量方法、设备及系统 | |
US10097464B1 (en) | Sampling based on large flow detection for network visibility monitoring | |
JP5014282B2 (ja) | 通信データ統計装置、通信データ統計方法およびプログラム | |
US7787442B2 (en) | Communication statistic information collection apparatus | |
CN112822077B (zh) | 数据中心网络中全网流量测量方法、系统及丢包检测方法 | |
JP4126707B2 (ja) | 情報システムの状態を解析する技術 | |
US10536360B1 (en) | Counters for large flow detection | |
EP1196856A2 (en) | Method and apparatus for monitoring traffic in a network | |
EP3282643B1 (en) | Method and apparatus of estimating conversation in a distributed netflow environment | |
US10003515B1 (en) | Network visibility monitoring | |
CN112688837B (zh) | 基于时间滑动窗口的网络测量方法与装置 | |
CN115776449B (zh) | 列车以太网通信状态监测方法及系统 | |
CN112486914A (zh) | 一种数据包存储与快查方法与系统 | |
EP3811572B1 (en) | Processing local area network diagnostic data | |
CN109952743B (zh) | 用于低内存和低流量开销大流量对象检测的系统和方法 | |
KR100681000B1 (ko) | 플로우별 트래픽 측정 장치 및 방법 | |
KR100608541B1 (ko) | 샘플링과 시그너쳐 검색 기능을 구비한 인터넷 프로토콜패킷 수집 장치 및 그 방법 | |
KR20050052636A (ko) | 인터넷 트래픽 측정을 위한 플로우 생성 방법 | |
US11218411B2 (en) | Flow monitoring in network devices | |
CN114710444B (zh) | 基于塔型摘要和可驱逐流表的数据中心流量统计方法和系统 | |
JP3649451B2 (ja) | トラフィック寄与ステーション推定システム及びその方法 | |
CN113079176B (zh) | 一种适用于海量数据的高速网络流量异常检测系统 | |
Whitehead et al. | Tracking per-flow state—binned duration flow tracking | |
KR100596389B1 (ko) | 다단계 트래픽 흐름 관리 장치 및 방법 | |
CN112565821A (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 |