CN113438168B - 软硬件混合流表管理方法及装置 - Google Patents
软硬件混合流表管理方法及装置 Download PDFInfo
- Publication number
- CN113438168B CN113438168B CN202110560001.1A CN202110560001A CN113438168B CN 113438168 B CN113438168 B CN 113438168B CN 202110560001 A CN202110560001 A CN 202110560001A CN 113438168 B CN113438168 B CN 113438168B
- Authority
- CN
- China
- Prior art keywords
- flow
- software
- function module
- burst
- forwarding function
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for 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/30—Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
-
- 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/41—Flow control; Congestion control by acting on aggregated flows or links
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种软硬件混合流表管理方法和装置,应用于网络转发系统。具体的实现方式如下:获取预先设定的大流识别窗口、大流替换窗口和采样率;接收网络数据包,控制软件转发功能模组根据大流识别窗口和采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果;根据大流替换窗口和大流识别结果,控制软件转发功能模组和硬件转发功能模组进行对应的大流替换;在软件转发功能模组执行流表项相关联的操作前,判断软件转发功能模组的环形缓冲区队列中是否存在突发流;若环形缓冲区队列中存在突发流,则控制软件转发功能模组和硬件转发功能模组进行对应的突发流替换,实现了软硬件混合流表的高效管理。
Description
技术领域
本申请涉及计算机网络技术领域及数据中心网络管理领域,具体涉及一种软硬件混合流表管理方法及装置。
背景技术
越来越多的数据包头字段被用来进行流表规则的匹配和数据包的转发,现代网络设备中流表的大小迅速增长。由于许多商用网络设备转发速度快而内存大小有限,实践中都采用软硬混合的方式来管理大型流表。在这种典型的混合流表管理模式下,数据包转发过程如下:当网络设备收到数据包时,硬件会从接收到的数据包的包头中提取某些字段;如果提取的字段命中了流表中的某个流表项,则对该数据包执行与该流表项相关联的操作;否则,数据包会被转发到软件转发逻辑来以匹配软件的流表。
在这样的场景下,如何在硬件和软件之间拆分流表项很重要。拆分方法不仅会影响转发性能,还会为软件转发逻辑提前预留CPU(Central Processing Unit,中央处理器)资源提供依据。此外,经研究发现,流量具有高度偏斜性,且大流在不停地发生变化,同时突发流又具有一定的普遍性。所以针对目前的技术,如何低开销且准确的测量所有流,以及如何选择适当的时机在软件和硬件之间进行流替换,成为软硬件混合流表管理模式应用的两大难题。
发明内容
本申请提出了一种软硬件混合流表管理方法及装置,用于准确测量流大小,及时的针对软件和硬件进行流替换,实现了高效地进行混合流表管理,降低了资源的占用。
根据本申请的第一方面,提供了一种软硬件混合流表管理方法,所述方法应用于网络转发系统,所述网络转发系统包括软件转发功能模组和硬件转发功能模组,所述方法包括:
获取预先设定的大流识别窗口、大流替换窗口和采样率;
接收网络数据包,控制所述软件转发功能模组根据所述大流识别窗口和所述采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果;
根据所述大流替换窗口和所述大流识别结果,控制所述软件转发功能模组和硬件转发功能模组进行对应的大流替换;
在所述软件转发功能模组执行流表项相关联的操作前,判断所述软件转发功能模组的环形缓冲区队列中是否存在突发流;
若所述环形缓冲区队列中存在突发流,则控制所述软件转发功能模组和硬件转发功能模组进行对应的突发流替换。
在本申请的一些实施例中,所述软件转发功能模组包括流量分析器;所述控制所述软件转发功能模组根据所述大流识别窗口和所述采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果,包括:
控制所述硬件转发功能模组根据所述采样率获取所述网络数据包的包头,并转发至所述流量分析器;
通过所述流量分析器根据哈希表和最小堆数据结构及大流识别窗口对所述包头进行流量大小识别,得到大流识别结果。
在本申请的一些实施例中,所述根据所述大流替换窗口和所述大流识别结果,控制所述软件转发功能模组和所述硬件转发功能模组进行对应的大流替换,包括:
通过所述流量分析器基于所述大流替换窗口和所述大流识别结果,将当前替换窗口内的大流识别结果报告给所述流表管理器;
所述流表管理器根据所述当前替换窗口内的大流识别结果从当前接收到的网络数据包中确定出需要替换的大流数据包及需要替换的非大流数据包,并发送替换指令;
根据所述替换指令,将所述需要替换的大流数据包分配给所述硬件转发功能模组执行流表项相关联的操作,并将所述需要替换的非大流数据包分配给所述软件转发功能模组执行流表项相关联的操作。
在本申请的一些实施例中,所述软件转发功能模组包括软件队列监视器;所述判断所述软件转发功能模组的环形缓冲区队列中是否存在突发流,包括:
获取预设的阈值;
通过所述软件队列监视器将所述软件转发功能模组的环形缓冲区队列大小与所述阈值比对;
若所述环形缓冲区队列大小大于所述阈值,则确定当前所述环形缓冲区队列中存在突发流。
此外,所述控制所述软件转发功能模组和硬件转发功能模组进行对应的突发流替换,包括:
获取预设的突发流识别窗口;
控制所述软件队列监视器触发信号,并将信号发送给流量表管理器;
通过所述流量表管理器基于突发流识别窗口确定突发流及不再突发的硬件流,并为所述突发流关联硬件计数器,同时发送突发流替换指令;
根据所述突发流替换指令,将所述突发流分配给所述硬件转发功能模组执行流表项相关联的操作,并将所述不再突发的硬件流分配给所述软件转发功能模组执行流表项相关联的操作。
根据本申请的第二方面,提供了一种软硬件混合流表管理装置,所述装置应用于网络转发系统,所述网络转发系统包括软件转发功能模组和硬件转发功能模组,所述装置包括:
获取模块,用于获取预先设定的大流识别窗口、大流替换窗口和采样率;
大流识别模块,用于接收网络数据包,控制所述软件转发功能模组根据所述大流识别窗口和所述采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果;
大流替换模块,用于根据所述大流替换窗口和所述大流识别结果,控制所述软件转发功能模组和硬件转发功能模组进行对应的大流替换;
判断模块,用于在所述软件转发功能模组执行流表项相关联的操作前,判断所述软件转发功能模组的环形缓冲区队列中是否存在突发流;
突发流替换模块,在所述环形缓冲区队列中存在突发流时,用于控制所述软件转发功能模组和硬件转发功能模组进行对应的突发流替换。
在本申请的一些实施例中,所述大流识别模块具体用于:
控制所述硬件转发功能模组根据所述采样率获取所述网络数据包的包头,并转发至所述流量分析器;
通过所述流量分析器根据哈希表和最小堆数据结构及大流识别窗口对所述包头进行流量大小识别,得到大流识别结果。
在本申请的一些实施例中,所述大流替换模块具体用于:
通过所述流量分析器基于所述大流替换窗口和所述大流识别结果,将当前替换窗口内的大流识别结果报告给所述流表管理器;
所述流表管理器根据所述当前替换窗口内的大流识别结果从当前接收到的网络数据包中确定出需要替换的大流数据包及需要替换的非大流数据包,并发送替换指令;
根据所述替换指令,将所述需要替换的大流数据包分配给所述硬件转发功能模组执行流表项相关联的操作,并将所述需要替换的非大流数据包分配给所述软件转发功能模组执行流表项相关联的操作。
在本申请的一些实施例中,所述软件转发功能模组包括软件队列监视器;所述判断模块具体用于:
获取预设的阈值;
通过所述软件队列监视器将所述软件转发功能模组的环形缓冲区队列大小与所述阈值比对;
若所述环形缓冲区队列大小大于所述阈值,则确定当前所述环形缓冲区队列中存在突发流。
此外,在本申请实施例中,所述突发流替换模块具体用于:
获取预设的突发流识别窗口;
控制所述软件队列监视器触发信号,并将信号发送给流量表管理器;
通过所述流量表管理器基于突发流识别窗口确定突发流及不再突发的硬件流,并为所述突发流关联硬件计数器,同时发送突发流替换指令;
根据所述突发流替换指令,将所述突发流分配给所述硬件转发功能模组执行流表项相关联的操作,并将所述不再突发的硬件流分配给所述软件转发功能模组执行流表项相关联的操作。
根据本申请实施例的技术方案,通过将大流和突发流的替换过程分开,针对大流,以较低的采样率采用转发至软件转发功能模组基于设定的大流识别窗口进行大流识别,降低了CPU的开销。另外,将流替换窗口与流识别窗口解耦,这样不仅可以提高流量测量精度,而且可以及时的卸载软件转发功能模组上变大的流,降低了CPU的资源消耗。此外,根据所述软件转发功能模组的环形缓冲区队列大小,判断是否存在突发流,并及时进行突发流替换,既可以实现快速检测突发流量,又可以实现突发流的及时卸载,同时避免在检测和卸载突发流期间丢包,提高了软硬件混合流表的管理效率。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种软硬件混合流表管理方法的流程图;
图2为本申请实施例所提供的一种大流识别的流程图;
图3为本申请实施例所提供的一种哈希表及最小堆数据结构示意图;
图4为本申请实施例所提供的一种大流替换的流程图;
图5为本申请实施例所提供的一种判断突发流的流程图;
图6为本申请实施例所提供的一种突发流替换的流程图;
图7为本申请实施例所提供的一种软硬件混合流表管理装置的结构框图;
图8为验证不同突发峰值下的突发流检测时间结果统计图;
图9为研究突发流替换对软件流量的影响统计图;
图10为验证不同方案在不同内存占用下的准确流率的结果统计图;
图11为验证不同方案的转发能力的结果统计图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
在实际网络中,软硬件混合流表管理面临着很多挑战,本申请的发明人通过对某大型互联网内容提供商的三个云网关处的流量的分析,有了三点发现,分别为:1.流量具有高度偏斜性,前10%的大流流量占总流量的91%,所以若将前10%的大流卸载到硬件流表可以让硬件转发91%的流量,就可以有效地提高软硬件流表管理的效率;2.大流是不停地变化的,所以为了有效地管理软硬件混合流表并让硬件转发大部分流量,需要周期性地交换硬件和软件中的流表项;3.突发流的普遍性,且大多数突发流的峰值速率持续时间都非常段,超过80%的突发流的持续时间少于1秒,其中突发流是指流量迅速飙升至较高的值,并持续很短的时间,然后降至较低的速率。
通常软件与硬件之间采用周期性的流替换,即如果在给定的时间窗口内软件流的速率大于硬件流的速率,则这两个流将相互交换。基于上述发现,采用周期性的流替换就会出现问题:若设置一个较大的时间窗口进行流替换,当在该时间窗口内出现突发流时,就会占用更多的CPU资源;若时间窗口较小通常意味着在固定时间内有更多的流在软件和硬件之间替换,即更高的替换频率,会导致硬件和软件的转发能力下降。因此,如果使用常规的周期性替换方法,必须解决如何为混合流表管理算法设置适当的时间窗口大小的难题。
此外,由于所有流都会经过硬件,而只有软件转发的流经过软件,因此,流量的准确测量必须有硬件的支持才可以实现。若为每个流绑定一个硬件计数器来测量每个流的速率,不仅会造成额外资源的消耗,而且由于软件设备读取硬件计数器的时间损耗,会造成流替换不及时,增大了CPU的资源占用情况。若使用采样的方式测量,由于突发流的影响,需要较高的采样率,设置较高的采样率又会消耗更多的CPU资源,因此如何低开销准确地测量所有流也是一个需要解决的难题。
基于上述问题,本申请提供了一种软硬件混合流表管理方法,将大流和突发流的替换过程分开,同时结合了基于采样的测量机制和基于硬件计数器的测量机制,并且将流识别窗口与流替换窗口解耦,实现了高效地进行混合流表管理。
图1为本申请提出的一种软硬件混合流表管理方法的流程图,需要说明的是,本申请实施例的软硬件混合流表管理方法可应用于本申请实施例的软硬件混合流表管理装置。该方法应用于网络转发系统,网络转发系统包括软件转发功能模组和硬件转发功能模组,其中硬件转发功能模组可以为网卡、交换机等,软件功能转发模组可以是一个开发的软件库,作为一种示例,可以为一个基于DPDK(Intel Data Plane Development Kit,数据平面开发工具集)开发的软件库。
本申请实施例提出的软硬件混合流表管理方法有多种部署的方式,可以部署在带有网卡的服务器上,或者部署在连接交换机的服务器上。作为一种示例,可以部署在带有Mellanox ConnectX-5NIC网卡的服务器上。作为另外一种示例,也可以部署在连接Barefoot Tofino embedded Wedge100BF-32X/65X P4交换机的服务器上。本申请实施例采用以上两种示例进行描述,对于该方法的部署方式本申请不作限定。
如图1所示,本申请实施例提出的软硬件混合流表管理方法的实现步骤可以如下:
步骤101,获取预先设定的大流识别窗口、大流替换窗口和采样率。
需要说明的是,流量识别窗口由流量特性决定,用于实现流量的准确测量,流量替换窗口则由软件转发功能模组和硬件转发模组的特性决定。若两个窗口使用同样的大小会牺牲测量精度,或者导致流替换滞后,影响资源占用情况。所以本申请实施例将流识别窗口和流替换窗口分成两个独立确定的窗口大小。此外,对于大流,由于其速率随时间变化的模式相对稳定,所以本申请将突发流的识别替换与大流的识别替换过程分开。
在本申请实施例中,针对大流的识别使用采样的方式,即硬件转发功能模组进行采样,并将采样样本转发至软件转发功能模组,由软件转发功能模组进行流量大小的测量。其中,若使用较低的采样率,可能会操作识别出来的大流与实际的大流不同,从而导致不正确的流替换,若使用较高的采用率或大流识别窗口,会让软件转发功能模组处理更多的数据包,虽然会使流量大小测量更准确,但意味着软件转发功能模组在进行流量识别时需要消耗更多的CPU和内存资源,所以在实际应用中,应通过考虑多个因素来设置采用率和大流识别窗口的大小,包括CPU开销、内存开销和识别精度等。
在本申请实施例中,大流替换窗口可以设置为对转发性能产生可承受影响最小的窗口大小。而大流识别窗口则设置为可以准确识别流量的最小窗口。若使用较大的替换窗口,会使流替换周期较长,无法及时卸载某些变大的转件转发功能模组上的流,所以在替换窗口内,转件转发功能模组的流量会增加,导致更多的CPU资源消耗。若设置一个较小的大流替换窗口,那么较高的替换频率可能会导致软件转发功能模组和硬件转发功能模组的转发性能下降。因此,大流替换窗口大小的设置,需要在及时卸载与由于频繁替换而导致的转发性能下降之间进行权衡。
需要说明的是,在实际场景中,大流替换窗口可以小于或大于大流识别窗口。在大多数情况下,替换窗口小于识别窗口时,识别窗口实际上是一个滑动窗口,其中替换窗口为滑动步长。当替换窗口大于识别窗口时(这是极少数情况),最新的识别结果将始终用于流替换。
所以,对于大流替换窗口、大流识别窗口及采样率的大小可根据实际情况进行设置,本申请实施例对此不作限定。
步骤102,接收网络数据包,控制软件转发功能模组根据大流识别窗口和采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果。
可以理解,所有网络数据包均流经硬件转发功能模组,所以,为了对接收到的网络数据包及时地进行流量大小测量,需要硬件转发功能模组采样后转发至软件转发功能模组进行测量。在本申请实施例中,控制软件转发功能模组根据大流识别窗口和采样率对接收到的网络数据包进行流量大小的识别的具体实现方式如图2所示,包括:
步骤201,控制硬件转发功能模组根据采样率获取网络数据包的包头,并转发至流量分析器。
在本申请实施例中,软件转发功能模组包括流量分析器,用于识别要卸载的流,即进行流量大小的识别。硬件转发功能模组接收到网络数据包之后,根据预设的采样率,对接收到的网络数据包进行采样。为了进一步降低软硬件的通信量,硬件转发功能模组只将采样得到的网络数据包的包头转发至流量分析器。
步骤202,通过流量分析器根据哈希表和最小堆数据结构及大流识别窗口对包头进行流量大小识别,得到大流识别结果。
在本申请实施例中,流量分析器使用哈希表(Sketch)和最小堆数据结构来识别大流。如图3所示,作为一种示例,L是识别窗口的大小,而T是替换窗口的大小,则有L=N×T。本申请实施例中,使用N个计数结构(二维哈希表)分别在N个子窗口中记录流的接收数据包,并将子窗口大小设置为替换窗口大小T。采样的数据包根据到达时间被散列到N个计数结构中的一个的d个桶中,每个存储桶包含一个计数变量,该计数变量在数据包到达时将增加1。其中,流大小是指每个子窗口中所有计数器的总和,且与流关联的计数器的最小值被视为流大小。最后,将所有流送入类似堆的数据结构中进行排序,从而产生最大的流,得到了大流识别结果。
需要说明的是,在本申请实施例中,将相同替换窗口的计数结构放到一个数组中。因此,每次识别窗口移动时,重置一块连续的内存,这样可以提高性能。当识别窗口更新时,将使用最新的流大小重建保存大流的堆。
步骤103,根据大流替换窗口和大流识别结果,控制软件转发功能模组和硬件转发功能模组进行对应的大流替换。
在本申请实施例中,流量分析器负责对数据包流量进行识别,流表管理器负责管理硬件中的流表项。所以流量分析器对接收到的网络数据包的包头进行识别后,将该替换窗口内的大流识别结果报告给流表管理器,由流表管理器发送替换指令,控制软件转发功能模组和硬件转发功能模组进行对应的大流替换。其具体的实现方式如图4所示:
步骤401,通过流量分析器基于大流替换窗口和大流识别结果,将当前替换窗口内的大流识别结果报告给流表管理器。
由于大流替换窗口可以理解为每次执行流替换的时间间隔,所以当前时间与上一次流替换的间隔时长达到大流替换窗口时,需要再次进行流替换。也就是说,当达到需要执行下次流替换的时间时,流量分析器会取出当前替换窗口内的大流识别结果报告给流表管理器,将其作为执行下次流替换中替换内容的依据。在本申请实施例中,当前替换窗口内的大流识别结果,可以理解为,当前时间为需要再次执行流替换的时间时,距离当前时间最近的一个大流识别窗口内的大流识别结果。
步骤402,流表管理器根据当前替换窗口内的大流识别结果从当前接收到的网络数据包中确定出需要替换的大流数据包及需要替换的非大流数据包,并发送替换指令。
可以理解,执行流替换的目的是将在软件转发功能组块中的已变为大流的数据包卸载到硬件转发功能组块,将硬件转发功能组块中的已经为非大流的数据包转移到转件转发功能组块中。
在本申请实施例中,流表管理器根据当前替换窗口内的大流识别结果就可以确定,在已接收到的网络数据包中,哪些属于在软件转发功能组块中的已变为大流的数据包,哪些属于硬件转发功能组块中的已经为非大流的数据包。其中,软件转发功能组块中的已变为大流的数据包,也就是需要替换的大流数据包,硬件转发功能组块中的已经为非大流的数据包,也就是需要替换的非大流数据包。
步骤403,根据替换指令,将需要替换的大流数据包分配给硬件转发功能模组执行流表项相关联的操作,并将需要替换的非大流数据包分配给软件转发功能模组执行流表项相关联的操作。
可以理解为,网络转发系统的控制器接收到替换指令后,分别控制软件转发功能模组和硬件转发功能模组进行相关操作。为了降低CPU的占用,将需要替换的大流数据包分配给硬件转发功能模组执行表相关联的操作。在本申请实施例中,软件转发功能模组和硬件转发功能模组可以通过软件功能模组中的环形缓冲区进行通信,所以需要替换的非大流数据包先进入软件功能模组中的环形缓冲区,进而由软件转发功能模组执行流表项相关联的操作。
基于上述两种部署示例,执行相关替换操作的实现方式可以为:对于部署在带有Mellanox ConnectX-5NIC网卡的服务器上这种情况,可以利用DPDK rte_flow API的rte_flow_create和rte_flow_destroy(基于DPDK的软件接口)在网卡中插入或替换流表条目;对于部署在连接Barefoot Tofino embedded Wedge100BF-32X/65X P4交换机的服务器上时,可以在交换机ONL(交换机上的操作系统)系统中实现RPC服务,当从流表管理器接收卸载指令时,该RPC服务会通过PD API修改流表条目。
步骤104,在软件转发功能模组执行流表项相关联的操作前,判断软件转发功能模组的环形缓冲区队列中是否存在突发流。
目前高性能网络中许多软件转发系统都使用诸如DPDK之类的高性能数据包输入输出框架来进行数据包处理。在这些框架中,软件和硬件通过环形缓冲区进行通信,硬件直接将数据包放入环形缓冲区。如果在流量突发期间软件转发功能模组转发流量的速率无法赶上接收流量的速率,则环形缓冲区队列大小将变大并且数据包将在环形缓冲区中被丢弃。也就是说,环形缓冲区队列大小的突然增加可以清楚地表明突发流的存在。所以,该环形缓冲区队列大小可以作为判断是否存在突发流的依据。
图5为判断软件转发功能模组的环形缓冲区队列中是否存在突发流的流程图,如图5所示,具体的步骤包括:
步骤501,获取预设的阈值。
在本申请实施例中,可针对环形缓冲区队列大小设置一个阈值,若当前环形缓冲区队列大小没有超过阈值,说明当前环形缓冲区队列中不存在突发流,若当前环形缓冲区队列大小大于阈值,说明当前环形缓冲区队列中存在突发流。其中,在设置阈值时,应在队列中保留一定的空间,以存储在检测和替换突发流的时间内接收到的数据包。
步骤502,通过软件队列监视器将软件转发功能模组的环形缓冲区队列大小与所述阈值比对。
此外,在本申请实施例中,软件转发功能模组包括软件队列监视器,用于监控软件转发功能模组中的环形缓冲区队列大小。作为一种示例,可以通过轮询几个网卡的指针来计算每个环形缓冲区的队列大小。对于部署在带有Mellanox ConnectX-5NIC网卡的服务器上的这种情况,可以使用软件消费者指针(rq_ci)和硬件生产者指针(rq_pi)来计算环形缓冲区队列大小,则环形缓冲区队列大小为queue_capacity-(rq_ci-rq_pi),其中,queue_capacity为队列的容量。将计算得到的环形缓冲区队列大小与设定的阈值进行比对,即可确定当前环形缓冲区内是否存在突发流。为了实现实时的突发流检测,软件转发功能模组在每个数据包到达时读取指针,这样,DPDK数据包接收逻辑内部实现了网卡指针读取逻辑。
步骤503,若环形缓冲区队列大小大于阈值,则确定当前环形缓冲区队列中存在突发流。
步骤105,若环形缓冲区队列中存在突发流,则控制软件转发功能模组和硬件转发功能模组进行对应的突发流替换。
可以理解,确定了环形缓冲区队列中存在突发流之后,需要识别出导致突发流量的确切突发流,并将该确切的突发流卸载到硬件转发功能模组,这样,才会降低CPU的占用,同时也避免网络数据包在环形缓冲区中被丢弃。
在本申请实施例中,控制软件转发功能模组和硬件转发功能模组进行对应的突发流替换的实现方式可以如图6所示,具体步骤如下:
步骤601,获取预设的突发流识别窗口。
由于突发流是指流量迅速飙升至较高的值,并持续很短的时间,然后降至较低的速率。所以为了识别突发流,设置的突发流识别窗口一般都较小。
步骤602,控制软件队列监视器触发信号,并将信号发送给流量表管理器。
在本申请实施例中,若软件队列监视器发现当前环形缓冲区队列大小大于预设的阈值,就会立刻触发信号,将信号发送给流量表管理器,由流量表管理器确定突发流替换。
步骤603,通过流量表管理器基于突发流识别窗口确定突发流及不再突发的硬件流,并为突发流关联硬件计数器,同时发送突发流替换指令。
在本申请实施例中,被识别到的确切的突发流需要卸载到硬件转发功能模组,同时识别到的大流也在硬件转发功能模组中,所以硬件转发功能模组就形成了两个区域,一个为大流区域,一个为硬件突发流区域。其中硬件突发流区域中的每个流与一个硬件计数器关联,该硬件计数器用于测量每个硬件突发流区域的流速率,也就是说,可以通过硬件技术器确定各个硬件突发流区域的突发流是否还处于突发状态。此外,在本申请实施例中,可以使用软件计数器来测量每个转件转发功能模组中的转发流的准确速率。
所以,在本申请实施例中,流表管理器收到突发流触发信号时,立刻轮询硬件计数器及软件计数器,将所有硬件计数器和软件技术器得到的流速率排序,如果某个或者某几个软件流的速率大于某个或者某几个硬件突发流区域中的流速率,则该软件流即为确切的突发流,该硬件突发流即为不再突发的硬件流。需要说明的是,被识别出的确切突发流需要关联硬件计数器,用于后续判断该突发流被卸载到硬件转发功能模组后是否处于突发状态。
步骤604,根据突发流替换指令,将突发流分配给硬件转发功能模组执行流表项相关联的操作,并将不再突发的硬件流分配给软件转发功能模组执行流表项相关联的操作。
可以理解为,网络转发系统的控制器接收到突发流替换指令后,分别控制软件转发功能模组和硬件转发功能模组进行相关操作。为了降低CPU的占用,将突发流数据包分配给硬件转发功能模组执行表相关联的操作。在本申请实施例中,软件转发功能模组和硬件转发功能模组可以通过软件功能模组中的环形缓冲区进行通信,所以不再突发的硬件流数据包先进入软件功能模组中的环形缓冲区,进而由软件转发功能模组执行流表项相关联的操作。
根据本申请实施例提出的软硬件混合流表管理方法,通过将大流和突发流的替换过程分开,针对大流,以较低的采样率采用转发至软件转发功能模组基于设定的大流识别窗口进行大流识别,降低了CPU的开销。另外,将流替换窗口与流识别窗口解耦,这样不仅可以提高流量测量精度,而且可以及时的卸载软件转发功能模组上变大的流,降低了CPU的资源消耗。此外,根据所述软件转发功能模组的环形缓冲区队列大小,判断是否存在突发流,并及时进行突发流替换,既可以实现快速检测突发流量,又可以实现突发流的及时卸载,同时避免在检测和卸载突发流期间丢包,提高了软硬件混合流表的管理效率。
为了实现上述实施例,本申请实施例还提出了一种软硬件混合流表管理装置。
图7为本申请实施例提出的一种软硬件混合流表管理装置的结构框图,如图7所述,该软硬件混合流表管理装置包括:
获取模块701,用于获取预先设定的大流识别窗口、大流替换窗口和采样率;
大流识别模块702,用于接收网络数据包,控制软件转发功能模组根据大流识别窗口和采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果;
大流替换模块703,用于根据大流替换窗口和大流识别结果,控制软件转发功能模组和硬件转发功能模组进行对应的大流替换;
判断模块704,用于在软件转发功能模组执行流表项相关联的操作前,判断软件转发功能模组的环形缓冲区队列中是否存在突发流;
突发流替换模块705,在环形缓冲区队列中存在突发流时,用于控制软件转发功能模组和硬件转发功能模组进行对应的突发流替换。
在本申请实施例中,软件转发功能模组包括流量分析器;大流识别模块702具体用于:
控制所述硬件转发功能模组根据所述采样率获取所述网络数据包的包头,并转发至所述流量分析器;
通过所述流量分析器根据哈希表和最小堆数据结构及大流识别窗口对所述包头进行流量大小识别,得到大流识别结果。
在本申请的一些实施例中,大流替换模块703具体用于:
通过流量分析器基于大流替换窗口和大流识别结果,将当前替换窗口内的大流识别结果报告给流表管理器;
流表管理器根据当前替换窗口内的大流识别结果从当前接收到的网络数据包中确定出需要替换的大流数据包及需要替换的非大流数据包,并发送替换指令;
根据替换指令,将需要替换的大流数据包分配给硬件转发功能模组执行流表项相关联的操作,并将需要替换的非大流数据包分配给软件转发功能模组执行流表项相关联的操作。
在本申请的一些实施例中,软件转发功能模组包括软件队列监视器;判断模块703具体用于:
获取预设的阈值;
通过软件队列监视器将软件转发功能模组的环形缓冲区队列大小与阈值比对;
若环形缓冲区队列大小大于阈值,则确定当前环形缓冲区队列中存在突发流。
此外,在本申请实施例中,突发流替换模块705具体用于:
获取预设的突发流识别窗口;
控制软件队列监视器触发信号,并将信号发送给流量表管理器;
通过流量表管理器基于突发流识别窗口确定突发流及不再突发的硬件流,并为突发流关联硬件计数器,同时发送突发流替换指令;
根据突发流替换指令,将突发流分配给硬件转发功能模组执行流表项相关联的操作,并将不再突发的硬件流分配给软件转发功能模组执行流表项相关联的操作。
根据本申请实施例提供的软硬件混合流表管理装置,通过将大流和突发流的替换过程分开,针对大流,以较低的采样率采用转发至软件转发功能模组基于设定的大流识别窗口进行大流识别,降低了CPU的开销。另外,将流替换窗口与流识别窗口解耦,这样不仅可以提高流量测量精度,而且可以及时的卸载软件转发功能模组上变大的流,降低了CPU的资源消耗。此外,根据所述软件转发功能模组的环形缓冲区队列大小,判断是否存在突发流,并及时进行突发流替换,既可以实现快速检测突发流量,又可以实现突发流的及时卸载,同时避免在检测和卸载突发流期间丢包,提高了软硬件混合流表的管理效率。
为了验证本申请的实际性能,发明人将上述实施例中的软硬件混合流表管理方法部署实际的实验床上,然后用实际生产环境中的流量对软硬件流表混合管理算法进行测试。我们搭建了一个由3台服务器组成的测试平台,分别是数据包发送方,数据包接收方和转发器。转发器使用基于网卡的混合流表管理算法实现(称为本发明-网卡)或基于交换机的混合流表管理算法实现(称为本发明-交换机)。三台服务器中的每台都配备了两个14核Intel CPU,128GB内存和100GbE网卡。每个服务器的操作系统是ubuntu 16.04.5LTS。对于基于网卡的实现,使用的网卡为Mellanox ConnectX-5,固件版本为16.28.1002。对于基于交换机的实现,使用的交换机硬件是Barefoot Tofino embedded Wedge100BF-32X/65X芯片,带有一个4核Intel CPU和8GB内存。此外,使用dpdk_pkg_gen 20.08.0版本(基于DPDK的一个生成包的测试软件)和DPDK20.05版本来生成,转发和接收数据包。
为了进一步的证明本申请的性能,将本申请实施例所提处软硬件混合流表管理方法与只替换大流(Burst-Oblivious Replacement,简称BOR)和纯软件转发方案(PureSoftware Forwarding,简称PSF)进行对比。BOR是本发明之前最新的软硬件混合流表管理方案,它仅定期替换大流(不考虑突发流)。PSF代表一种基准解决方案,该解决方案通过软件转发所有流量,没有硬件流表的参与。
在整个性能的评估中,将大流识别窗口设置为30秒,突发流识别窗口设置为1秒,大流的替换窗口设置为10秒,采样率设置为20%。此外,将硬件的大流区域设置为最多包含50K条流,而将硬件的突发流区域设置为最多包含100条流。为了公平比较,在BOR中,硬件流表设置为50.1K条流。DPDK环形缓冲区的队列容量设置为64K个数据包,对于基于路由器的方案,队列阈值设置为28K个数据包,对于基于网卡的方案,队列阈值设置为51K个数据包。
接下来将从以下几个方面进行验证:
(1)及时检测到突发流
为了验证本申请实施例所提出的软硬件混合流表管理方法可以及时检测到突发流,采用具有相同平均速率(约5Mpps)但峰值速率不同的流进行测试。当发送方发送的流开始突发时,将特殊的标记包注入到该流中。突发检测时间是指从转发设备接收到该特殊标记包到转发设备检测到流量突发之间的时间间隔。如图8所示,平均检测时间约为2.9毫秒,这比突发流持续的时间(即1秒或几秒)要低得多。快速检测突发流量为系统提供了足够的时间来识别和替换突发流。由图8可知,基于交换机的突发流检测时间比基于网卡的突发流检测时间长,因为突发流量超过基于交换机方案中的较大队列阈值需要花费更多时间。此外,检测时间随着流量峰值速率的增加而减少。这是因为当流量峰值速率较大时,软件队列大小达到阈值所需的时间更少。
(2)处理突发流的有效性
由于本申请使用基于计数器的方法来选择造成突发软件流量的突发流,并与不再突发的硬件流进行替换。接下来将验证基于计数器的算法是否可以准确地选择造成突发流量的流。实验条件:产生30分钟的流量,30分钟的流量在不同的时间突发,共有1K条突发流,流量的平均速率约为5Mpps;突发流量的峰值速率遵循从6Mpps到50Mpps之间的均匀分布。实验结果表明,在1K条突发流中可以成功识别出984条突发流。同时,对从检测突发流到替换突发流之间的时间进行了测量。结果显示基于网卡的实现需要大约0.0666ms,基于交换机的实现需要大约0.184ms来替换突发流。因此说明,本申请提供的软硬件混合流表管理方法可以提供及时的突发流替换操作。
为了直观地展示本申请实施例所提出的软硬件混合流表管理方法处理突发流的有效性,分别对了基于网卡的方案,基于交换机的方案和BOR算法下软件转发的流量进行了测量。如图9所示,本申请方案可以成功地将软件转发的流量保持在稳定且较低的速率,而BOR中有许多软件突发流量。
(3)相同转发能力的CPU资源消耗
为了进一步验证本方案的整体性能,针对固定的平均发送速率(56.15Mpps),及不同数量的转发核来测量本申请方案和对比方案在软件上的丢包率。每种解决方案所需的最少CPU资源是指可以转发这些流量而恰好不会引起丢包的最少数量的CPU核。其中,不对进行流量测量和排序的CPU核进行计数,因为本申请方案和BOR所使用的测量和排序的资源是相同的(当然PSF不需要使用这些资源)。如图10所示,本申请方案仅需要1个CPU核即可转发所有流量。相比之下,BOR需要3个CPU核,而PSF需要11个CPU核。这表明,对于转发相同速率流量的情况,本申请方案与PSF相比可以节省90.1%的CPU资源,而与BOR相比可以节省66.7%的CPU资源。
(4)固定CPU资源的情况下不同方案的转发能力
为测量不同方案的转发能力,可以采用使用一个CPU核进行转发,并测量不同方案的最大转发速率。如图11所示,本申请方案的最大转发速率(约56Mpps)几乎是BOR的最大转发速率(约26Mpps)的两倍。这表明,通过感知突发流,本申请方案可以大大提高对硬件转发能力的利用。PSF的最高转发速率最低(约5.45Mpps),因为它根本没有利用硬件资源。
(5)延迟、队列长度和丢包率
在软件部分使用一个CPU核进行转发,因此可以通过测量每个数据包的延迟,软件队列长度和丢包率,将本申请方案与BOR和PSF进行比较。针对这些对比方案,进行了两种不同情况的测试。在第一种情况下,如果转发设备没有发生数据包的丢失,则对于每种解决方案,发送方都会以最高的速率发送流量。具体来说,本申请方案,BOR和PSF的平均发送速率分别为56.15Mpps,26.48Mpps和5.45Mpps。在第二种情况下,为每个解决方案的发送端设置固定发送速率(56.15Mpps),这是本申请方案的转发能力。测试结果如表1所示。
在第一种情况下,根据实验结果发现,本申请方案的平均延迟和平均队列长度比BOR大,因为本申请方案的流量发送速率是BOR的两倍以上。但是,即使在这种情况下,由于可以卸载突发流,本申请方案的尾部延迟和尾部队列长度也比BOR低几个数量级。在第二种情况下,差距甚至会进一步扩大,本申请方案的尾部延迟比BOR低约97.4%。
表1不同流表管理方案的延迟,队列长度和丢包率
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (4)
1.一种软硬件混合流表管理方法,其特征在于,所述方法应用于网络转发系统,所述网络转发系统包括软件转发功能模组和硬件转发功能模组,所述方法包括:
获取预先设定的大流识别窗口、大流替换窗口和采样率;
接收网络数据包,控制所述软件转发功能模组根据所述大流识别窗口和所述采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果;
根据所述大流替换窗口和大流识别结果,控制所述软件转发功能模组和硬件转发功能模组进行对应的大流替换;
在所述软件转发功能模组执行流表项相关联的操作前,判断所述软件转发功能模组的环形缓冲区队列中是否存在突发流;
若所述环形缓冲区队列中存在突发流,则控制所述软件转发功能模组和硬件转发功能模组进行对应的突发流替换;
所述根据所述大流替换窗口和所述大流识别结果,控制所述软件转发功能模组和所述硬件转发功能模组进行对应的大流替换,包括:
通过流量分析器基于所述大流替换窗口和所述大流识别结果,将当前替换窗口内的大流识别结果报告给流表管理器;
所述流表管理器根据所述当前替换窗口内的大流识别结果从当前接收到的网络数据包中确定出需要替换的大流数据包及需要替换的非大流数据包,并发送替换指令;
根据所述替换指令,将所述需要替换的大流数据包分配给所述硬件转发功能模组执行流表项相关联的操作,并将所述需要替换的非大流数据包分配给所述软件转发功能模组执行流表项相关联的操作;
所述软件转发功能模组包括软件队列监视器;所述判断所述软件转发功能模组的环形缓冲区队列中是否存在突发流,包括:
获取预设的阈值;
通过所述软件队列监视器将所述软件转发功能模组的环形缓冲区队列大小与所述阈值比对;
若所述环形缓冲区队列大小大于所述阈值,则确定当前所述环形缓冲区队列中存在突发流;
所述控制所述软件转发功能模组和硬件转发功能模组进行对应的突发流替换,包括:
获取预设的突发流识别窗口;
控制所述软件队列监视器触发信号,并将信号发送给流量表管理器;
通过所述流量表管理器基于突发流识别窗口确定突发流及不再突发的硬件流,并为所述突发流关联硬件计数器,同时发送突发流替换指令;
根据所述突发流替换指令,将所述突发流分配给所述硬件转发功能模组执行流表项相关联的操作,并将所述不再突发的硬件流分配给所述软件转发功能模组执行流表项相关联的操作。
2.根据权利要求1所述的方法,其特征在于,所述软件转发功能模组包括流量分析器;所述控制所述软件转发功能模组根据所述大流识别窗口和所述采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果,包括:
控制所述硬件转发功能模组根据所述采样率获取所述网络数据包的包头,并转发至所述流量分析器;
通过所述流量分析器根据哈希表和最小堆数据结构及大流识别窗口对所述包头进行流量大小识别,得到大流识别结果。
3.一种软硬件混合流表管理装置,其特征在于,所述装置应用于网络转发系统,所述网络转发系统包括软件转发功能模组和硬件转发功能模组,所述装置包括:
获取模块,用于获取预先设定的大流识别窗口、大流替换窗口和采样率;
大流识别模块,用于接收网络数据包,控制所述软件转发功能模组根据所述大流识别窗口和所述采样率对接收到的网络数据包进行流量大小的识别,得到大流识别结果;
大流替换模块,用于根据所述大流替换窗口和所述大流识别结果,控制所述软件转发功能模组和硬件转发功能模组进行对应的大流替换;
判断模块,用于在所述软件转发功能模组执行流表项相关联的操作前,判断所述软件转发功能模组的环形缓冲区队列中是否存在突发流;
突发流替换模块,在所述环形缓冲区队列中存在突发流时,用于控制所述软件转发功能模组和硬件转发功能模组进行对应的突发流替换;
所述大流替换模块具体用于:
通过流量分析器基于所述大流替换窗口和所述大流识别结果,将当前替换窗口内的大流识别结果报告给流表管理器;
所述流表管理器根据所述当前替换窗口内的大流识别结果从当前接收到的网络数据包中确定出需要替换的大流数据包及需要替换的非大流数据包,并发送替换指令;
根据所述替换指令,将所述需要替换的大流数据包分配给所述硬件转发功能模组执行流表项相关联的操作,并将所述需要替换的非大流数据包分配给所述软件转发功能模组执行流表项相关联的操作;
所述软件转发功能模组包括软件队列监视器;所述判断模块具体用于:
获取预设的阈值;
通过所述软件队列监视器将所述软件转发功能模组的环形缓冲区队列大小与所述阈值比对;
若所述环形缓冲区队列大小大于所述阈值,则确定当前所述环形缓冲区队列中存在突发流;
所述突发流替换模块具体用于:
获取预设的突发流识别窗口;
控制所述软件队列监视器触发信号,并将信号发送给流量表管理器;
通过所述流量表管理器基于突发流识别窗口确定突发流及不再突发的硬件流,并为所述突发流关联硬件计数器,同时发送突发流替换指令;
根据所述突发流替换指令,将所述突发流分配给所述硬件转发功能模组执行流表项相关联的操作,并将所述不再突发的硬件流分配给所述软件转发功能模组执行流表项相关联的操作。
4.根据权利要求3所述的装置,其特征在于,所述软件转发功能模组包括流量分析器;所述大流识别模块具体用于:
控制所述硬件转发功能模组根据所述采样率获取所述网络数据包的包头,并转发至所述流量分析器;
通过所述流量分析器根据哈希表和最小堆数据结构及大流识别窗口对所述包头进行流量大小识别,得到大流识别结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110560001.1A CN113438168B (zh) | 2021-05-21 | 2021-05-21 | 软硬件混合流表管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110560001.1A CN113438168B (zh) | 2021-05-21 | 2021-05-21 | 软硬件混合流表管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113438168A CN113438168A (zh) | 2021-09-24 |
CN113438168B true CN113438168B (zh) | 2022-08-02 |
Family
ID=77802639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110560001.1A Active CN113438168B (zh) | 2021-05-21 | 2021-05-21 | 软硬件混合流表管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113438168B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114900475B (zh) * | 2022-04-29 | 2023-07-14 | 鹏城实验室 | 一种混合流转发方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108616452A (zh) * | 2018-03-30 | 2018-10-02 | 新华三技术有限公司 | 报文转发方法及装置 |
CN112491889A (zh) * | 2020-11-27 | 2021-03-12 | 中国人民解放军战略支援部队信息工程大学 | 一种软硬件协同的可编程转发系统、方法及装置 |
CN112671611A (zh) * | 2020-12-23 | 2021-04-16 | 清华大学 | 基于sketch的大流检测方法和装置 |
CN112751781A (zh) * | 2019-10-31 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 流量数据的处理方法、装置、设备及计算机存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140237118A1 (en) * | 2013-02-19 | 2014-08-21 | Broadcom Corporation | Application Aware Elephant Flow Management |
CN107092649B (zh) * | 2017-03-13 | 2021-04-06 | 浙江工业大学 | 一种面向实时流计算的无感知拓扑替换方法 |
US10862617B2 (en) * | 2017-05-30 | 2020-12-08 | Marvell Asia Pte, Ltd. | Flowlet scheduler for multicore network processors |
US10462060B2 (en) * | 2018-02-14 | 2019-10-29 | Mellanox Technologies, Ltd. | Ability to detect unlimited elephant flows |
-
2021
- 2021-05-21 CN CN202110560001.1A patent/CN113438168B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108616452A (zh) * | 2018-03-30 | 2018-10-02 | 新华三技术有限公司 | 报文转发方法及装置 |
CN112751781A (zh) * | 2019-10-31 | 2021-05-04 | 阿里巴巴集团控股有限公司 | 流量数据的处理方法、装置、设备及计算机存储介质 |
CN112491889A (zh) * | 2020-11-27 | 2021-03-12 | 中国人民解放军战略支援部队信息工程大学 | 一种软硬件协同的可编程转发系统、方法及装置 |
CN112671611A (zh) * | 2020-12-23 | 2021-04-16 | 清华大学 | 基于sketch的大流检测方法和装置 |
Non-Patent Citations (1)
Title |
---|
支持阻塞与非阻塞模型且线程安全的环形缓冲的设计与实现――环形缓冲,攻克高级缓冲技术的关键;黄毅峰;《电脑编程技巧与维护》;20031115(第11期);第2页第1栏,第3页第1栏,第4页第2栏 * |
Also Published As
Publication number | Publication date |
---|---|
CN113438168A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110249603B (zh) | 用于检测无线网络中的分布式攻击的方法和装置 | |
US20090003225A1 (en) | Method and apparatus for probing of a communication network | |
CN114584485B (zh) | 检测边缘网络质量的方法、装置、设备和计算机可读存储介质 | |
CN113438168B (zh) | 软硬件混合流表管理方法及装置 | |
WO2016169121A1 (zh) | 一种链路分析的方法、设备及系统 | |
CN113507396B (zh) | 一种网络状态分析方法、装置、设备及机器可读存储介质 | |
JP2008072496A (ja) | ネットワーク監視システム、通信品質測定システム及び通信品質測定方法 | |
CN111835641B (zh) | 故障检测方法、服务器以及采集设备 | |
KR102072700B1 (ko) | 전수 패킷 처리 기반의 실시간 애플리케이션 성능 모니터링 장치 및 방법 | |
US7917611B2 (en) | Method and system for monitoring the quality of service in telecommunication networks, components and compute products thereof | |
CN110784337A (zh) | 一种云服务质量监控方法及相关产品 | |
CN115665006A (zh) | 一种随流检测方法及装置 | |
KR102370114B1 (ko) | 지능형 네트워크 관리 시스템의 정보묶음 생성관리 장치 및 그 방법 | |
CN113923272A (zh) | 数据解析方法、装置和服务器设备 | |
CN107547298B (zh) | 一种链路带宽测试方法及装置 | |
JP4973307B2 (ja) | パケット負荷試験装置 | |
CN110061891B (zh) | 一种低侵扰的高效多目标ip阻断监测调度方法和系统 | |
CN117768358A (zh) | 一种设备能力的获取方法以及相关设备 | |
US20230067780A1 (en) | Flow information collection apparatus and method of generating flow information | |
KR102408248B1 (ko) | 서비스 유형에 매칭되는 진단 패킷을 통해 네트워크에 대한 진단을 수행하는 진단 시스템 | |
WO2023112173A1 (ja) | トラフィック監視装置、トラフィック監視方法、及びプログラム | |
WO2022176021A1 (ja) | テレメトリ情報通知装置、テレメトリ情報通知方法及びテレメトリ情報通知プログラム | |
KR20180035835A (ko) | 확률적 프로세서 모니터링 | |
CN109218119B (zh) | 网络丢包诊断方法及网络设备 | |
US20220263733A1 (en) | Burst Traffic Detection Device and Method |
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 |