CN107248939B - 基于hash存储器的网络流高速关联方法 - Google Patents
基于hash存储器的网络流高速关联方法 Download PDFInfo
- Publication number
- CN107248939B CN107248939B CN201710384744.1A CN201710384744A CN107248939B CN 107248939 B CN107248939 B CN 107248939B CN 201710384744 A CN201710384744 A CN 201710384744A CN 107248939 B CN107248939 B CN 107248939B
- Authority
- CN
- China
- Prior art keywords
- packet
- hash
- address
- network flow
- storage area
- 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
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/255—Maintenance or indexing of mapping tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于hash存储器的网络流高速关联方法,包括以下步骤:以IP分组的特征字段作为HASH散列表的输入,产生的散列比特作为存储区的高位地址;将符合上述特征字段的分组按顺序存储在以高位地址指明的地址范围内,并在存储区域尾部记录分组对应的流信息;当需要网络流关联时,在任一结点确定的分组特征字段,以此特征字段在其他结点作为HASH散列表的输入,确定所在的存储区域,并在此存储区域内搜索定位所要查找的分组。本发明具有多网络结点网络流关联速度快,关联时延有上限保证,关联数据流具有代表性等特点,具有很好的推广应用前景。
Description
技术领域
本发明属于网络通信领域,具体涉及一种基于hash存储器的网络流高速关联方法。
背景技术
高速网络的数据采集分析是分析数据传输性能、诊断网络故障、判定分组传输服务质量的重要手段和方法之一。因为分组在网络中传输,途径多个结点,因此分析网络传输性能的重要方法是对经过多个结点的同一数据流做关联分析,例如观察从A结点何时收到,何时发出,B结点收到没有,如果收到了何时收到的,又是何时发出的,同理C结点是否收到、何时收到等等。通过对同一个流在多个结点的收发日志分析可以了解网络传输时延,分组丢失率及路径分布、路径变化等信息。然而,在网络传输带宽越来越高的今天,每个结点的存储和处理能力大大增强。例如每个结点可以存储1个T的数据,那么如果任取一个分组,需要在另外一个或多个结点中检索到该分组,需要非常长的时间。尤其是在网络结点数众多,数据存储量非常大的时候,不同结点上同一网络流的关联检索基本是“龟速”,远远无法满足用户实时了解观察网络流时延、分组丢失率变化情况的要求。一般像这样的位于不同结点的海量数据处理需要很长时间的离线处理,或者在数据量非常小时方能做到。
另外,在现有数据采集分析时,往往随机抓取一个分组进行关联分析,由于网络中存在明显的大象流(指持续时间非常长,分组数非常多的流量)和老鼠流(指持续时间很短,分组数很少的短流),因此抓取的分组往往是大象流分组,而经常性地忽视短流性能,统计的时延、丢失率结果也缺乏代表性。无法代表网络普遍的性能指标。
发明专利CN104396216A公开了一种识别网络流量特征以关联和管理一个或多个后续流的方法、非临时性计算机可读介质和装置,包括将包括时间戳以及从客户端计算装置接收的HTTP请求中提取的一个或多个属性的监控请求发送至监控服务器以关联与所述HTTP请求相关的一个或多个后续流;在从所述监控服务器接收到对所述监控请求的确认响应后,所述HTTP请求被发送至应用服务器;从所述应用服务器接收对所述HTTP请求的HTTP响应;执行关于所述HTTP响应的操作。但是这个对特定流的管理和关联是用特定监控服务器实现的。
发明内容
本发明的目的在于提供一种基于hash存储器的网络流高速关联方法,解决在高带宽、多结点的网络中,针对同一流在多个结点上进行高速、实时的关联查找问题,以及在评估网络结点之间的传输性能如时延、丢包率等指标时,选择抽样分组的代表性问题。
实现本发明目的的技术方案为:一种基于hash存储器的网络流高速关联方法,包括以下步骤:
1)以IP分组的特征字段作为HASH散列表的输入,产生的散列比特作为存储区的高位地址;
2)将符合上述特征字段的分组按顺序存储在以高位地址指明的地址范围内,并在存储区域尾部记录分组对应的流信息;
3)当需要网络流关联时,在任一结点确定的分组特征字段,以此特征字段在其他结点作为HASH散列表的输入,确定所在的存储区域,并在此存储区域内搜索定位所要查找的分组。
与现有技术相比,本发明的显著优点为:(1)分组关联速度快,尤其在多结点、海量数据关联时,关联时间较传统关联搜索方法指数级减少;(2)本发明的流高速关联方法是在网络结点(路由器)本地实现的,不需要服务器;(3)由于存储区域大小是固定的,所以在一个结点上关联特定分组的搜索时间上限是确定的,便于软硬件实现。
附图说明
图1是***散列信息表与HASH存储器逻辑页面关系示意图。
图2是本发明网络流的关联分析示意图。
具体实施方式
结合图1、图2,本发明的一种基于hash存储器的网络流高速关联方法,包括以下步骤:
1)以IP分组的特征字段作为HASH散列表的输入,产生的散列比特作为存储区的高位地址;
2)符合上述特征字段的分组按顺序存储在以高位地址指明的地址范围内,并在存储区域尾部记录分组对应的流信息;
3)当需要网络流关联时,在任一结点确定的分组特征字段,以此特征字段在其他结点作为HASH散列表的输入,确定所在的存储区域,并在此存储区域内搜索定位所要查找的分组。
进一步的,所述分组对应的流信息包括特征字段、地址指针、下一五元组指针、相应的读写指针、最后写入时间和字节数。
进一步的,IP分组的特征字段包括IP源地址、目的地址、源端口、目的端口、传输层协议这些5元组。
进一步的,IP分组的特征字段包括IP源地址、目的地址、源端口、目的端口、分组类型TOS这些5元组。
进一步的,IP分组的特征字段包括源IP地址、目的IP地址、源端口、目的端口这些4元组。
进一步的,IP分组的特征字段包括源IP地址、目的IP地址、源端口、目的端口、传输层协议、分组类型TOS和接口索引这些7元组。
进一步的,IP分组为IPv6分组,其特征字段包括IP源地址、目的地址、流ID这些3元组。
本发明利用Hash存储器实现对不同网络流的分类存储,并将网络流按照存储数据的大小划分为多个不同的逻辑页,然后在需要时通过查表迅速关联某一特定的分组流。在其他结点上要找到关联的分组,也只需要用Hash表定位到特定的逻辑页面。然后在该页面内就可以搜索到所要关联的分组。由于页面大小是固定的,所以在一个结点上关联特定分组的搜索时间上限是确定的。
当前主流的流区分模式是5元组,即IP分组的源地址、目的地址、源端口、目的端口和传输层协议字段,本发明也适用于其他流区分模式。以ipv4的5元组为例,当一个分组到达路由器时,路由器可以采用硬件或软件获取一个分组的5元组,然后以此5元组作为输入,输入到一个HASH表中。该Hash表输入是5元组,输出可以根据结点存储区大小设置,例如32位。HASH散列表可以选用主流HASH函数,例如murmurhash()函数。
对于每个5元组,murmurhash()函数会产生一个32位的HASH值。约为4G个。如果存储空间有限,可以采用折叠法,缩短其位数。例如从高位折叠至20位。这样就会产生220个HASH值。当然HASH值空间减少,会增加5元组碰撞的概率。对于每个HASH值,根据路由器存储空间大小,开一个存储页面。这样总的HASH存储器是64G字节。另外,***再预留一些存储页面,用于相同HASH值的5元组数据存储。如果存储器更大,则可以设置更大的页面,或者增加HASH值空间。
一个新分组的5元组会产生一个HASH值,此时以该HASH值为作为高位地址,可以定义一个逻辑页面。每个逻辑页面在内存里创建流信息,记录该HASH地址对应的5元组信息及读写指针,以及最后修改日期。如表1所示。
表1
如果有多个5元组同时映射到HASH表,则***申请一个HASH20位地址以外的备用页面,然后以链表的形式在表里添加一条新5元组信息。同时记录该5元组索引存储的分组字节数。每个分组存储区可存储区域为页面大小-32字节,最后32字节用于存放对应流表指针,并采用环形缓冲区,即当逻辑页面写入大于页面字节时,从页面头部覆盖内容。总分组字节数保持最大值不变。读写指针相应修改。所有结点,对于所有新到的流都照此办理。由于HASH存储器主要用于分组后期处理,尤其是网络流处理,所以过量的大象流并不需要全部保存,只需要对其部分流保存可以分析网络性能。
在选择对网络流进行关联时,***从起始结点内存里找已经建立起来的所有流表,对于每一个流,如果多个5元组映射到1个HASH值,则从这个HASH值相同的多个链表中找出写入存储字节数最多的5元组。然后在该5元组对应的页面上选择任何一个或多个分组。然后,在后续一个或多个结点上,各结点分别只需要用5元组做HASH运算,可以很快定位所要查询分组的逻辑页面,然后在该逻辑页面里寻找分组。由于页面大小受限,因此可以很快定位分组。
下面结合具体实施例来详细说明本发明。
实施例
结合图1,一种基于hash存储器的网络流高速关联方法,包括以下步骤:
第一步:设所有网络结点均配置了HASH存储器。设HASH存储器高位地址线20位,低位地址线16位,每个逻辑页面可存储65504字节(32字节用于指向HASH流表及其他用途)。***总存储容量64G字节。另外为了存放相同HASH索引的5元组数据,另外在64G上增加2G(可存储32K个额外页面,如果HASH重复率过高,应该考虑采用更多输出位数的HASH散列表)。HASH存储器地址线总空间66G,总地址长度37位(部分高位地址空间未用)。其中除最高位外,从第二高位往下的20位为HASH索引位,低16位为逻辑页面内部寻址。
第二步:当一个网络结点上来了一个分组后,提取其5元组,将5元组输入HASH散列表,产生20位的索引值。
第三步:根据散列表索引配合低位地址找到索引对应的存储区域,查询存储区域尾部是否有流表指针,如果没有,代表这是新流,则在内存中流表区里创建新流表,将指针写入存储区域尾部;如果有流表,跳转到第五步。
第四步:如果是新流表,则记录相应的五元组,初始化地址指针,下一五元组指针及相应的读写指针,将分组写入存储区域写指针开始的存储区。更新数据写入字节数及写入时间。跳转到第六步。
第五步:老流表检查5元组是否与本5元组匹配。如果匹配则按照写入指针写入数据,更新写入字节数及写入时间,如果不匹配则代表是与老的5元组索引冲突,此时申请一个新的存储区域(从最高比特为1的2G空间里取),创建新流表,初始化相关内容,在新的存储区域写入数据分组。
第六步:等待下个分组到达,根据需要在结点任何其他区域存储备份流表。
结合图2,在对网络各结点进行网络流分组关联分析时,各网络结点按照如下流程工作:
第一步:***确定网络流分组关联的起点结点以及中间经过的结点顺序,设此次关联分析起点为A,终点为C,中间经过B点;
第二步:从A点开始,A结点在其流表区域里检索有数据的流。如果流表里的5元组有下一表项,则逐一检索下一表项,找出字节数最多的5元组。如果5元组没有下一表项,则取当前5元组作为索引,找到对应的逻辑页面,在逻辑页面里随机选择1个或多个分组。记录其Sequence-id号;
第三步:A点把需要关联的分组流信息发给B点、C点,B结点利用A发来的5元组信息进行HASH计算,定位具体的逻辑页面,然后在该逻辑页面里搜索采用当前sequence-id的分组。对于C点,重复第三步,直到找到当前sequence-id分组,或者搜索完整个页面未发现当前sequence-id分组;
第四步:根据A、B、C收到存储分组的时间判定分组传输时延、分组丢失率;
第五步:分析统计的分组流数是否已经满足要求,若不满足则选择下一个分组流,返回第二步。
需要注意的是,页面大小应该合适选择,在分组检索周期T内,不应出现有分组到达某结点,但是该结点该流分组数过多导致分组被覆盖现象。此时应扩大逻辑页面。分组检索周期T根据需要设置,例如可以设置为10分钟内。因此,如果是干线网络结点,存储空间可能需要以T字节计算。
图2示例说明了网络流的关联分析示意图。网络流根据其流经结点,分别对相应分组进行HASH处理,从而在一个逻辑页面内搜索相应分组,确保了搜索时延的上限,上限是整个逻辑页面的检索时间。
Claims (6)
1.一种基于hash存储器的网络流高速关联方法,其特征在于,包括以下步骤:
1)以IP分组的特征字段作为HASH散列表的输入,产生的散列比特作为存储区的高位地址;
2)将符合上述特征字段的分组按顺序存储在以高位地址指明的地址范围内,并在存储区域尾部记录分组对应的流信息;分组对应的流信息包括特征字段、地址指针、下一五元组指针、相应的读写指针、最后写入时间和字节数;
3)当需要网络流关联时,在任一结点确定的分组特征字段,以此特征字段在其他结点作为HASH散列表的输入,确定所在的存储区域,并在此存储区域内搜索定位所要查找的分组。
2.根据权利要求1所述的基于hash存储器的网络流高速关联方法,其特征在于,IP分组的特征字段包括IP源地址、目的地址、源端口、目的端口、传输层协议这些5元组。
3.根据权利要求1所述的基于hash存储器的网络流高速关联方法,其特征在于,IP分组的特征字段包括IP源地址、目的地址、源端口、目的端口、分组类型TOS这些5元组。
4.根据权利要求1所述的基于hash存储器的网络流高速关联方法,其特征在于,IP分组的特征字段包括源IP地址、目的IP地址、源端口、目的端口这些4元组。
5.根据权利要求1所述的基于hash存储器的网络流高速关联方法,其特征在于,IP分组的特征字段包括源IP地址、目的IP地址、源端口、目的端口、传输层协议、分组类型TOS和接口索引这些7元组。
6.根据权利要求1所述的基于hash存储器的网络流高速关联方法,其特征在于,IP分组为IPv6分组,其特征字段包括IP源地址、目的地址、流ID这些3元组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710384744.1A CN107248939B (zh) | 2017-05-26 | 2017-05-26 | 基于hash存储器的网络流高速关联方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710384744.1A CN107248939B (zh) | 2017-05-26 | 2017-05-26 | 基于hash存储器的网络流高速关联方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107248939A CN107248939A (zh) | 2017-10-13 |
CN107248939B true CN107248939B (zh) | 2020-07-31 |
Family
ID=60017120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710384744.1A Active CN107248939B (zh) | 2017-05-26 | 2017-05-26 | 基于hash存储器的网络流高速关联方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107248939B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829814A (zh) * | 2018-06-10 | 2018-11-16 | 张超 | 一种语音交互式机器人的知识学习渐进方法和装置 |
WO2021210056A1 (ja) | 2020-04-14 | 2021-10-21 | 日本電信電話株式会社 | トラフィックモニタリング装置、方法及びプログラム |
CN112511450B (zh) * | 2020-11-02 | 2022-05-31 | 杭州迪普信息技术有限公司 | 一种流量控制设备与方法 |
CN115914102B (zh) * | 2023-02-08 | 2023-05-23 | 阿里巴巴(中国)有限公司 | 数据转发方法、流表处理方法、设备及*** |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567907A (zh) * | 2003-06-14 | 2005-01-19 | 华为技术有限公司 | 一种网络地址资源的利用方法 |
CN101140592A (zh) * | 2007-09-30 | 2008-03-12 | 华为技术有限公司 | 关键字存储、查找方法和设备 |
CN101753445A (zh) * | 2009-12-23 | 2010-06-23 | 重庆邮电大学 | 基于关键字分解Hash算法的快速流分类方法 |
CN103546307A (zh) * | 2012-07-16 | 2014-01-29 | 清华大学 | 网络流存储方法 |
CN103581007A (zh) * | 2013-10-28 | 2014-02-12 | 汉柏科技有限公司 | 一种报文分类及查找方法 |
CN104618361A (zh) * | 2015-01-22 | 2015-05-13 | 中国科学院计算技术研究所 | 一种网络流数据重排序方法 |
CN105227348A (zh) * | 2015-08-25 | 2016-01-06 | 广东睿江科技有限公司 | 一种基于ip五元组的哈希存储方法 |
CN105515919A (zh) * | 2016-01-20 | 2016-04-20 | 中国电子科技集团公司第五十四研究所 | 一种基于哈希压缩算法的网络流量监控方法 |
CN106027427A (zh) * | 2016-05-27 | 2016-10-12 | 深圳市风云实业有限公司 | 基于fpga实现的hash平均分流方法及装置 |
CN106789733A (zh) * | 2016-12-01 | 2017-05-31 | 北京锐安科技有限公司 | 一种提高大规模网络流表查找效率的装置及方法 |
-
2017
- 2017-05-26 CN CN201710384744.1A patent/CN107248939B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567907A (zh) * | 2003-06-14 | 2005-01-19 | 华为技术有限公司 | 一种网络地址资源的利用方法 |
CN101140592A (zh) * | 2007-09-30 | 2008-03-12 | 华为技术有限公司 | 关键字存储、查找方法和设备 |
CN101753445A (zh) * | 2009-12-23 | 2010-06-23 | 重庆邮电大学 | 基于关键字分解Hash算法的快速流分类方法 |
CN103546307A (zh) * | 2012-07-16 | 2014-01-29 | 清华大学 | 网络流存储方法 |
CN103581007A (zh) * | 2013-10-28 | 2014-02-12 | 汉柏科技有限公司 | 一种报文分类及查找方法 |
CN104618361A (zh) * | 2015-01-22 | 2015-05-13 | 中国科学院计算技术研究所 | 一种网络流数据重排序方法 |
CN105227348A (zh) * | 2015-08-25 | 2016-01-06 | 广东睿江科技有限公司 | 一种基于ip五元组的哈希存储方法 |
CN105515919A (zh) * | 2016-01-20 | 2016-04-20 | 中国电子科技集团公司第五十四研究所 | 一种基于哈希压缩算法的网络流量监控方法 |
CN106027427A (zh) * | 2016-05-27 | 2016-10-12 | 深圳市风云实业有限公司 | 基于fpga实现的hash平均分流方法及装置 |
CN106789733A (zh) * | 2016-12-01 | 2017-05-31 | 北京锐安科技有限公司 | 一种提高大规模网络流表查找效率的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107248939A (zh) | 2017-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107248939B (zh) | 基于hash存储器的网络流高速关联方法 | |
CN109921996B (zh) | 一种高性能的OpenFlow虚拟流表查找方法 | |
CN110808910B (zh) | 一种支持QoS的OpenFlow流表节能存储架构及其方法 | |
US7787442B2 (en) | Communication statistic information collection apparatus | |
US7706302B2 (en) | Optimization of routing forwarding database in a network processor | |
US7281085B1 (en) | Method and device for virtualization of multiple data sets on same associative memory | |
CN107528783B (zh) | 利用对前缀长度进行两个搜索阶段的ip路由缓存 | |
CN103428093A (zh) | 一种基于名字路由前缀存储、匹配及更新方法与装置 | |
CN110912826B (zh) | 利用acl扩充ipfix表项的方法及装置 | |
CN106713144B (zh) | 一种报文出口信息的读写方法及转发引擎 | |
CN105591914B (zh) | 一种openflow流表的查表方法和装置 | |
CN111984835B (zh) | 一种IPv4掩码五元组规则存储压缩方法及装置 | |
CN111988231B (zh) | 一种掩码五元组规则匹配的方法及装置 | |
CN111597142A (zh) | 一种基于fpga的网络安全加速卡及加速方法 | |
CN111240599B (zh) | 数据流存储方法及装置 | |
CN109150962B (zh) | 一种通过关键字快速识别http请求头的方法 | |
US6687715B2 (en) | Parallel lookups that keep order | |
CN111200542B (zh) | 一种基于确定性替换策略的网络流量管理方法及*** | |
CN110851672A (zh) | 一种基于tcam实现多命中的方法 | |
Xie et al. | Index–Trie: Efficient archival and retrieval of network traffic | |
CN115834478A (zh) | 一种利用tcam实现pbr高速转发的方法 | |
CN114710444A (zh) | 基于塔型摘要和可驱逐流表的数据中心流量统计方法和*** | |
KR101467942B1 (ko) | 고속 어플리케이션 인지 시스템 및 처리 방법 | |
JPWO2004054186A1 (ja) | データ中継装置、連想メモリデバイス、および連想メモリデバイス利用情報検索方法 | |
CN111222018A (zh) | 一种基于tcam实现浮动字符串高速匹配方法 |
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 |