网络地址聚合方法和装置的制作方法

文档序号:7753320阅读:313来源:国知局
专利名称:网络地址聚合方法和装置的制作方法
技术领域
本发明涉及一种聚合技术,尤其涉及基于网络地址的聚合技术。
背景技术
现有技术中存在一些IP网络流量采集数据做统计分析的方法,假设针对源IP 地址作统计分析,则将具有相同IP的流数量、包数量和字节数量各自累加起来,这个过程称为聚合(Aggregation),而IP地址则称为聚合项目(Aggregation Item)。其他的聚合项目还有 UDP/TCP 目的端口(UDP/TCP destination port)、UDP/TCP 源端口(UDP/TCP source port)、UDP/TCP 端口、输入接口、输出接口、输入 / 输出接口、Destination AS、 Source/Destination AS、IP ToS、IP 协议、源地址前缀(Source prefix)、目的地址前缀 (Destination prefix)、源 / 目的地址前缀(Source/Destination prefix)等。由于网络流量的数据非常庞大,而且做聚合处理的时候除了对当前处理结果在内存中缓存外,还要不断对结果数据进行计算和更新,所以数据访问速度的快慢对性能影响也比较大。通常的内存存储和访问技术有链表、顺序表和散列等,一般来说,散列技术的存储和访问速度明显要快于其他的方法,但关键还在于散列关键字的算法。从实用角度出发,对于散列关键字算法的要求是(1)算法尽可能简单,避免实现算法本身的时间开销;(2)得出的关键字尽可能唯一。由于UDP/TCP目的端口、UDP/TCP源端口、UDP/TCP端口、输入接口、输出接口、输入 / 输出接口、Destination AS、Source/Destination AS、IP !"oS、IP 协议等一些聚合项目本身的字节宽度小于16位,可以直接拿来作为哈希键。对于字节宽度为32字节的IP地址进行聚合时的哈希键算法来说,如果直接将IP地址作为散列存储的关键字(哈希键),则需要 232个数据单元大小存储空间,而一个数据单元的大小是8个字节,所以直接拿IP地址的值作为哈希键来进行存储的话,需要的内存大小是232X8 = 32G,这在当前的硬件条件下显然是不现实的。如何简单有效的实现IP地址进行聚合时的哈希键算法,是当前存在的一个难题。

发明内容
本发明的目的在于解决了上述问题,提供了一种网络地址聚合方法,提高了基于 IP地址聚合的网络流量统计处理的性能。本发明的另一目的在于提供了一种网络地址聚合装置。本发明的技术方案为本发明揭示了一种网络地址聚合方法,包括(1)初始化哈希表,在存储器中分配一个连续数组;(2)接收网络流量数据包并解析出需要聚合数据的网络地址;(3)将该些网络地址的字节之间做逻辑运算,得出哈希键;(4)将步骤(3)中得到的哈希键作为该连续数组的下标,并以此来访问网络地址上的数据。
3
根据本发明的网络地址聚合方法的一实施例,该网络地址是IP地址,步骤(3)中的逻辑运算是将IP地址的前半部分的字节和后半部分的字节做异或运算以得到哈希键。根据本发明的网络地址聚合方法的一实施例,该IP地址是32字节,步骤C3)中的逻辑运算是将IP地址的高16字节和低16字节做异或运算以得到哈希键。本发明还揭示了一种网络地址聚合装置,包括哈希表初始化模块,初始化哈希表,在存储器中分配一个连续数组;网络地址解析模块,接收网络流量数据包并解析出需要聚合数据的网络地址;哈希键获得模块,对解析出的网络地址的字节之间做逻辑运算,得出哈希键;数据访问模块,将得出的哈希键作为该连续数组的下标,并以此来访问网络地址上的数据。根据本发明的网络地址聚合装置的一实施例,该网络地址是IP地址,该哈希键获得模块中的逻辑运算是将IP地址的前半部分的字节和后半部分的字节做异或运算以得到哈希键。根据本发明的网络地址聚合装置的一实施例,该IP地址是32字节,该哈希键获得模块中的逻辑运算是将IP地址的高16字节和低16字节做异或运算以得到哈希键。本发明对比现有技术有如下的有益效果本发明通过将IP地址的高16字节和低 16字节做异或运算并将运算结果作为哈希键,对比现有技术,可提高基于IP地址聚合的网络流量统计处理的性能。


