基于哈希比特串复用的高速网络流量网络地址测量方法

文档序号:7788001阅读:500来源:国知局
专利名称:基于哈希比特串复用的高速网络流量网络地址测量方法
技术领域
本发明涉及网络流量测量技术,特别是有利于基于哈希比特串复用的高速网络流量网络IP地址状态测量方法,测量方法充分利用哈希比特串各个比特随机特性,进行哈希比特串复用的特性以提高需要使用多个哈希函数的网络IP地址检测技术。
背景技术
哈希函数又称散列,就是把任意长度的输入,通过相应的散列算法,变成固定长度的输出,该输出就是散列值。哈希是一种多对一的变换,通过哈希函数可以将不同空间的值建立起相应的映射关系,具体映射过程可以表示为,其中U为输入空间,u为散列值空间, 应该注意到,哈希函数的映射是一种单向的不可逆映射,是一种压缩映射,也就是,散列值的空间u通常远小于输入的空间U,不同的输入可能会散列成相同的输出,反过来却不可能通过散列值来唯一确定输入值。从安全性及运算效率的角度来说,一个好的哈希算法还需要具备较快的运算速度、单向性、抗弱碰撞性和抗强碰撞性等特性。
常用的哈希函数有IPSX、CRC和MD5等,IPSX哈希函数适用于IPv4的报文组流和抽样网络中,例如在流抽样过程中,将IP报文头部信息以及TCP/UDP的报文头信息作为 IPSX哈希函数的输入,可以得到该报文的流标识所对应的哈希地址(桶号),提高查询的速度,减少系统的资源消耗。CRC校验码算法的基本思想就是利用线性编码理论,在待发送的具有m位的数据流之后添加n个0,此时数据流的长度增加为M+n位,然后除以事先确定的最高次数为n的多项式所对应的n+1位二进制序列P (CRC除法器),得到的余数r即为CRC 校验码。MD5是一种单向散列算法,它被广泛应用到信息加解密和数字签名技术之中,它可以实现输入任意长度的明文,生成128位的指纹或信息摘要。
哈希函数是一种高效的数据存储和数据查询的方法,在数据库、密码学等领域都有着广泛的应用。随着高速网络的发展,哈希函数在报文抽样、报文IP识别等方面也得到了广泛的应用和发展。为了记录IP地址信息,当每个报文到达时,对报文头的IP地址属性进行提取,需要使用一种高效的哈希函数,实现数据的快速匹配和查找。哈希函数用于IP 地址存储的主要问题是哈希冲突,哈希冲突指的是对于不同的关键字通过哈希映射可能得到同一散列地址的现象,即有,而,此时便产生了冲突。处理哈希冲突的方法有很多,如开放寻址法,再散列法,链地址法和建立一个公共溢出区等。为了减少哈希冲突的概率,可以对于同一个IP地址采用多次哈希函数生成多个相互独立的哈希比特串映射到不同的位置。
传统的哈希函数应用于网络IP地址存储的主要问题是为了减少哈希冲突等原因,同一个IP需要多次使用哈希函数生成多个独立的哈希比特串,哈希函数是网络IP地址测量过程中最为消耗测量资源的运算之一,每次使用哈希函数需要较高的系统资源,而没有充分使用全部的哈希比特串,这样使得该算法限制应用在高速网络流量测量中。本发明将完全使用全部的哈希比特串,减少哈希函数的使用次数,以提高算法在高速网络测量中的应用。发明内容
本发明实施的目的提供一种网络流量IP地址测量方法,能够实时地对高速主干网络流量中的网络流量IP地址进行测量。
本发明的技术方案是提供了一种基于哈希比特串复用的高速网络流量网络地址测量方法,其特征在于
步骤一设置用于存储网络IP地址的比特矩阵B,比特矩阵B行设置为2m,其中m 为2的上标,列设置为n,m和n均为大于等于I的正整数,将比特矩阵B中所有的元素的值设置为0,进入步骤二;
步骤二 设置用于计算网络IP地址哈希比特串的哈希函数H,哈希函数H的输入为一个初始的比特串和网络IP地址,哈希函数H的输出为一个长度为k比特的哈希比特串,进入步骤三;
步骤三计算哈希函数所使用不同初始比特串的数量a,设置a个不同的初始比特串Ai,其中i取值为I彡i彡a,i为正整数,进入步骤四;
步骤四测量开始后,对于每个所到达的网络IP地址计算其哈希比特串,将网络 IP地址的存在记录在比特矩阵中,进入步骤五;
步骤五如果测量没有结束,回到步骤四,否则将相应的比特矩阵和初始比特串输出。
与现有技术相比,本发明具有如下优点及有效效果
I、本发明的功能实现快速高效的基于哈希值复用的网络流量IP地址测量方法, 能够在高速大规模网络环境中使用有限的存储资源记录通过测量器的网络IP地址;
2、传统基于多个哈希算法的网络流量IP地址方法需要使用多个哈希函数,每次在查询比特向量中的每个比特位置上的值都独立使用哈希函数,由于哈希函数的哈希值比特串远多于比特向量中所需要的比特串,因此每个哈希函数中的哈希值比特串只有部分比特串被用于进行比特向量查询,而由于哈希函数生成的哈希比特串中的每个比特是独立不相关的,本发明可以充分使用每个比特,这样可以减少哈希函数的使用,而哈希函数是算法中最消耗资源的函数,如果一个哈希函数生成的哈希值比特串是32个比特,而比特向量大小为1024,则需要的比特串是10个比特,因此一个32个哈希比特串可以用3次,这样对于需要3个哈希函数的算法中,传统方法需要计算3次哈希函数,本发明只需要计算一次哈希函数,因此本发明在可以在哈希函数运算上提高了 3倍的运行效率。


