一种针对IPv6地址的数据快速处理方法

文档序号:9202758阅读:712来源:国知局
一种针对IPv6地址的数据快速处理方法
【技术领域】
[0001]本发明涉及电通信技术领域,涉及一种对IP地址进行处理的方法,具体涉及一种针对IPv6地址的数据快速处理方法。
【背景技术】
[0002]近年来,网络数据越来越呈现出3个V的特征,即数据容量(volume),增长速度(velocity)和种类(variety)。这些特征都在说明,网络流量在不断高速增大,而这又会给网络传输、网络处理带来极大的挑战。比如数据量太大时,会给本已不堪重荷的网络造成拥堵。当某链路过载或失效的时候,负载均衡是保持网络畅通的有效手段;更一般的情况下,负载均衡是防止网络拥塞的重要手段之一。而随着网络带宽的加速升级,数据量太大时,单机处理器即便处理能力再强,也会有处理不过来的时候。因此,负载均衡在网络中便有了非常重要的意义。另外,在流还原等相关工作中,对于动辄几千万的连接数,如果不能做到有效的负载均衡,数据处理的效率将会成倍的降低,甚至根本无法完成。
[0003]然而,负载均衡和流还原等的效果都十分依赖于所选择的哈希(hash)函数。再有,在加密、查找、聚簇、缓存等相关的领域,哈希也有着广泛而重要的应用。
[0004]哈希算法是一种能够将任意长度的二进制值映射为固定长度的较小二进制值的方法。哈希算法可以表示为:Hash值=H(Key),其中Key为原始值,H为Hash函数,Hash值为将Key按照Hash函数H映射而成的较小值。
[0005]目前有较多的方法可以针对IP数据包计算hash值,例如直接哈希、CRC哈希、XOR折叠、IPSX等。计算hash—般都需要用到其四元组(源IP地址,源端口号,目的IP地址,目的端口号)/五元组(源IP地址,源端口号,目的IP地址,目的端口号,协议号)。由于目前这些都是针对IPv4,所以还可以较好的完成哈希值计算的任务。然而由于IPv4地址的耗尽,以及国家对IPv6的大力推进,逐步升级到IPv6是大势所趋。而IPv6地址长度是128位,增加到IPv4地址的4倍,因而如果还使用原有技术,处理时间将大大加长,势必会成为网络传输的一个瓶颈,不能满足高速网络的要求。
[0006]IPv6地址是按地域进行分配的,因而对于单个地域来说,IP地址的前半部分相同,后面会根据需求进行分配。如果只使用IPv6地址的第97位-128位进行哈希,处理速度将大大提升。对于IPv6,通过对3100万条去重的数据包的整理,并将其IP地址按照地域进行分类和统计分析,发现二进制下“O”可以占到整个地址长度的65.57%。因此,虽然对于大部分地域来说,第97位-128位的熵值几乎都可以达到0.9以上,此方法都可以产生较好的效果,但是对于一部分地域来说,IPv6地址的第97位-112位熵值非常低,几乎为0,继续使用这种哈希方法将会造成严重的哈希冲突,进而极大的影响了网络处理设备的性能。

【发明内容】

[0007]基于此,为了应对IPv6将要取代IPv4的大潮,本发明提供一种针对IPv6地址的数据快速处理方法,更加有效的基于哈希计算处理IPv6地址,在大大缩短哈希值的计算时间同时,也不会产生严重的冲突,进而大大缩短网络传输及数据处理中负载均衡、流还原等的时间,使网络通信及数据处理能够更加快速有效的进行。
[0008]本发明主要内容为:在对网络数据包的四元组/五元组进行哈希计算前,先修正IP地址的第97位-112位,再使用IP地址的第97位-128位进行哈希值计算。
[0009]一种针对IPv6地址的数据快速处理方法,主要步骤包括:
[0010](I)通过对输入的IPv6地址进行离线学习,从128位地址中选取连续的32位作为哈希输入的地址位,以及随机性最高的连续16位作为需要修正时的修正位(地址位和修正位彼此之间无重叠)。
[0011](2)对于步骤(I)选取出的二进制的地址位,每8位一组计算各组的比特随机性;
[0012](3)利用修正位对比特随机性未达到设定阈值的地址位进行修正,使其随机性达到设定阈值;
[0013](4)将达到设定阈值的IP地址位作为哈希算法的输入,完成针对IPv6地址的数据快速处理。
[0014]优选地,步骤(I)中从128位地址中选取随机性最高的连续的32位作为哈希输入的地址位。
[0015]进一步地,所述随机性基于摘值进行计算。
[0016]进一步地,步骤(3)中基于异或运算,与或非运算对比特随机性未达到设定阈值的地址位进行修正。
[0017]进一步地,步骤(4)达到设定阈值的IP地址包括经步骤(3)修正后随机性达到设定阈值的地址位以及所选取的地址位中剩余的地址位(即本身随机性达到设定阈值不需要进行修正的地址位)。
[0018]一般地,步骤(I)从128位地址中选取最后32位(即第97位-128位)作为哈希输入的地址位,并根据57-72位对第97-112位进行必要的修正。
[0019]进一步地,步骤⑵中使指针spl指向IP地址的97位-104位,sp2指向IP地址的第105位-112位,指针pi指向第57-64位,p2指向IP地址的第65-72位,每8位一组,计算spl、sp2组的比特随机性。
[0020]进一步地,步骤(3)包括:plxor spl — spl, p2 xor sp2 — sp2o
[0021]进一步地,上述方法还包括:pl和p2分别向前移动2字节,当pi到达IP开头时停止,否则回到步骤(2)重新计算。
[0022]进一步地,步骤(4)中达到设定阈值的IP地址包括spl及其后的IP地址。
[0023]其中(I)只需要在所有步骤前预处理计算一次。对于大部分场景的IPv6来说,算法会直接在(2)结束;对于部分地址分配比较特殊的地域,算法会在执行(2)、(3) 一遍后结束;只对于极个别情况,算法需要循环2遍。算法结束之后,使用spl及其后的IP地址作为哈希算法的输入,所需要进行哈希处理的IP地址将缩短到原来的25%,哈希计算时间将大大缩短,而此部分的IP地址的位熵也大大提高,因而不会出现大量冲突的现象。
[0024]积极效果
[0025]本发明提供的方法通过修正部分IP地址位以获得较高的熵值,降低哈希冲突率,可以快速计算hash值的同时,也不会因为部分地区IP
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1