图1是本发明的网络地址聚合方法的实施例的流程图。图2是本发明的网络地址聚合装置的实施例的原理图。
具体实施例方式下面结合附图和实施例对本发明作进一步的描述。网络地址聚合方法的实施例图1示出了本发明的网络地址聚合方法的实施例的流程。请参见图1,本实施例的网络地址聚合方法的详细步骤如下。步骤SlO 初始化哈希表,在存储器中分配一个连续数组。数组的大小可以是2"5个数据单元,具体数据单元的大小和本发明无关。步骤S12 接收网络流量数据包并解析出需要聚合数据的网络地址。在本实施例中,网络地址是32字节的IP地址。步骤S14 将这些网络地址的字节之间做逻辑运算,得出哈希键。在本实施例中,将32字节的IP地址的高16位字节和低16位字节做异或运算,得出哈希键。如果是多个IP地址,则逐一进行计算。步骤S16 将得到的哈希键作为连续数组的下标,并以此来直接访问网络地址上的数据。当然,也可以对网络地址上的数据做累加、更新等相应操作。网络地址聚合装置的实施例
图2示出了本发明的网络地址聚合装置的实施例的原理。请参见图2,本实施例的网络地址聚合装置1包括哈希表初始化模块10、网络地址解析模块12、哈希键获得模块 14和数据访问模块16。这些模块之间是依序连接的。在哈希表初始化模块10中,初始化哈希表,在存储器(例如内存)中分配一个连续数组,数组的大小可以是216个数据单元,具体数据单元的大小和本发明无关。在网络地址解析模块12中,接收网络流量数据包并解析出需要聚合数据的网络地址。在本实施例中,网络地址是32字节的IP地址。在哈希键获得模块14中,对解析出的网络地址的字节之间做逻辑运算,得出哈希键。在本实施例中,将32字节的IP地址的高16位字节和低16位字节做异或运算,得出哈希键。如果是多个IP地址,则逐一进行计算。在数据访问模块16中,将得出的哈希键作为连续数组的下标,并以此来访问网络地址上的数据。当然,也可以对网络地址上的数据做累加、更新等相应操作。本发明的技术效果在于在存储访问方面,哈希算法的优势就是快速,所以一个哈希键算法自身如果时间开销较大就会失去意义。本发明的方法仅仅是把IP地址的高16字节和低16字节作异或运算,一个时钟周期就能完成,所以时间开销可以忽略不计。上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。
权利要求
1.一种网络地址聚合方法,包括(1)初始化哈希表,在存储器中分配一个连续数组;(2)接收网络流量数据包并解析出需要聚合数据的网络地址;(3)将该些网络地址的字节之间做逻辑运算,得出哈希键;(4)将步骤(3)中得到的哈希键作为该连续数组的下标,并以此来访问网络地址上的数据。
2.根据权利要求1所述的网络地址聚合方法,其特征在于,该网络地址是IP地址,步骤(3)中的逻辑运算是将IP地址的前半部分的字节和后半部分的字节做异或运算以得到哈希键。
3.根据权利要求2所述的网络地址聚合方法,其特征在于,该IP地址是32字节,步骤 (3)中的逻辑运算是将IP地址的高16字节和低16字节做异或运算以得到哈希键。
4.一种网络地址聚合装置,包括哈希表初始化模块,初始化哈希表,在存储器中分配一个连续数组;网络地址解析模块,接收网络流量数据包并解析出需要聚合数据的网络地址;哈希键获得模块,对解析出的网络地址的字节之间做逻辑运算,得出哈希键;数据访问模块,将得出的哈希键作为该连续数组的下标,并以此来访问网络地址上的数据。
5.根据权利要求4所述的网络地址聚合装置,其特征在于,该网络地址是IP地址,该哈希键获得模块中的逻辑运算是将IP地址的前半部分的字节和后半部分的字节做异或运算以得到哈希键。
6.根据权利要求5所述的网络地址聚合装置,其特征在于,该IP地址是32字节,该哈希键获得模块中的逻辑运算是将IP地址的高16字节和低16字节做异或运算以得到哈希键。
全文摘要
本发明公开了网络地址聚合方法和装置,提高了基于IP地址聚合的网络流量统计处理的性能。其技术方案为方法包括(1)初始化哈希表,在存储器中分配一个连续数组;(2)接收网络流量数据包并解析出需要聚合数据的网络地址;(3)将该些网络地址的字节之间做逻辑运算,得出哈希键;(4)将步骤(3)中得到的哈希键作为该连续数组的下标,并以此来访问网络地址上的数据。
文档编号H04L29/12GK102316173SQ201010219038
公开日2012年1月11日 申请日期2010年7月5日 优先权日2010年7月5日
发明者郑文蕴 申请人:国讯新创软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1