CN105515919A - 一种基于哈希压缩算法的网络流量监控方法 - Google Patents
一种基于哈希压缩算法的网络流量监控方法 Download PDFInfo
- Publication number
- CN105515919A CN105515919A CN201610038717.4A CN201610038717A CN105515919A CN 105515919 A CN105515919 A CN 105515919A CN 201610038717 A CN201610038717 A CN 201610038717A CN 105515919 A CN105515919 A CN 105515919A
- Authority
- CN
- China
- Prior art keywords
- hash
- address
- occurrence
- traffic statistics
- bucket
- 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.)
- Pending
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
Landscapes
- Engineering & Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于FPGA的哈希压缩实现方法,属于网络通信技术领域。该发明提供了一种基于FPGA的哈希压缩实现方法,所述方法以接收到IP报文的五元组作为流标识,并将该流标识通过哈希压缩算法,减少其位长度,从而确定哈希查找表的入口地址,同时每个入口地址配置相应数量的哈希桶,用于解决哈希冲突;在哈希查找匹配命中后,得到该流标识对应的流量统计表地址,进行流量统计更新操作。本发明提供的方法通过哈希压缩算法,将待匹配流标识的关键字位宽大大减少,从而节省了存储器资源;同时由于采用了哈希桶解决哈希冲突问题,降低了冲突解决的复杂度,减少了查表命中时间。
Description
技术领域
本发明涉及一种基于哈希压缩算法的网络流量监控方法,属于网络通信技术领域。特别适用于在FPGA片内实现对不超过2K条IP数据流进行识别以及匹配查找,同时完成流量统计监控功能。
背景技术
随着网络技术的深入发展以及网络规模的不断扩大,流量激增问题也日益突出。为了可以监控网络运行,及时发现网络中存在的异常流量问题,需要一种稳定、及时、可靠的网络流量监控方法。目前,基于IP数据流的网络流量监控方法在硬件实现上通常采用外置TCAM或者DDR进行流识别以及流量统计。该方法虽然满足了对网络中IP数据流的快速识别和流量统计的要求,但是带来了功耗加大、成本增加等问题。尤其是在一些网络规模不大的专网应用中,该方法造成了硬件资源及成本的极大浪费。因此,在一些网络规模不大的专网应用领域需要一种适用于在FPGA片内实现,同时不用占用太多存储器资源,能够快速实现IP数据流识别以及流量统计的网络流量监控方法。
发明内容
本发明的目的是提供一种在网络规模不大的专网中,适用于在FPGA片内实现的网络流量监控方法,该方法具有占用资源少、硬件成本低等特点,可对IP数据流进行快速识别以及流量统计。
本发明的实现方案是基于哈希压缩算法实现对IP数据流的快速识别和匹配;本发明以接收到IP报文的五元组作为流标识,并将该流标识通过哈希压缩算法,减少其位长度,从而确定哈希查找表的入口地址,大大节省了哈希表所占用的存储器空间;同时由于采用了哈希桶解决哈希冲突问题,因此降低了冲突解决的复杂度,减少了查表命中时间。
为了实现所述发明目的,本发明由以下技术方案实现:
一种基于哈希压缩算法的网络流量监控方法,其特征在于包括如下步骤:
第(1)步:将IP报文中的目的IP地址、源IP地址、目的端口号、源端口号以及协议类型字段提取出来作为流标识,送入哈希压缩算法模块进行处理;
第(2)步:哈希压缩算法模块以流标识作为关键字,通过HASH函数得到哈希表入口索引地址,进行哈希表匹配查找;
第(3)步:每个哈希表入口地址对应一个桶深为4个表项的哈希桶,在得到哈希表入口地址后,进入其对应的哈希桶中以流标识为匹配对象进行匹配查找;如果哈希桶中存在匹配项,进入第(4)步;如果哈希桶中不存在匹配项,进入第(5)步;
第(4)步:当哈希桶中存在匹配项时,将匹配项中的流量统计表地址提取出来,进入流量统计表进行流量统计更新,转入第(6)步;
第(5)步:当哈希桶中不存在匹配项且哈希桶中表项未被占满时,按照表项0、1、2、3的优先级顺序在未被占用的表项中新建匹配项,并在新建匹配项中分配新的流量统计表地址,同时在该地址对应的流量统计表中新建流量统计信息,转入第(6)步;
第(6)步:为了防止哈希桶占用溢出情况的发生,对哈希表的表项建立老化删除机制;每隔2秒对流量统计表进行一次轮询,当流量统计表中有表项中的字节统计数2秒内没有增加时,其对应哈希表中的表项将进行删除操作;同时释放该流标识所占用的流量统计表地址;
完成基于哈希压缩算法的网络流量监控方法。
其中,第(2)步中哈希压缩算法模块中的HASH函数选用CRC-12算法实现,CRC-12算法的计算多项式为x12+x11+x3+x+1;其中,x为多项式因子。
与现有技术相比,本发明提供的基于哈希压缩算法的网络流量监控方法占用存储器资源少,硬件成本低;该方法以接收到IP报文的五元组作为流标识,并将该流标识通过哈希压缩算法,减少其位长度,大大节省了哈希表所占用的存储器空间;同时采用哈希桶解决匹配冲突问题,提高了IP数据流匹配查找性能,减少了查表命中时间;该方法适合于对低功耗、低成本和稳定性要求高的专网通信应用领域。
附图说明
图1是本发明的原理示意图;
图2是流标识的提取示意图;
图3是本发明中哈希表的结构示意图;
图4是本发明中流量统计表的结构示意图。
具体实施方式
下面结合附图1-4对本发明作详细说明。
如图1所示,一种基于哈希压缩算法的网络流量监控方法,其特征在于包括如下步骤:
第(1)步:将IP报文中的目的IP地址(32bit)、源IP地址(32bit)、目的端口号(16bit)、源端口号(16bit)以及协议类型字段(8bit)提取出来作为流标识(104bit),送入哈希压缩算法模块进行处理;
如图2所示,以一条IPV4TCP数据数报文为例,其流标识为:{192,168,1,25,192,160,1,30,80,69,6};
第(2)步:哈希压缩算法模块以流标识(104bit)作为关键字,通过HASH函数得到哈希表入口索引地址(12bit),进行哈希表匹配查找;哈希压缩算法模块中的HASH函数选用CRC-12算法实现;该CRC-12算法的计算多项式为x12+x11+x3+x+1;其中,x为多项式因子;
第(3)步:每个哈希表入口地址对应一个桶深为4个表项的哈希桶,在得到哈希表入口地址后,进入其对应的哈希桶中以流标识为匹配对象进行匹配查找,该哈希表的结构如图3所示;如果哈希桶中存在匹配项,进入第(4)步;如果哈希桶中不存在匹配项,进入第(5)步;
第(4)步:当哈希桶中存在匹配项时,将匹配项中的流量统计表地址提取出来,进入流量统计表进行流量统计更新,转入第(6)步;该流量统计表的结构如图4所示;
第(5)步:当哈希桶中不存在匹配项且哈希桶中表项未被占满时,按照表项0、1、2、3的优先级顺序在未被占用的表项中新建匹配项,并在新建匹配项中分配新的流量统计表地址,同时在该地址对应的流量统计表中新建流量统计信息,转入第(6)步;
第(6)步:为了防止哈希桶占用溢出情况的发生,对哈希表的表项建立老化删除机制;每隔2秒对流量统计表进行一次轮询,当流量统计表中有表项中的字节统计数2秒内没有增加时,其对应哈希表中的表项将进行删除操作;同时释放该流标识所占用的流量统计表地址;
完成基于哈希压缩算法的网络流量监控方法。
以上结合附图详细说明了本发明,但是本领域的普通技术人员应当明白,说明书是用于解释权利要求的,本发明的保护范围以权利要求为准,在本发明的基础上,任何所做的修改都应当在所要求的保护范围内。
Claims (2)
1.一种基于FPGA的哈希压缩实现方法,其特征在于包括如下步骤:
第(1)步:将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算法的计算多项式为x12+x11+x3+x+1;其中,x为多项式因子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610038717.4A CN105515919A (zh) | 2016-01-20 | 2016-01-20 | 一种基于哈希压缩算法的网络流量监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610038717.4A CN105515919A (zh) | 2016-01-20 | 2016-01-20 | 一种基于哈希压缩算法的网络流量监控方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105515919A true CN105515919A (zh) | 2016-04-20 |
Family
ID=55723578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610038717.4A Pending CN105515919A (zh) | 2016-01-20 | 2016-01-20 | 一种基于哈希压缩算法的网络流量监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105515919A (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357479A (zh) * | 2016-11-15 | 2017-01-25 | 中国人民解放军防空兵学院 | 一种全网络流量监测方法 |
CN106411622A (zh) * | 2016-12-16 | 2017-02-15 | 成都西加云杉科技有限公司 | 一种表项处理方法及装置 |
CN107248939A (zh) * | 2017-05-26 | 2017-10-13 | 中国人民解放军理工大学 | 基于hash存储器的网络流高速关联方法 |
WO2017185912A1 (zh) * | 2016-04-26 | 2017-11-02 | 上海斐讯数据通信技术有限公司 | 一种基于哈希节点的终端设备信息统计的方法及装置 |
CN108574587A (zh) * | 2017-03-09 | 2018-09-25 | 华为技术有限公司 | 分布式设备的容量更新方法及装置 |
CN110019250A (zh) * | 2019-03-06 | 2019-07-16 | 清华大学 | 基于哈希函数的网络测量方法和计算机可读存储介质 |
CN111107068A (zh) * | 2019-12-09 | 2020-05-05 | 江苏云涌电子科技股份有限公司 | 一种fpga高效规则匹配方法及终端 |
CN112286966A (zh) * | 2020-09-23 | 2021-01-29 | 清华大学 | 一种数据流处理、恢复方法以及设备和存储介质 |
CN112632079A (zh) * | 2020-12-30 | 2021-04-09 | 联想未来通信科技(重庆)有限公司 | 一种数据流标识的查询方法及装置 |
CN114244752A (zh) * | 2021-12-16 | 2022-03-25 | 锐捷网络股份有限公司 | 流量统计方法、装置和设备 |
CN114710451A (zh) * | 2022-04-08 | 2022-07-05 | 中山大学 | 基于扩展哈希和knn的区块链应用流量识别方法及系统 |
CN114785396A (zh) * | 2022-03-09 | 2022-07-22 | 西安电子科技大学 | 逻辑端口配置、查找映射及流量管理方法、系统及终端 |
CN115580579A (zh) * | 2022-09-28 | 2023-01-06 | 杭州迪普科技股份有限公司 | 报文转发方法、装置、电子设备及存储介质 |
CN116055397A (zh) * | 2023-03-27 | 2023-05-02 | 井芯微电子技术(天津)有限公司 | 队列表项维护方法与装置 |
CN116132319A (zh) * | 2021-11-15 | 2023-05-16 | 华为技术有限公司 | 一种识别流的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741743A (zh) * | 2009-12-11 | 2010-06-16 | 东南大学 | 基于网络地址排序的双向流组流方法 |
CN102316173A (zh) * | 2010-07-05 | 2012-01-11 | 国讯新创软件技术有限公司 | 网络地址聚合方法和装置 |
CN103581044A (zh) * | 2013-11-04 | 2014-02-12 | 汉柏科技有限公司 | 一种流量统计方法和装置 |
-
2016
- 2016-01-20 CN CN201610038717.4A patent/CN105515919A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741743A (zh) * | 2009-12-11 | 2010-06-16 | 东南大学 | 基于网络地址排序的双向流组流方法 |
CN102316173A (zh) * | 2010-07-05 | 2012-01-11 | 国讯新创软件技术有限公司 | 网络地址聚合方法和装置 |
CN103581044A (zh) * | 2013-11-04 | 2014-02-12 | 汉柏科技有限公司 | 一种流量统计方法和装置 |
Non-Patent Citations (1)
Title |
---|
李渊,许鑫: "基于哈希压缩算法的网络流量监控方法研究", 《计算机与网络》 * |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017185912A1 (zh) * | 2016-04-26 | 2017-11-02 | 上海斐讯数据通信技术有限公司 | 一种基于哈希节点的终端设备信息统计的方法及装置 |
CN106357479B (zh) * | 2016-11-15 | 2019-08-23 | 中国人民解放军防空兵学院 | 一种全网络流量监测方法 |
CN106357479A (zh) * | 2016-11-15 | 2017-01-25 | 中国人民解放军防空兵学院 | 一种全网络流量监测方法 |
CN106411622A (zh) * | 2016-12-16 | 2017-02-15 | 成都西加云杉科技有限公司 | 一种表项处理方法及装置 |
CN106411622B (zh) * | 2016-12-16 | 2019-06-07 | 成都西加云杉科技有限公司 | 一种表项处理方法及装置 |
CN108574587A (zh) * | 2017-03-09 | 2018-09-25 | 华为技术有限公司 | 分布式设备的容量更新方法及装置 |
CN108574587B (zh) * | 2017-03-09 | 2020-07-24 | 华为技术有限公司 | 分布式设备的容量更新方法及装置 |
CN107248939B (zh) * | 2017-05-26 | 2020-07-31 | 中国人民解放军理工大学 | 基于hash存储器的网络流高速关联方法 |
CN107248939A (zh) * | 2017-05-26 | 2017-10-13 | 中国人民解放军理工大学 | 基于hash存储器的网络流高速关联方法 |
CN110019250A (zh) * | 2019-03-06 | 2019-07-16 | 清华大学 | 基于哈希函数的网络测量方法和计算机可读存储介质 |
CN111107068B (zh) * | 2019-12-09 | 2021-03-09 | 江苏云涌电子科技股份有限公司 | 一种fpga高效规则匹配方法及终端 |
CN111107068A (zh) * | 2019-12-09 | 2020-05-05 | 江苏云涌电子科技股份有限公司 | 一种fpga高效规则匹配方法及终端 |
CN112286966A (zh) * | 2020-09-23 | 2021-01-29 | 清华大学 | 一种数据流处理、恢复方法以及设备和存储介质 |
CN112632079A (zh) * | 2020-12-30 | 2021-04-09 | 联想未来通信科技(重庆)有限公司 | 一种数据流标识的查询方法及装置 |
CN116132319A (zh) * | 2021-11-15 | 2023-05-16 | 华为技术有限公司 | 一种识别流的方法和装置 |
CN114244752A (zh) * | 2021-12-16 | 2022-03-25 | 锐捷网络股份有限公司 | 流量统计方法、装置和设备 |
CN114785396A (zh) * | 2022-03-09 | 2022-07-22 | 西安电子科技大学 | 逻辑端口配置、查找映射及流量管理方法、系统及终端 |
CN114785396B (zh) * | 2022-03-09 | 2024-04-12 | 西安电子科技大学 | 逻辑端口配置、查找映射及流量管理方法、系统及终端 |
CN114710451A (zh) * | 2022-04-08 | 2022-07-05 | 中山大学 | 基于扩展哈希和knn的区块链应用流量识别方法及系统 |
CN114710451B (zh) * | 2022-04-08 | 2023-06-23 | 中山大学 | 基于扩展哈希和knn的区块链应用流量识别方法及系统 |
CN115580579A (zh) * | 2022-09-28 | 2023-01-06 | 杭州迪普科技股份有限公司 | 报文转发方法、装置、电子设备及存储介质 |
CN116055397A (zh) * | 2023-03-27 | 2023-05-02 | 井芯微电子技术(天津)有限公司 | 队列表项维护方法与装置 |
CN116055397B (zh) * | 2023-03-27 | 2023-08-18 | 井芯微电子技术(天津)有限公司 | 队列表项维护方法与装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105515919A (zh) | 一种基于哈希压缩算法的网络流量监控方法 | |
US11863439B2 (en) | Method, apparatus and storage medium for application identification | |
WO2016106591A1 (zh) | 一种抽取数据报文的方法及装置 | |
US20110149969A1 (en) | Method of Controlling Data Propagation Within a Network | |
WO2016062031A1 (zh) | 一种openflow流表的查表方法和装置、存储介质 | |
US11316804B2 (en) | Forwarding entry update method and apparatus in a memory | |
CN110912826B (zh) | 利用acl扩充ipfix表项的方法及装置 | |
WO2023115978A1 (zh) | 一种报文处理方法、装置及电子设备 | |
CN104579970B (zh) | 一种IPv6报文的策略匹配装置 | |
US20140254611A1 (en) | System and method for reduced forwarding information storage | |
CN103905251A (zh) | 网络拓扑获取方法及装置 | |
US20090282167A1 (en) | Method and apparatus for bridging | |
EP4258597A1 (en) | Packet processing method, device, system, and storage medium | |
WO2021104393A1 (zh) | 多规则流分类的实现方法、设备和存储介质 | |
US20140294008A1 (en) | Network Relay Device | |
US9419909B2 (en) | Determining when to relearn a relationship between a network address and a port | |
CN113645140A (zh) | 报文的统计方法、装置、存储介质及网络设备 | |
CN104702508A (zh) | 表项动态更新方法及系统 | |
US11444877B2 (en) | Packet flow identification with reduced decode operations | |
CN109831378B (zh) | 一种报文超时回应方法及装置 | |
CN114338529B (zh) | 五元组规则匹配方法及装置 | |
CN111010362A (zh) | 一种异常主机的监控方法及装置 | |
US11303566B2 (en) | Method, electronic device, and computer program product for data processing | |
US9967178B1 (en) | Flow record size reduction | |
Zhu et al. | CBFSketch: A scalable sketch framework for high speed network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160420 |
|
RJ01 | Rejection of invention patent application after publication |