图I :基于哈希值复用的网络流量IP地址检测方法的流程示意图。
图2 :基于哈希值复用的网络流量IP地址检测方法过程示意图。
图3 :比特矩阵大小设置为3行8列的初始值示例图,在具体实例中,测量开始前设置比特向量所有的初始值为O。
图4 :比特矩阵大小设置为3行8列的测量结束后比特矩阵各比特值示例图,在具体实例中,测量结束后部分比特值被设置为I。
具体实施方式
下面将结合本发明实施实例中的附图,对本发明实施例中的技术方案进行清楚、 完整地描述,当然所描述的实施实例仅仅是本发明一部分实施实例,而不是全部的实施实例。
实施实例I
本发明实施例提供了一种基于哈希值复用的网络流量IP地址检测方法,如图I所示,该方法包括如下步骤
步骤一设置用于存储网络IP地址的比特矩阵B,比特矩阵B行设置为2m,其中m 为2的上标,列设置为n,m和n均为大于等于I的正整数,将比特矩阵B中所有的元素的值设置为0,进入步骤二;
步骤二 设置用于计算网络IP地址哈希比特串的哈希函数H,哈希函数H的输入为一个初始的比特串和网络IP地址,哈希函数H的输出为一个长度为k比特的哈希比特串,进入步骤三;
步骤三计算哈希函数所使用不同初始比特串的数量a,设置a个不同的初始比特串Ai,其中i取值为I彡i彡a,i为正整数,计算不同初始比特串数量a的方法为/7 X THTl X TH~Y~ - a < 一「+ 1,其中a为一个正整数,n和2m分别为比特矩阵B的列大小和行大小,k 为哈希函数H输出哈希值的比特串大小,进入步骤四;
步骤四测量开始后,对于每个所到达的网络IP地址计算其哈希比特串,将网络 IP地址的存在记录在比特矩阵中,网络IP地址计算其哈希比特串的方法为分别采用每个初始比特串Ai和网络IP地址作为哈希函数H的输入,一共生成a个不同的哈希比特串Si,其中i取值为I彡i彡a,网络IP地址的存在记录在比特矩阵中的步骤为⑴将a个不同的哈希比特串Sp…、S。…、Sa按照先后顺序连接成长度为aXk个比特的比特串L ;⑵从比特串L中分别取出第I至第m个比特串L1,第m+1至第2m个比特串L2,…,第(n-1) Xm+1 至第(n-1) Xm个比特串Ln ; (3)计算每个比特串Lj所对应的整数Gj,其中I彡j彡n,每个比特串Lj所对应的整数Gj的方法为比特串Lj的长度为m,比特串Lj中第一个比特到第m 个比特所对应的每个比特值为Ljf Lja,…、Lj, M,每个比特的取值为0或1,则整数Gj = Lj,QX 2°+!^ X 21+"*+Lj, M XZnrl⑷将比特矩阵B中第I行中第Gjl列的比特值设置为1, 第2行中第G2+l列的比特值设置为1,…,第n行中第Gn+1列的比特值设置为I ;;进入步骤五;
步骤五如果测量没有结束,回到步骤四,否则将相应的比特矩阵和初始比特串输出,即将测量结束后的比特矩阵H和a个不同的初始比特串VA2、…、Aa输出。
实施实例I
本发明实施例提供了一种基于哈希值复用的网络流量IP地址检测方法,该方法包括如下步骤
步骤一⑴设置用于存储网络IP地址的比特矩阵B,比特矩阵B行设置为23 = 8,n = 3其中m = 3为2的上标,列设置为3,将比特矩阵B中所有的元素的值设置为0,进入步骤二⑵;
步骤二 设置用于计算网络IP地址哈希比特串的哈希函数H,哈希函数H的输入为一个初始的比特串和网络IP地址,哈希函数H的输出为一个长度为k = 32比特的哈希比特串,进入步骤三(3);
步骤三(3):计算哈希函数所使用不同初始比特串的数量a,计算不同初始比特串Yl y ffjyt y ffj] X ]^ y ^数量a的方法为< a <—— + 1,; < I < ; +1其中a = 1,设置a个不同的初始 kka H比特串 A1 = 0010 1100 1111 0000 1111 1010 0000 1111,进入步骤四(4);
步骤四⑷测量开始后,对于所到达的网络IP地址IP1计算其哈希比特串,将网络IP地址IP1的存在记录在比特矩阵中,网络IP地址计算其哈希比特串的方法为采用初始比特串A1和网络IP地址IP1作为哈希函数H的输入,生成一个的哈希比特串S1 = H(A1, IP1)网络IP地址IP1的存在记录在比特矩阵中的步骤为(I)将哈希比特串S1作为32个比特的比特串L = S1 ;⑵从比特串L中分别取出第I至第3个比特串L1 = 001,第4至第 6个比特串L2 = 101,第7至第9个比特串L3 = 010 ; (3)计算比特串U、L2、L3所对应的整数Gp G2, G3,每个比特串Lj所对应的整数Gj的方法为比特串Lj的长度为m,比特串Lj中第一个比特到第m个比特所对应的每个比特值为Lm、Lja,…、Lj, M,每个比特的取值为0 或 1,则整数 Gj = Ljj0X 20+Lj,i X 21+- +Ljjm-! X 2^, G1 = U G2 = 5、G3 = 2,⑷将比特矩阵 B中第I行中第h+1 = 1+1 = 2列的比特值设置为1,第2行中第G2+l = 5+1 = 6列的比特值设置为1,第3行中第G3+l = 2+1 = 3列的比特值设置为I ;进入步骤五(5);
步骤五(5):测量没有结束,回到步骤四(6);
步骤四(6):对于所到达的网络IP地址IP2计算其哈希比特串,将网络IP地址IP2 的存在记录在比特矩阵中,网络IP地址计算其哈希比特串的方法为采用初始比特串A1和网络IP地址IP2作为哈希函数H的输入,生成一个的哈希比特串S2 = H (A1, IP2)网络IP地址IP2的存在记录在比特矩阵中的步骤为⑴将哈希比特串S2作为32个比特的比特串L =S2 ;⑵从比特串L中分别取出第I至第3个比特串L1 = 100,第4至第6个比特串L2 = 111,第7至第9个比特串L3 = 000 ; (3)计算比特串U、L2、L3所对应的整数G1'G2、G3,每个比特串Lj所对应的整数Gj的方法为比特串Lj的长度为m,比特串Lj中第一个比特到第m 个比特所对应的每个比特值为Lj,、…、Lj,M,每个比特的取值为0或1,则整数Gj = Lj, 0X20+LJMX21+-+LJ,m-1X2m_1,G1 = 4, G2 = 7, G3 = 0,⑷将比特矩阵 B 中第 I 行中第 Gfl = 4+1 = 5列的比特值设置为1,第2行中第G2+l = 7+1 = 8列的比特值设置为1,第3行中第G3+l = 0+1 = 1列的比特值设置为I ;进入步骤五(7);
步骤五(7):测量没有结束,回到步骤四⑶;
步骤四(8):对于所到达的网络IP地址IP3计算其哈希比特串,将网络IP地址IP3 的存在记录在比特矩阵中,网络IP地址计算其哈希比特串的方法为采用初始比特串A1和网络IP地址IP3作为哈希函数H的输入,生成一个的哈希比特串S3 = H(AijIP3)网络IP地址IP3的存在记录在比特矩阵中的步骤为⑴将哈希比特串S3作为32个比特的比特串L =S3 ;⑵从比特串L中分别取出第I至第3个比特串L1 = 110,第4至第6个比特串L2 = 110,第7至第9个比特串L3 = 010 ; (3)计算比特串11山、1^所对应的整数61、62、63,每个比特串Lj所对应的整数Gj的方法为比特串Lj的长度为m,比特串Lj中第一个比特到第m 个比特所对应的每个比特值为Lj,、…、Lj,M,每个比特的取值为0或1,则整数Gj = Lj, 0X20+LJMX21+-+LJ,m-1X2m_1,G1 = 6, G2 = 6, G3 = 2,⑷将比特矩阵 B 中第 I 行中第 Gfl = 6+1 = 7列的比特值设置为1,第2行中第G2+l =6+1 = 7列的比特值设置为1,第3行中第G3+l = 2+1 = 3列的比特值设置为I ;进入步骤五(9);
步骤五(9):测量结束,将相应的比特矩阵和初始比特串输出,即将测量结束后的比特矩阵H和初始比特串A1输出,
比特矩阵H为
权利要求
1.一种基于哈希比特串复用的高速网络流量网络地址测量方法,其特征在于步骤一设置用于存储网络IP地址的比特矩阵B,比特矩阵B的行数设置为2m,其中m为2的上标,2-为2的m次幂,列数设置为n,m和n均为大于或等于I的正整数,将比特矩阵B中所有的元素的初始值设置为0,比特矩阵B中的每列对应一个大小为2m的比特向量, 进入步骤二;步骤二 设置用于计算网络IP地址哈希比特串的哈希函数H,哈希函数H的输入为一个初始的比特串和网络IP地址,哈希函数H的输出为一个长度为k比特的哈希比特串,进入步骤三;步骤三计算哈希函数所使用不同初始比特串的数量a,设置a个不同的初始比特串 Ai,其中i取值为I彡i彡a,i为正整数,进入步骤四;步骤四测量开始后,对于每个所到达的网络IP地址进行哈希比特串计算,并将网络 IP地址的存在记录在比特矩阵中,进入步骤五;步骤五如果测量没有结束,回到步骤四,否则将相应的比特矩阵和初始比特串输出。
2.根据权利要求I所述的基于哈希比特串复用的高速网络流量网络地址测量方法,其/7 X THTl X Jll特征在于,所述的步骤三中计算不同初始比特串数量a的方法为一其中a为一个正整数。
3.根据权利要求I所述的基于哈希比特串复用的高速网络流量网络地址测量方法,其特征在于,所述的步骤四中网络IP地址的哈希比特串的计算方法为分别采用每个初始比特串Ai和网络IP地址作为哈希函数H的输入,一共生成a个不同的哈希比特串Si,其中i 取值为I≤i≤a。
4.根据权利要求I所述的基于哈希比特串复用的高速网络流量网络地址测量方法,其特征在于,所述的步骤四中将网络IP地址的存在记录在比特矩阵中的步骤为(1)将a个不同的哈希比特串S:、…、Sp…、Sa顺序连接成长度为aXk个比特的比特串L ;(2)从比特串L中分别取出第I至第m个比特的比特串L1,第m+1至第2m个比特的比特串L2,…,第(n-1) Xm+1至第(n-1) Xm个比特的比特串Ln;(3)计算每个比特串Lj所对应的整数G」,其中I彡j彡n,(4)将比特矩阵B中第I列中第GJl行的比特值设置为1,第2列中第G2+l行的比特值设置为1,…,第n列中第Gn+1行的比特值设置为I。
5.根据权利要求I或4所述的基于哈希比特串复用的高速网络流量网络地址测量方法,其特征在于,所述的每个比特串Lj所对应的整数Gj的计算方法为比特串Lj的长度为 m,比特串Lj中第一个比特到第m个比特所对应的每个比特值为Lj^LjY…、Lj^1,每个比特的取值为0或1,则整数Gj = Lj,QX 2°+!^ X 21+…+Lj,^ X 2°1'
6.根据权利要求I所述的基于哈希比特串复用的高速网络流量网络地址测量方法,其特征在于,所述的步骤五中将比特矩阵和初始比特串输出为将测量结束后的比特矩阵H和 a个不同的初始比特串A:、A2、…、Aa输出。
全文摘要
一种基于哈希比特串复用的高速网络流量网络地址测量方法,设置用于存储网络地址的比特矩阵,将比特矩阵中所有的元素的值设置为0,设置用于计算网络地址哈希比特串的哈希函数,哈希函数的输入为一个初始的比特串和网络IP地址,输出为一个长度为k比特的哈希比特串,计算哈希函数所使用不同初始比特串的数量a,设置a个不同的初始比特串,测量开始后,对于每个所到达的网络IP地址计算其哈希比特串,将网络IP地址的存在记录在比特矩阵中,测量结束后将相应的比特矩阵和初始比特串输出。本发明的功能实现快速高效的基于哈希值复用的网络流量IP地址测量方法,能够在高速大规模网络环境中使用有限的存储资源记录通过测量器的网络IP地址。
文档编号H04L12/26GK102546293SQ20111043004
公开日2012年7月4日 申请日期2011年12月20日 优先权日2011年12月20日
发明者程光 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1