CN115460111B - 基于HINOC协议的Top-k流的统计方法及其系统 - Google Patents
基于HINOC协议的Top-k流的统计方法及其系统 Download PDFInfo
- Publication number
- CN115460111B CN115460111B CN202210888212.2A CN202210888212A CN115460111B CN 115460111 B CN115460111 B CN 115460111B CN 202210888212 A CN202210888212 A CN 202210888212A CN 115460111 B CN115460111 B CN 115460111B
- Authority
- CN
- China
- Prior art keywords
- flow
- layer
- counter
- value
- flow value
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于HINOC协议的Top‑k流的统计方法及其系统,涉及HINOC系统网络测量技术领域,包括:对以太网数据流进行特征提取,得到五元组信息,依据五元组信息对业务流进行分类,按照流的特征字段进行编码,得到标识流;采用多层级数据结构和多数投票算法结合的方式,得到Top‑k流的统计结果;采用状态机查询和更新Top‑k流的统计结果;处理器可根据特定的需求查询对应方案的Top‑k流的统计结果。本申请可以实现高性能、高空间利用率的流量统计算法。
Description
技术领域
本发明属于HINOC系统网络测量技术领域,具体涉及一种基于HINOC协议的Top-k流的统计方法及其系统。
背景技术
目前,基于HINOC同轴宽带接入技术的有线同轴网,是国家信息基础设施的重要组成部分。但随着网络的发展,流量规模的不断增大,大规模流量统计变得越来越重要,针对Flow size,Heavy Hitter,Top-k,Heavy Change,Distribution,Entrop,Cardinality,DDoS等网络流的测量需求愈加迫切。
早期HINOC2.0的网络管理功能,是固化在相应的网络设备中的,基于2个端口对交换机不同流向的流量进行统计,其中只有19类按照流向的统计数据。随着网络规模的扩张与网络可视化的迫切需求,这种简单的统计方式已经不能满足HINOC同轴网在实际商用过程中的网络管理;且HINOC2.0协议峰值速率可达1.14Gbps,仅凭粗略的总数统计,无法了解网络发生异常的原因,也就没有办法针对特定的业务流进行管理。
因此,亟需提高Top-k流流量统计精度。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种基于HINOC协议的Top-k流的统计方法及其系统。本发明要解决的技术问题通过以下技术方案实现:
第一方面,本申请提供一种基于HINOC协议的Top-k流的统计方法,包括:
对以太网数据流进行特征提取,得到五元组信息,依据五元组信息对业务流进行分类,按照流的特征字段进行编码,得到标识流;
采用多层级数据结构和多数投票算法结合的方式,得到Top-k流的统计结果;
采用状态机查询和更新Top-k流的统计结果;
处理器可根据特定的需求查询对应方案的Top-k流的统计结果。
可选地,标识流为依据五元组信息进行哈希映射得到的取值。
可选地,Top-k流的统计结果由r行组成,每一行包括w个桶,每个桶内包括元素Vi,j和元素Ki,j;其中,Vi,j为哈希到第i行第j个桶中总的流量,即流量计数器,Ki,j为当前桶内记录的流特征。
可选地,采用多数投票算法的过程包括:
将流量计数器Vi,j初始化为0,每次收到新选票后,将新选票与候选人的多数选票进行比较;如果相同,即相同的流特征,则将流量计数器Vi,j加上本次流量值;如果不同,即不同的流特征,则将流量计数器Vi,j减去本次流量值;如果本次流量值大于当前桶内流量值,则用新选票替换当前候选人的多数选票,并将流量计数器Vi,j重置为0。
可选地,多层级数据结构包括λ层,高一层的流量计数器Vi,j是低一层的流量计数器Vi,j的数量的一半;第一层的流量计数器为纯计数器,为多比特超前进位的加减法器;除去第一层的其他层的流量计数器为混合计数器,为多比特超前进位的加减法器与左右标志位的结合。
可选地,以多数投票算法为统计结果,以多层级数据结构为存储形式,对以太网数据流进行写入、删除和查询;
其中,写入时,依据标识流写入一条流的流量计数器Vi,j时,获取d个哈希函数h1(e),h2(e),…,hd(e),定位第一层L1的纯计数器为L1[h1(e)],L1[h2(e)],…,L1[hd(e)],定位第二层L2的混合计数器为L2[h1(e)],L2[h2(e)],…,L2[hd(e)],如果第二层L2中的流量计数器Vi,j溢出,则将溢出记录在对应的第一层L1中的父流量计数器中;
删除时,判断第一层L1中某一个纯计数器L1[hj(e)]是否为0;如果否,则将第一层L1中的纯计数器的数量减1,如果是,则将纯计数器L1[hj(e)]设置为最大值,将第二层L2中的混合计数器的数量减1,同时根据是否降位修改标志信息;
查询时,根据查询地址,第一层L1的查询地址为原始查询地址,每增加一层,查询地址截去与其相邻的低一层的1比特,且将每次截去的1比特作为左右标志位的指示信号flag;当该位为0,表示低一层的右子计数器进位;当该位为1,表示低一层的左子计数器进位;直至高一层的左标志位为0,得到Top-k流的统计数量。
可选地,状态机包括QUERY_HASH状态和WRITE_HASH状态;
其中,QUERY_HASH状态用于查询Top-k流的统计结果;在QUERY_HASH状态下,依据五元组信息的哈希映射值查询5次;
WRITE_HASH状态用于更新Top-k流的统计结果;在WRITE_HASH状态下,判断本次key值与上次存储的key值是否相等;如果相等,则本次key值保持不变,更新桶内总流量值,即将桶内存储流量值加上本次的流量值;如果不相等,判断桶内存储流量值是否为0;如果是,则更新key值为本次的流量的key值,桶内流量值更新为本次流量值;如果不是,则key值保持不变,判断桶内存储流量值与本次流量值的大小关系;如果桶内存储流量值大于本次流量值,则更新桶内总流量值,即将桶内存储流量值减去本次的流量值,使得更新后的桶内流量值为二者差值;如果桶内存储流量值小于本次流量值,则更新桶内总流量值,使得更新后的桶内流量值为0。
可选地,更新Top-k流的统计结果包括:
获取本次更新的流量值、左右标志位的指示信号flag和加减法sub信号;
当加减法sub信号为0,表示更新本次流量值采用加法;当加减法sub信号为1,表示更新本次流量值采用减法;
当各层完成加法操作时,各层传递的进位信号可作为混合计数器的标志位;当各层完成减法操作时,判断该层流量计数器是否为0,以及判断高一层是否还有标志位,决定标志位是否保留。
可选地,五元组信息包括IP地址、TCP端口号、UDP端口号、协议类型和帧长信息。
第二方面,本申请还提供一种基于HINOC协议的Top-k流的统计系统,包括:
帧信息提取模块,用于对以太网数据流进行特征提取,得到五元组信息;
哈希映射模块,用于依据所述五元组信息对业务流进行分类,按照流的特征字段进行编码,得到标识流;
多数投票算法模块,用于根据当前存储的票判断是否仍为候选人多数票;
纯计数器模块,用于计数频率,并将第一层L1纯计数器产生的进位信号传递给高一层的混合计数器模块;
混合计数器模块,用于查询各层对应的Top-k流的统计结果;
多层级统计模块,用于连接纯计数器模块和多层混合计数器模块,控制各层的进位连接和查询所有层的Top-k流的统计结果;
处理模块,用于处理器可根据特定的需求查询对应方案的Top-k流的统计结果。
本发明的有益效果:
本发明提供的一种基于HINOC协议的Top-k流的统计方法及其系统,通过哈希的方法将较大的数据映射到较小的存储空间中,权衡了统计精度和存储空间;通过多个哈希函数的方法将同一个业务流映射到不同的网络流量桶中,并结合多数投票算法,降低了哈希冲突带来的统计误差;采用软硬件结合的思想优化原有算法,将算法映射到FPGA硬件平台上,可以实现高性能、高空间利用率的流量统计算法;当硬件接收到数据包时,提取五元组信息并进行哈希计算,同时将哈希计算结果送给CPU进行处理,实现对网络的实时管控,可以进一步提升网络的吞吐量。
以下将结合附图及实施例对本发明做进一步详细说明。
附图说明
图1是本发明实施例提供的基于HINOC协议的Top-k流的统计方法的一种流程图;
图2是本发明实施例提供的Top-k流的统计结果的一种示意图;
图3是本发明实施例提供的层级数据结构的一种示意图;
图4是本发明实施例提供的基于HINOC协议的Top-k流的统计方法的另一种流程图;
图5是本发明实施例提供的基于HINOC协议的Top-k流的统计装置的一种结构示意图;
图6是本发明实施例提供的基于HINOC协议的Top-k流的统计装置的另一种结构示意图。
具体实施方式
下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。
现有技术中,针对HINOC2.0的不足,HINOC3.0网络的可视化技术应运而生,其特色是硬件设备实时计算和监测流量,中央处理器(CPU)读取统计结果,并根据结果下发网络管理指令;硬件与软件二者相互结合才能了解网络状态,对网络进行优化管理,例如,进行流量调度、拥塞控制、异常检测等,实现对网络的实时管控。
现有的网络数据流采用五元组信息进行标识,标识位共计104bit,如果依据每一条流的精确五元组信息,其地址范围约为0~2E31,如果为每条流分配一个8位宽的计数器,则总的存储空间为16NB,1NB为一百万亿亿亿字节,实际中,无法为每条流精确的分配一个计数空间,造成统计精度欠缺。此外,如果为每条流分配一个计数器,保证了统计的准确性,但与此同时带来的问题是存储空间复杂度较高,存储整个数据流的空间和时间成本太高;根据对真实数据集和文献的分析,数据流中的频率通常高度倾斜,即大多数项目低频出现,少数项目高频出现,且高频流的频率是未知的,即HINOC有线同轴网络中流量分布不均衡,大多数流流量很小,少部分流流量很大,数量较少的热流对网络产生较大的影响,数量最大的k条流称为Top-k流,使得难以确定计数器的大小。
请参见图1,图1是本发明实施例提供的基于HINOC协议的Top-k流的统计方法的一种流程图,本申请所提供的一种基于HINOC协议的Top-k流的统计方法,包括:
S101、对以太网数据流进行特征提取,得到五元组信息,依据五元组信息对业务流进行分类,按照流的特征字段进行编码,得到标识流;
S102、采用多层级数据结构和多数投票算法结合的方式,得到Top-k流的统计结果;
S103、采用状态机查询和更新Top-k流的统计结果;
S104、处理器可根据特定的需求查询对应方案的Top-k流的统计结果。
具体而言,请继续参见图1所示,本实施例中提供的基于HINOC协议的Top-k流的统计方法,包括以下步骤:
S101、对以太网数据流进行特征提取,得到五元组信息,依据五元组信息对业务流进行分类,按照流的特征字段进行编码,得到标识流。
S102、针对冷流与热流统计精度的要求,采用多层级数据结构和多数投票算法结合的方式,对高速流的数量进行准确记录,并且对高速流的频率进行估计,得到Top-k流的统计结果;采用多层级数据结构和多数投票算法结合的方式,能够提高数据流的存储效率,同时提高冷流和热流的存储精度。
S103、采用状态机查询和更新Top-k流的统计结果;
S104、处理器可根据特定的需求查询对应方案的Top-k流的统计结果;其中,既支持顺序查询Top-k统计结果,也支持给定特定五元组信息查询对应业务流统计结果;当处理器顺序读取Top-k流的统计结果时,结合统计结果中的数值统计结果、速率统计结果和业务流信息,判断是否有异常业务流,如果存在异常业务流,则处理器根据业务流特征,对硬件内部下发对应指令,指令可以为流控、丢弃、复制、重定向、指定优先级等动作,进一步完成流量调度,拥塞控制。
采用以上步骤,通过哈希的方法将较大的数据映射到较小的存储空间中,权衡了统计精度和存储空间;通过多个哈希函数的方法将同一个业务流映射到不同的网络流量桶中,并结合多数投票算法,降低了哈希冲突带来的统计误差;采用软硬件结合的思想优化原有算法,将算法映射到FPGA硬件平台上,可以实现高性能、高空间利用率的流量统计算法;当硬件接收到数据包时,提取五元组信息并进行哈希计算,同时将哈希计算结果送给CPU进行处理,实现对网络的实时管控,可以进一步提升网络的吞吐量。
需要说明的是,五元组信息包括IP地址、TCP端口号、UDP端口号、协议类型和帧长信息。
在本申请的一种可选地实施例中,标识流为依据五元组信息进行哈希映射得到的取值;通过哈希的方法将较大的数据映射到较小的存储空间中,权衡了统计精度和存储空间。
具体而言,本实施例中,标识流为依据五元组信息进行哈希映射得到的取值,一个标识流(FlowID)代表一条某种特征的流;其中,FlowID=Hash(S1 xor S2 xor...S5),S1、S2、S3、S4、S5分别为五个哈希函数,本实施例采用的哈希(HASH)映射函数的生成式为下表。
函数名 | 生成式 |
OX8FDB | 1+x^1+x^3+x^4+x^6+x^7+x^8+x^9+x^10+x^11+x^15+x^16 |
OX968B | 1+x^1+x^3+x^7+x^9+x^10+x^12+x^15+x^16 |
0XC86C | 1+x^2+x^3+x^5+x^6+x^11+x^14+x^15+x^16 |
0XAC9A | 1+x^1+x^3+x^4+x^7+x^10+x^11+x^13+x^15+x^16 |
0XBAAD | 1+x^2+x^3+x^5+x^7+x^9+x^11+x^12+x^13+x^15+x^16 |
在本申请的一种可选地实施例中,请参见图2,图2是本发明实施例提供的Top-k流的统计结果的一种示意图,Top-k流的统计结果由r行组成,每一行包括w个桶,每个桶内包括元素Vi,j和元素Ki,j;其中,Vi,j为哈希到第i行第j个桶中总的流量,即流量计数器,Ki,j为当前桶内记录的流特征。
具体而言,请继续参见图2所示,本实施例中,Top-k流的统计结果由r行组成,通过r个相互独立的哈希函数,将拥有相同特征的流哈希到r行中不同的位置,并且使用多个计数器来存储元素频率,大大降低了哈希冲突带来的统计元素频率偏大的问题;此外,通过多个哈希函数的方法将同一业务流映射到不同的网络流量桶中,并结合相应的算法,降低了哈希冲突带来的统计误差。
在本申请的一种可选地实施例中,采用多数投票算法的过程包括:
将流量计数器Vi,j初始化为0,每次收到新选票后,将新选票与候选人的多数选票进行比较;如果相同,即相同的流特征,则将流量计数器Vi,j加上本次流量值;如果不同,即不同的流特征,则将流量计数器Vi,j减去本次流量值;如果本次流量值大于当前桶内流量值,则用新选票替换当前候选人的多数选票,并将流量计数器Vi,j重置为0。
具体而言,本实施例中采用多数投票算法确保真正的多数票是在流结束时存储的候选人多数票,而在原始的多数投票算法中,桶内还包括元素Ci,j,该元素用来判断此流是否被保留为多数流,每次收到新的选票,如果投票相同,则指标计数器加1,如果投票不同,则指标计数器减1;而本申请在此基础上,优化了原始多数投票算法的步骤,减少了指标计数器的操作,但统计精度没有受到影响。
需要说明的是,多数票算法的目的是找到多数票,定义为拥有超过一半总票数的投票计数,从一次通过的投票流中计算,内存使用量恒定;在任何时候,多数票算法都会存储到目前为止在流中观察到的候选人多数票和一个指示计数器,用于跟踪当前存储的票是否仍然是候选人多数票。
在本申请的一种可选地实施例中,请参见图3,图3是本发明实施例提供的层级数据结构的一种示意图,层级数据结构包括λ层,高一层的流量计数器Vi,j是低一层的流量计数器Vi,j的数量的一半;第一层的流量计数器为纯计数器,为多比特超前进位的加减法器;除去第一层的其他层的流量计数器为混合计数器,为多比特超前进位的加减法器与左右标志位的结合。
具体而言,本实施例中,多层级数据结构包括λ层,包括L1,L2,L3,L4,Li,Ltop-2,Ltop-1,Ltop,高一层的流量计数器Vi,j是低一层的流量计数器Vi,j的一半,也可以理解为,高层每个计数器对应着低层两个计数器,高层的计数器为混合计数器,包括两个标志位,左标志位和右标志位,各占1bit,其表示低层计数器左右侧是否有进位,有效计数位数为2位;最低层计数器为纯计数器,有效计数位数为4位,只用来计数频率;其中,低层计数器数量多,每个计数器的大小较小,使得冷流的哈希冲突减少;高层计数器数量较少,每个计数器的大小较大,使得热流不会溢出,对热流的统计精度较低,但对冷流统计精度较高。
在本申请的一种可选地实施例中,以多数投票算法为统计结果,以多层级数据结构为存储形式,对以太网数据流进行写入、删除和查询;
其中,写入时,依据标识流写入一条流的流量计数器Vi,j时,获取d个哈希函数h1(e),h2(e),…,hd(e),定位第一层L1的纯计数器为L1[h1(e)],L1[h2(e)],…,L1[hd(e)],定位第二层L2的混合计数器为L2[h1(e)],L2[h2(e)],…,L2[hd(e)],如果第二层L2中的流量计数器Vi,j溢出,则将溢出记录在对应的第一层L1中的父流量计数器中;
删除时,判断第一层L1中某一个纯计数器L1[hj(e)]是否为0;如果否,则将第一层L1中的纯计数器的数量减1,如果是,则将纯计数器L1[hj(e)]设置为最大值,将第二层L2中的混合计数器的数量减1,同时根据是否降位修改标志信息;
查询时,根据查询地址,第一层L1的查询地址为原始查询地址,每增加一层,查询地址截去与其相邻的低一层的1比特,且将每次截去的1比特作为左右标志位的指示信号flag;当该位为0,表示低一层的右子计数器进位;当该位为1,表示低一层的左子计数器进位;直至高一层的左标志位为0,得到Top-k流的统计数量。
具体而言,本实施例中,以多数投票算法为统计结果,以多层级数据结构为存储形式,对数据进行写入、删除和查询;其中,写入和删除是基于多数投票算法进行。
需要说明的是,在写入和查询多层级统计结果时,采用状态机完成,控制写入的状态即执行顺序为WRITE_INIT,WRITE_IDLE,QUERY_HASH,WRITE_HASH,WRITE_END。
在本申请的一种可选地实施例中,请参见图4,图4是本发明实施例提供的基于HINOC协议的Top-k流的统计方法的另一种流程图,状态机包括QUERY_HASH状态和WRITE_HASH状态;
其中,QUERY_HASH状态用于查询Top-k流的统计结果;在QUERY_HASH状态下,依据所述五元组信息的哈希映射值查询5次,即根据5条哈希映射值查询5次;
WRITE_HASH状态用于更新Top-k流的统计结果;在WRITE_HASH状态下,判断本次key值与上次存储的key值是否相等;如果相等,则本次key值保持不变,更新桶内总流量值,即将桶内存储流量值加上本次的流量值;如果不相等,判断桶内存储流量值是否为0;如果是,则更新key值为本次的流量的key值,桶内流量值更新为本次流量值;如果不是,则key值保持不变,判断桶内存储流量值与本次流量值的大小关系;如果桶内存储流量值大于本次流量值,则更新桶内总流量值,即将桶内存储流量值减去本次的流量值,使得更新后的桶内流量值为二者差值;如果桶内存储流量值小于本次流量值,则更新桶内总流量值,使得更新后的桶内流量值为0;需要说明的是,最后一次对于新旧流量的比较,为防止减出一个负数,同时代替了原始算法中指标计数器的作用,在减少操作步骤的过程,还不影响精度的统计。
在本申请的一种可选地实施例中,更新Top-k流的统计结果包括:
获取本次更新的流量值、左右标志位的指示信号flag和加减法sub信号;
当加减法sub信号为0,表示更新本次流量值采用加法;当加减法sub信号为1,表示更新本次流量值采用减法;
当各层完成加法操作时,各层传递的进位信号可作为混合计数器的标志位;当各层完成减法操作时,判断该层流量计数器是否为0,以及判断高一层是否还有标志位,决定标志位是否保留;即,如果较高层标志位存在,说明还有进位,保留本层标志位;若较高层标志位不存在,说明没有向上的进位,则不保留本层的标志位。
基于同一发明构思,请参见图5和图6所示,图5是本发明实施例提供的基于HINOC协议的Top-k流的统计装置的一种结构示意图,图6是本发明实施例提供的基于HINOC协议的Top-k流的统计装置的另一种结构示意图,本申请还提供一种基于HINOC协议的Top-k流的统计系统,应用于本申请上述实施例提供的统计方法,该系统包括:
帧信息提取模块201,用于对以太网数据流进行特征提取,得到五元组信息;
哈希映射模块202,用于依据五元组信息对业务流进行分类,按照流的特征字段进行编码,得到标识流;
多数投票算法模块203,用于根据当前存储的票判断是否仍为候选人多数票;
纯计数器模块204,用于计数频率,并将第一层L1纯计数器产生的进位信号传递给高一层的混合计数器模块;
混合计数器模块205,用于查询各层对应的Top-k流的统计结果;
多层级统计模块206,用于连接纯计数器模块和多层混合计数器模块,控制各层的进位连接和查询所有层的Top-k流的统计结果;
处理模块207,用于处理器可根据特定的需求查询对应方案的Top-k流的统计结果;可以理解为,依靠HINOC系统中HIMAC与CPU之间的异步SRAM接口,CPU通过和HIMAC之间的接口读取HIMAC内部的可读RAM;在顺序查询查询Top-k统计结果时,CPU通过打印RAM查到表项里的统计值和五元组信息;在给定特定五元组信息查询对应业务流统计结果时,CPU给定五元组信息,查到唯一的统计数。当检测到异常流时,CPU下发处理指令;其中,指令包括流控、丢弃、复制、重定向、指定优先级等动作,依靠HIMAC内部流分类器来实现;可选地,流分类模块负责按照CPU下发的规则表的要求,对流进行规则匹配,通过对以太网数据包的过滤和分类,得到分类结果,即指令码,用于指示应该对数据包进行的处理。
具体而言,本实施例中提供的基于HINOC协议的Top-k流的统计系统,还包括速率计算模块,嵌入在硬件平台上,能够实现实时且高精度的速率计算;本实施例中采用硬件结合软件的思维优化原有算法,将算法映射到FPGA硬件平台上,可以实现高性能、高空间利用率的流量统计算法;当硬件接收到数据包时,提取五元组信息并进行哈希计算,同时将哈希计算结果送给CPU进行处理,实现对网络的实时管控,可以进一步提升网络的吞吐量。
基于同一发明构思,本申请还提供一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如下步骤:
对以太网数据流进行特征提取,得到得到五元组信息,依据五元组信息对业务流进行分类,按照流的特征字段进行编码,得到标识流;采用多层级数据结构和多数投票算法结合的方式,得到Top-k流的统计结果;采用状态机查询和更新Top-k流的统计结果;处理器可根据特定的需求查询对应方案的Top-k流的统计结果。
基于同一发明构思,本申请还提供一种搭载数据结构分层的统计系统的基于HINOC协议的统计结果查询更新删除控制器,基于HINOC协议的统计结果查询更新删除控制器包括一个主状态机,按照映射地址和标志位信息更新数据集。
本发明提供的一种基于HINOC协议的Top-k流的统计方法及其系统,通过哈希的方法将较大的数据映射到较小的存储空间中,权衡了统计精度和存储空间;通过多个哈希函数的方法将同一个业务流映射到不同的网络流量桶中,并结合多数投票算法,降低了哈希冲突带来的统计误差;采用软硬件结合的思想优化原有算法,将算法映射到FPGA硬件平台上,可以实现高性能、高空间利用率的流量统计算法;当硬件接收到数据包时,提取五元组信息并进行哈希计算,同时将哈希计算结果送给CPU进行处理,实现对网络的实时管控,可以进一步提升网络的吞吐量。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (5)
1.一种基于HINOC协议的Top-k流的统计方法,其特征在于,包括:
对以太网数据流进行特征提取,得到五元组信息,依据所述五元组信息对业务流进行分类,按照流的特征字段进行编码,得到标识流;
采用多层级数据结构和多数投票算法结合的方式,得到Top-k流的统计结果;采用所述多数投票算法的过程包括:将流量计数器Vi,j初始化为0,每次收到新选票后,将新选票与候选人的多数选票进行比较;如果流特征相同,则将流量计数器Vi,j加上本次流量值;如果流特征不同,则将流量计数器Vi,j减去本次流量值;如果本次流量值大于当前桶内流量值,则用新选票替换当前候选人的多数选票,并将流量计数器Vi,j重置为0;其中,所述Top-k流的统计结果由r行组成,每一行包括w个桶,每个桶内包括元素Vi,j和元素Ki,j;其中,Vi,j为哈希到第i行第j个桶中总的流量,即流量计数器,Ki,j为当前桶内记录的流特征;其中,以所述多数投票算法为统计结果,以所述多层级数据结构为存储形式,对以太网数据流进行写入、删除和查询;其中,写入时,依据标识流写入一条流的流量计数器Vi,j时,获取d个哈希函数h1(e),h2(e),…,hd(e),定位第一层L1的纯计数器为L1[h1(e)],L1[h2(e)],…,L1[hd(e)],定位第二层L2的混合计数器为L2[h1(e)],L2[h2(e)],…,L2[hd(e)],如果第二层L2中的流量计数器Vi,j溢出,则将溢出记录在对应的第一层L1中的父流量计数器中;删除时,判断第一层L1中某一个纯计数器L1[hj(e)]是否为0;如果否,则将第一层L1中的纯计数器的数量减1,如果是,则将纯计数器L1[hj(e)]设置为最大值,将第二层L2中的混合计数器的数量减1,同时根据是否降位修改标志信息;查询时,根据查询地址,第一层L1的查询地址为原始查询地址,每增加一层,查询地址截去与其相邻的低一层的1比特,且将每次截去的1比特作为左右标志位的指示信号flag;当该位为0,表示低一层的右子计数器进位;当该位为1,表示低一层的左子计数器进位;直至高一层的左标志位为0,得到Top-k流的统计数量;
采用状态机查询和更新Top-k流的统计结果;所述状态机包括QUERY_HASH状态和WRITE_HASH状态;其中,所述QUERY_HASH状态用于查询Top-k流的统计结果;在所述QUERY_HASH状态下,依据所述五元组信息的哈希映射值查询5次;所述WRITE_HASH状态用于更新Top-k流的统计结果;在所述WRITE_HASH状态下,判断本次key值与上次存储的key值是否相等;如果相等,则本次key值保持不变,更新桶内总流量值,将桶内存储流量值加上本次的流量值;如果不相等,判断桶内存储流量值是否为0;如果是,则更新key值为本次的流量的key值,桶内流量值更新为本次流量值;如果不是,则key值保持不变,判断桶内存储流量值与本次流量值的大小关系;如果桶内存储流量值大于本次流量值,则更新桶内总流量值,将桶内存储流量值减去本次的流量值,使得更新后的桶内流量值为二者差值;如果桶内存储流量值小于本次流量值,则更新桶内总流量值,使得更新后的桶内流量值为0;所述更新Top-k流的统计结果包括:获取本次更新的流量值、左右标志位的指示信号flag和加减法sub信号;当加减法sub信号为0,表示更新本次流量值采用加法;当加减法sub信号为1,表示更新本次流量值采用减法;当各层完成加法操作时,各层传递的进位信号可作为混合计数器的标志位;当各层完成减法操作时,判断该层流量计数器是否为0,以及判断高一层是否还有标志位,决定标志位是否保留;
处理器可根据特定的需求查询对应方案的Top-k流的统计结果。
2.根据权利要求1所述的基于HINOC协议的Top-k流的统计方法,其特征在于,所述标识流为依据五元组信息进行哈希映射得到的取值。
3.根据权利要求1所述的基于HINOC协议的Top-k流的统计方法,其特征在于,所述多层级数据结构包括λ层,高一层的流量计数器Vi,j是低一层的流量计数器Vi,j的数量的一半;第一层的流量计数器为纯计数器,为多比特超前进位的加减法器;除去第一层的其他层的流量计数器为混合计数器,为多比特超前进位的加减法器与左右标志位的结合。
4.根据权利要求1所述的基于HINOC协议的Top-k流的统计方法,其特征在于,所述五元组信息包括IP地址、TCP端口号、UDP端口号、协议类型和帧长信息。
5.一种基于HINOC协议的Top-k流的统计系统,其特征在于,包括:
帧信息提取模块,用于对以太网数据流进行特征提取,得到五元组信息;
哈希映射模块,用于依据所述五元组信息对业务流进行分类,按照流的特征字段进行编码,得到标识流;
多数投票算法模块,用于根据当前存储的票判断是否仍为候选人多数票;其中,采用所述多数投票算法的过程包括:将流量计数器Vi,j初始化为0,每次收到新选票后,将新选票与候选人的多数选票进行比较;如果流特征相同,则将流量计数器Vi,j加上本次流量值;如果流特征不同,则将流量计数器Vi,j减去本次流量值;如果本次流量值大于当前桶内流量值,则用新选票替换当前候选人的多数选票,并将流量计数器Vi,j重置为0;其中,所述Top-k流的统计结果由r行组成,每一行包括w个桶,每个桶内包括元素Vi,j和元素Ki,j;其中,Vi,j为哈希到第i行第j个桶中总的流量,即流量计数器,Ki,j为当前桶内记录的流特征;其中,以所述多数投票算法为统计结果,以所述多层级数据结构为存储形式,对以太网数据流进行写入、删除和查询;其中,写入时,依据标识流写入一条流的流量计数器Vi,j时,获取d个哈希函数h1(e),h2(e),…,hd(e),定位第一层L1的纯计数器为L1[h1(e)],L1[h2(e)],…,L1[hd(e)],定位第二层L2的混合计数器为L2[h1(e)],L2[h2(e)],…,L2[hd(e)],如果第二层L2中的流量计数器Vi,j溢出,则将溢出记录在对应的第一层L1中的父流量计数器中;删除时,判断第一层L1中某一个纯计数器L1[hj(e)]是否为0;如果否,则将第一层L1中的纯计数器的数量减1,如果是,则将纯计数器L1[hj(e)]设置为最大值,将第二层L2中的混合计数器的数量减1,同时根据是否降位修改标志信息;查询时,根据查询地址,第一层L1的查询地址为原始查询地址,每增加一层,查询地址截去与其相邻的低一层的1比特,且将每次截去的1比特作为左右标志位的指示信号flag;当该位为0,表示低一层的右子计数器进位;当该位为1,表示低一层的左子计数器进位;直至高一层的左标志位为0,得到Top-k流的统计数量;
纯计数器模块,用于计数频率,并将第一层L1纯计数器产生的进位信号传递给高一层的混合计数器模块;
混合计数器模块,用于采用状态机查询和更新各层对应的Top-k流的统计结果;所述状态机包括QUERY_HASH状态和WRITE_HASH状态;其中,所述QUERY_HASH状态用于查询Top-k流的统计结果;在所述QUERY_HASH状态下,依据所述五元组信息的哈希映射值查询5次;所述WRITE_HASH状态用于更新Top-k流的统计结果;在所述WRITE_HASH状态下,判断本次key值与上次存储的key值是否相等;如果相等,则本次key值保持不变,更新桶内总流量值,将桶内存储流量值加上本次的流量值;如果不相等,判断桶内存储流量值是否为0;如果是,则更新key值为本次的流量的key值,桶内流量值更新为本次流量值;如果不是,则key值保持不变,判断桶内存储流量值与本次流量值的大小关系;如果桶内存储流量值大于本次流量值,则更新桶内总流量值,将桶内存储流量值减去本次的流量值,使得更新后的桶内流量值为二者差值;如果桶内存储流量值小于本次流量值,则更新桶内总流量值,使得更新后的桶内流量值为0;其中,所述查询各层对应的Top-k流的统计结果包括:获取本次更新的流量值、左右标志位的指示信号flag和加减法sub信号;当加减法sub信号为0,表示更新本次流量值采用加法;当加减法sub信号为1,表示更新本次流量值采用减法;当各层完成加法操作时,各层传递的进位信号可作为混合计数器的标志位;当各层完成减法操作时,判断该层流量计数器是否为0,以及判断高一层是否还有标志位,决定标志位是否保留;
多层级统计模块,用于连接纯计数器模块和多层混合计数器模块,控制各层的进位连接和查询所有层的Top-k流的统计结果;
处理模块,用于处理器可根据特定的需求查询对应方案的Top-k流的统计结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210888212.2A CN115460111B (zh) | 2022-07-26 | 2022-07-26 | 基于HINOC协议的Top-k流的统计方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210888212.2A CN115460111B (zh) | 2022-07-26 | 2022-07-26 | 基于HINOC协议的Top-k流的统计方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115460111A CN115460111A (zh) | 2022-12-09 |
CN115460111B true CN115460111B (zh) | 2023-07-25 |
Family
ID=84296483
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210888212.2A Active CN115460111B (zh) | 2022-07-26 | 2022-07-26 | 基于HINOC协议的Top-k流的统计方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115460111B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113765848A (zh) * | 2020-06-02 | 2021-12-07 | 华为技术有限公司 | 异常数据流的检测方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419630B (zh) * | 2008-12-11 | 2011-03-23 | 中国科学院计算技术研究所 | 一种数据流中Top-k项的挖掘方法及系统 |
CN103078754B (zh) * | 2012-12-29 | 2016-09-28 | 大连环宇移动科技有限公司 | 一种基于计数型bloom filter的网络数据流统计方法 |
WO2020170221A1 (en) * | 2019-02-22 | 2020-08-27 | Aerial Technologies Inc. | Handling concept drift in wi-fi-based localization |
CN111782700B (zh) * | 2020-08-05 | 2023-08-18 | 中国人民解放军国防科技大学 | 基于双层结构的数据流频次估计方法、系统及介质 |
CN113839835B (zh) * | 2021-09-27 | 2023-09-26 | 长沙理工大学 | 一种基于小流过滤的Top-k流精确监控系统 |
CN114205253A (zh) * | 2021-12-15 | 2022-03-18 | 长沙理工大学 | 一种基于小流过滤的活跃大流精确检测架构及方法 |
-
2022
- 2022-07-26 CN CN202210888212.2A patent/CN115460111B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113765848A (zh) * | 2020-06-02 | 2021-12-07 | 华为技术有限公司 | 异常数据流的检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115460111A (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109861881B (zh) | 一种基于三层Sketch架构的大象流检测方法 | |
CN111737101B (zh) | 基于大数据的用户行为监测方法、装置、设备及介质 | |
US20110167149A1 (en) | Internet flow data analysis method using parallel computations | |
CN103593376A (zh) | 一种采集用户行为数据的方法及装置 | |
EP3282643A1 (en) | Method and apparatus of estimating conversation in a distributed netflow environment | |
CN111176953B (zh) | 一种异常检测及其模型训练方法、计算机设备和存储介质 | |
CN113132180A (zh) | 一种面向可编程网络的协作式大流检测方法 | |
CN116070249B (zh) | 资产数据智能监控管理系统及方法 | |
CN113469857A (zh) | 一种数据处理方法、装置、电子设备以及存储介质 | |
CN116055362A (zh) | 基于时间窗口的两级哈希-Sketch网络流量测量方法 | |
CN114356576A (zh) | 一种基于大数据的云服务分析管理系统 | |
Zeng et al. | A survey on sliding window sketch for network measurement | |
CN109952743B (zh) | 用于低内存和低流量开销大流量对象检测的系统和方法 | |
CN110084476B (zh) | 案件调整方法、装置、计算机设备和存储介质 | |
CN116150191A (zh) | 一种用于云端数据架构的数据运算加速方法及系统 | |
CN113657747B (zh) | 一种企业安全生产标准化级别智能评定系统 | |
CN115460111B (zh) | 基于HINOC协议的Top-k流的统计方法及其系统 | |
CN111200542B (zh) | 一种基于确定性替换策略的网络流量管理方法及系统 | |
Zhao et al. | Panakos: Chasing the tails for multidimensional data streams | |
US8838774B2 (en) | Method, system, and computer program product for identifying common factors associated with network activity with reduced resource utilization | |
CN116756494A (zh) | 数据异常值处理方法、装置、计算机设备和可读存储介质 | |
CN115580543B (zh) | 一种基于哈希计数的网络系统活跃度评估方法 | |
CN112560877A (zh) | 服务分类方法及装置、互联网系统 | |
CN113595959A (zh) | 网络流量数据的处理方法及服务器 | |
Sun et al. | Hee-sketch: an efficient sketch for sliding-window frequency estimation over skewed data streams |
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 |