一种基于哈希压缩算法的网络流量监控方法

文档序号:9754386阅读:496来源:国知局
一种基于哈希压缩算法的网络流量监控方法
【技术领域】
[0001]本发明涉及一种基于哈希压缩算法的网络流量监控方法,属于网络通信技术领域。特别适用于在FPGA片内实现对不超过2K条IP数据流进行识别以及匹配查找,同时完成流量统计监控功能。
【背景技术】
[0002]随着网络技术的深入发展以及网络规模的不断扩大,流量激增问题也日益突出。为了可以监控网络运行,及时发现网络中存在的异常流量问题,需要一种稳定、及时、可靠的网络流量监控方法。目前,基于IP数据流的网络流量监控方法在硬件实现上通常采用外置TCAM或者DDR进行流识别以及流量统计。该方法虽然满足了对网络中IP数据流的快速识别和流量统计的要求,但是带来了功耗加大、成本增加等问题。尤其是在一些网络规模不大的专网应用中,该方法造成了硬件资源及成本的极大浪费。因此,在一些网络规模不大的专网应用领域需要一种适用于在FPGA片内实现,同时不用占用太多存储器资源,能够快速实现IP数据流识别以及流量统计的网络流量监控方法。

【发明内容】

[0003]本发明的目的是提供一种在网络规模不大的专网中,适用于在FPGA片内实现的网络流量监控方法,该方法具有占用资源少、硬件成本低等特点,可对IP数据流进行快速识别以及流量统计。
[0004]本发明的实现方案是基于哈希压缩算法实现对IP数据流的快速识别和匹配;本发明以接收到IP报文的五元组作为流标识,并将该流标识通过哈希压缩算法,减少其位长度,从而确定哈希查找表的入口地址,大大节省了哈希表所占用的存储器空间;同时由于采用了哈希桶解决哈希冲突问题,因此降低了冲突解决的复杂度,减少了查表命中时间。
[0005]为了实现所述发明目的,本发明由以下技术方案实现:
[0006]—种基于哈希压缩算法的网络流量监控方法,其特征在于包括如下步骤:
[0007]第(I)步:将IP报文中的目的IP地址、源IP地址、目的端口号、源端口号以及协议类型字段提取出来作为流标识,送入哈希压缩算法模块进行处理;
[0008]第(2)步:哈希压缩算法模块以流标识作为关键字,通过HASH函数得到哈希表入口索引地址,进行哈希表匹配查找;
[0009]第(3)步:每个哈希表入口地址对应一个桶深为4个表项的哈希桶,在得到哈希表入口地址后,进入其对应的哈希桶中以流标识为匹配对象进行匹配查找;如果哈希桶中存在匹配项,进入第(4)步;如果哈希桶中不存在匹配项,进入第(5)步;
[0010]第(4)步:当哈希桶中存在匹配项时,将匹配项中的流量统计表地址提取出来,进入流量统计表进行流量统计更新,转入第(6)步;
[0011]第(5)步:当哈希桶中不存在匹配项且哈希桶中表项未被占满时,按照表项0、1、2、3的优先级顺序在未被占用的表项中新建匹配项,并在新建匹配项中分配新的流量统计表地址,同时在该地址对应的流量统计表中新建流量统计信息,转入第(6)步;
[0012]第(6)步:为了防止哈希桶占用溢出情况的发生,对哈希表的表项建立老化删除机制;每隔2秒对流量统计表进行一次轮询,当流量统计表中有表项中的字节统计数2秒内没有增加时,其对应哈希表中的表项将进行删除操作;同时释放该流标识所占用的流量统计表地址;
[0013]完成基于哈希压缩算法的网络流量监控方法。
[0014]其中,第(2)步中哈希压缩算法模块中的HASH函数选用CRC-12算法实现,CRC-12算法的计算多项式为xl2+xll+x3+x+l;其中,x为多项式因子。
[0015]与现有技术相比,本发明提供的基于哈希压缩算法的网络流量监控方法占用存储器资源少,硬件成本低;该方法以接收到IP报文的五元组作为流标识,并将该流标识通过哈希压缩算法,减少其位长度,大大节省了哈希表所占用的存储器空间;同时采用哈希桶解决匹配冲突问题,提高了 IP数据流匹配查找性能,减少了查表命中时间;该方法适合于对低功耗、低成本和稳定性要求高的专网通信应用领域。
【附图说明】
[0016]图1是本发明的原理不意图;
[0017]图2是流标识的提取示意图;
[0018]图3是本发明中哈希表的结构示意图;
[0019]图4是本发明中流量统计表的结构示意图。
【具体实施方式】
[0020]下面结合附图1-4对本发明作详细说明。
[0021]如图1所示,一种基于哈希压缩算法的网络流量监控方法,其特征在于包括如下步骤:
[0022]第(I)步:将IP报文中的目的IP地址(32bit)、源IP地址(32bit)、目的端口号(16bit)、源端口号(I6bit)以及协议类型字段(8bit)提取出来作为流标识(104bit),送入哈希压缩算法模块进行处理;
[0023]如图2所示,以一条IPV4TCP数据数报文为例,其流标识为:{192,168,I,25,192,160,1,30,80,69,6};
[0024]第(2)步:哈希压缩算法模块以流标识(104bit)作为关键字,通过HASH函数得到哈希表入口索引地址(12bit),进行哈希表匹配查找;哈希压缩算法模块中的HASH函数选用CRC-12算法实现;该CRC-12算法的计算多项式为xl2+xl 1+χ3+χ+1;其中,X为多项式因子;
[0025]第(3)步:每个哈希表入口地址对应一个桶深为4个表项的哈希桶,在得到哈希表入口地址后,进入其对应的哈希桶中以流标识为匹配对象进行匹配查找,该哈希表的结构如图3所示;如果哈希桶中存在匹配项,进入第(4)步;如果哈希桶中不存在匹配项,进入第
(5)步;
[0026]第(4)步:当哈希桶中存在匹配项时,将匹配项中的流量统计表地址提取出来,进入流量统计表进行流量统计更新,转入第(6)步;该流量统计表的结构如图4所示;
[0027]第(5)步:当哈希桶中不存在匹配项且哈希桶中表项未被占满时,按照表项0、1、2、3的优先级顺序在未被占用的表项中新建匹配项,并在新建匹配项中分配新的流量统计表地址,同时在该地址对应的流量统计表中新建流量统计信息,转入第(6)步;
[0028]第(6)步:为了防止哈希桶占用溢出情况的发生,对哈希表的表项建立老化删除机制;每隔2秒对流量统计表进行一次轮询,当流量统计表中有表项中的字节统计数2秒内没有增加时,其对应哈希表中的表项将进行删除操作;同时释放该流标识所占用的流量统计表地址;
[0029]完成基于哈希压缩算法的网络流量监控方法。
[0030]以上结合附图详细说明了本发明,但是本领域的普通技术人员应当明白,说明书是用于解释权利要求的,本发明的保护范围以权利要求为准,在本发明的基础上,任何所做的修改都应当在所要求的保护范围内。
【主权项】
1.一种基于FPGA的哈希压缩实现方法,其特征在于包括如下步骤: 第(I)步:将IP报文中的目的IP地址、源IP地址、目的端口号、源端口号以及协议类型字段提取出来作为流标识,送入哈希压缩算法模块进行处理; 第(2)步:哈希压缩算法模块以流标识作为关键字,通过HASH函数得到哈希表入口索引地址,进行哈希表匹配查找; 第(3)步:每个哈希表入口地址对应一个桶深为4个表项的哈希桶,在得到哈希表入口地址后,进入其对应的哈希桶中以流标识为匹配对象进行匹配查找;如果哈希桶中存在匹配项,进入第(4)步;如果哈希桶中不存在匹配项,进入第(5)步; 第(4)步:当哈希桶中存在匹配项时,将匹配项中的流量统计表地址提取出来,进入流量统计表进行流量统计更新,转入第(6)步; 第(5)步:当哈希桶中不存在匹配项且哈希桶中表项未被占满时,按照表项0、1、2、3的优先级顺序在未被占用的表项中新建匹配项,并在新建匹配项中分配新的流量统计表地址,同时在该地址对应的流量统计表中新建流量统计信息,转入第(6)步; 第(6)步:为了防止哈希桶占用溢出情况的发生,对哈希表的表项建立老化删除机制;每隔2秒对流量统计表进行一次轮询,当流量统计表中有表项中的字节统计数2秒内没有增加时,其对应哈希表中的表项将进行删除操作;同时释放该流标识所占用的流量统计表地址; 完成基于哈希压缩算法的网络流量监控方法。2.根据权利要求1所述的所述的一种基于哈希压缩算法的网络流量监控方法,其特征在于:第(2)步中哈希压缩算法模块中的HASH函数选用CRC-12算法实现,CRC-12算法的计算多项式为xl2+xll+x3+x+l;其中,X为多项式因子。
【专利摘要】本发明涉及一种基于FPGA的哈希压缩实现方法,属于网络通信技术领域。该发明提供了一种基于FPGA的哈希压缩实现方法,所述方法以接收到IP报文的五元组作为流标识,并将该流标识通过哈希压缩算法,减少其位长度,从而确定哈希查找表的入口地址,同时每个入口地址配置相应数量的哈希桶,用于解决哈希冲突;在哈希查找匹配命中后,得到该流标识对应的流量统计表地址,进行流量统计更新操作。本发明提供的方法通过哈希压缩算法,将待匹配流标识的关键字位宽大大减少,从而节省了存储器资源;同时由于采用了哈希桶解决哈希冲突问题,降低了冲突解决的复杂度,减少了查表命中时间。
【IPC分类】H04L12/26
【公开号】CN105515919
【申请号】CN201610038717
【发明人】李渊, 李文江, 刘咏荷, 郝晓鹏
【申请人】中国电子科技集团公司第五十四研究所
【公开日】2016年4月20日
【申请日】2016年1月20日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1