一种协议无关的网络冗余流量消除方法技术

技术编号:10162648 阅读:207 留言:0更新日期:2014-07-01 18:23
本发明专利技术公开了一种协议无关的网络冗余流量消除方法,预先从网络中抓取一定数量数据包并按照载荷大小分组并统计分组的数据量累计概率,再确定对应的载荷阈值,发送端对载荷大于等于载荷阈值的数据包进行冗余流量消除:对载荷根据弱哈希值进行分块,将每个数据块的强哈希值作为指纹与指纹库中的指纹进行匹配,如果匹配不成功则将该指纹和数据块更新至指纹库和数据块库,发送端用数据包中所有数据块在数据包中的起始位置和在数据块库中的位置作为载荷重新生成数据包并发送给接收端,接收端根据接收数据包中的数据块信息对数据包进行恢复。本发明专利技术针对数据包之间的冗余数据进行处理,不受应用层通信协议影响,具有较好的冗余流量消除效果和处理时效。

【技术实现步骤摘要】
一种协议无关的网络冗余流量消除方法
本专利技术属于网络流量管理
,更为具体地讲,涉及一种协议无关的网络冗余流量消除方法。
技术介绍
伴随着互联网科技应用的快速发展,网页浏览、文件共享、视频分发、娱乐游戏等网络流量呈现高速增长态势,互联网上大量相同或相似的内容被网络边缘的用户多次请求,造成了数据在网络上的重复传输,导致了大量的冗余流量的产生,不但消耗网络带宽,而且降低了互联网的效率。网络冗余流量消除已成为网络流量管理技术新的研究热点。大部分传统的冗余消除方案在应用层和对象层级别上操作的,例如数据压缩可以删除一个对象内的冗余流量。对象缓存,包括web代理缓存和对等的媒体缓存,他们可以代替资源所在的源服务器用缓存来对频繁和重复的请求进行响应,然而,对于只有少部分修改的内容,无论是对象压缩还是对象级别的缓存都不能很好的工作。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种协议无关的网络冗余流量消除方法,针对数据包之间的冗余数据进行处理,提高冗余消除效果以及处理时效。为实现上述专利技术目的,本专利技术协议无关的网络冗余流量消除方法,其特征在于包括:S1:在网络中预先设置指纹库和数据块库,指纹库中的指纹和数据块库中的数据块一一对应;S2:设置载荷分组基础字节大小c,根据分组基础字节c将N个数据包划分为X组,其中s表示最大传输单元的大小,表示向上取整;预先在网络中抓取N个数据包,提取每个数据包的载荷大小,然后进行分组,将载荷大小范围为[(x-1)×c,x×c)的数据包分为第x个分组,x的取值范围为x=1,2,…,X;第x个分组中数据包出现的次数概率记为px,然后构建次数向量P=[p1,p2,…,px,…,pX],构建载荷大小向量m=[c,2c,…,x×c,…,X×c],并计算出载荷总量M=P*mT,其中,上标T表示转置;计算各分组的数据量概率vx=(px×x×c)/M,则前Y个分组的数据量累计概率:从小于等于预设数据量累计概率阈值VT的所有数据量累计概率VY中选取出最大值以其对应分组的载荷上限Ymax×c作为数据包冗余流量消除的载荷阈值t;S3:发送端每次构建好一个数据包后,判断其载荷是否大于等于载荷阈值t,如果是,进入步骤S4进行冗余流量消除,如果不是,则不经过冗余流量消除直接传输该数据包;S4:对数据包的载荷进行分块,分块方法包括以下步骤:S4.1:预设两个正整数a、b,并且a<b,设置滑动窗口大小为Q个字节,以载荷起点为窗口滑动起点;S4.2:令滑动窗口从滑动起点开始以一个字节为步长在载荷上滑动,每滑动一次即计算该窗口内数据的弱哈希值f(Q),如果a=mod(f(Q),b),其中mod(·)表示取余函数,则以本次滑动起点作为数据块起点,当前滑动窗口的末字节K作为数据块终点,进入步骤S4.3;否则继续滑动;S4.3:判断是否分块完毕,如果是,结束载荷分块进入步骤S5;如果不是,令起点为K+1字节,返回步骤S4.2定位下一个数据块;S5:计算该数据包中每个数据块内容的强哈希值作为该数据块的指纹,与指纹库中的指纹进行匹配,如果匹配成功,进入步骤S6,如果匹配不成功,则将该数据块的指纹存入指纹库,将该数据块存入数据块库,进入步骤S6;S6:发送端用数据包中所有数据块在数据包中的起始位置和在数据块库中的位置作为载荷重新生成数据包并发送给接收端,接收端根据各个数据块在数据块库中的位置从数据块库中提取出数据块,并按照数据块在数据包中的起始位置对数据包进行恢复。进一步地,数据量累计概率阈值VT的取值范围为0.15≤VT≤0.4。进一步地,指纹库中每个指纹对应一个计时器,指纹每次匹配成功后,对应的计时器重置为0,当计时器数值大于预设阈值时,则删除该指纹,并将数据块库中对应数据块删除。进一步地,指纹库中每个指纹对应一个计数器,指纹每匹配成功一次,对应的计数器则加1,指纹库按预设扫描周期扫描指纹库中的所有计数器,当某个指纹的计数器数值小于预设阈值时,则删除该指纹,并将数据块库中对应数据块删除,否则不作任何操作。进一步地,指纹库中每个指纹对应一个计数器,指纹每匹配成功一次,对应的计数器则加1,指纹库按预设扫描周期扫描指纹库中的所有计数器,当某个指纹的计数器数值小于预设阈值时,则删除该指纹,并将数据块库中对应数据块删除,否则将计数器数据重置为0。本专利技术协议无关的网络冗余流量消除方法,预先从网络中抓取一定数量数据包,按照载荷大小进行分组,统计各个分组的数据量概率以及分组的数据量累计概率,根据预设的数据量累计概率阈值确定对应的载荷阈值,发送端对构建好的数据包进行判断,当载荷大于等于载荷阈值时,才进行冗余流量消除:首先对数据包的载荷根据弱哈希值进行分块,将每个数据块的强哈希值作为其指纹与指纹库中的指纹进行匹配,如果匹配不成功则将该指纹和数据块更新至指纹库和数据块库,发送端用数据包中所有数据块在数据包中的起始位置和在数据块库中的位置作为载荷重新生成数据包并发送给接收端,接收端根据各个数据块在数据块库中的位置从数据块库中提取出数据块,并按照数据块在数据包中的起始位置对数据包进行恢复。本专利技术具有以下有益效果:(1)本专利技术针对数据包进行冗余流量消除,不受应用层通信协议的影响;(2)通过载荷阈值来忽略冗余流量消除贡献小的数据包,从而在保证冗余流量消除效果的前提下提高处理时效性;(3)采用弱哈希值来对载荷进行变长分块,当载荷中部分数据发行变化时,减少对载荷分块的影响,提高指纹库匹配成功率,提升冗余流量消除率;(4)本专利技术提供了对指纹库和数据块库的老化管理方法,可以在保证冗余流量消除效果的前提下降低存储容量需求,节约存储资源。附图说明图1是本专利技术协议无关的网络冗余流量消除方法的具体实施方式流程图;图2是数据包集合1中各数据包分组的次数概率和数据量概率示意图;图3是数据包集合2中各数据包分组的次数概率和数据量概率示意图;图4是数据包集合3中各数据包分组的次数概率和数据量概率示意图;图5是数据包集合1中数据包分组的数据量累计概率;图6是数据包集合2中数据包分组的数据量累计概率;图7是数据包集合3中数据包分组的数据量累计概率;图8是数据包载荷分块方法示意图;图9是数据块匹配功能次数的分布示意图;图10是数据块对冗余流量消除的贡献示意图。具体实施方式下面结合附图对本专利技术的具体实施方式进行描述,以便本领域的技术人员更好地理解本专利技术。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本专利技术的主要内容时,这些描述在这里将被忽略。本专利技术协议无关的网络冗余流量消除有别于基于应用层的协议相关的对象级别的冗余抑制技术,本专利技术的主要思想是数据包之间的冗余数据,处理对象是单个的数据包,当检测到相同的数据元素在多个数据包中时,只有一个单一的数据元素的副本被传输或存储,而冗余数据元素被替换为唯一数据元素的引用或指针进行传输。实施例图1是本专利技术协议无关的网络冗余流量消除方法的具体实施方式流程图。如图1所示,本专利技术协议无关的网络冗余流量消除方法包括以下步骤:S101:预设指纹库和数据块库:本专利技术中,指纹库中存储的是数据块对应的指纹,即数据块的唯一标识,数据块库中存储的是网络中会被重复传输的数据块。因此采用本专利技术的通信网络,需要在网络中预先设置指纹库本文档来自技高网...
一种协议无关的网络冗余流量消除方法

【技术保护点】
一种协议无关的网络冗余流量消除方法,其特征在于,包括以下步骤:S1:在网络中预先设置指纹库和数据块库,指纹库中的指纹和数据块库中的数据块一一对应;S2:设置载荷分组基础字节大小c,根据分组基础字节c将N个数据包划分为X组,,其中s表示最大传输单元的大小,表示向上取整;预先在网络中抓取个数据包,提取每个数据包的载荷大小,然后进行分组,将载荷大小范围为[(x‑1)×c,x×c)的数据包分为第x个分组,x的取值范围为x=1,2,…,X;第x个分组中数据包出现的概率记为px,然后构建次数向量P=[p1,p2,…,px,…,pX],载荷大小向量m=[c,2c,…,x×c,…,X×c],并计算除载荷总量M=p*mT,其中,上标T表示转置;计算各分组的数据量概率vx=(px×x×c)/M,则前Y个分组的数据量累计概率:VY=Σx=1Yvx,Y=1,2,...,X;]]>从小于等于预设数据量累计概率阈值VT的所有数据量累计概率VY中选取出最大值,以其对应分组的载荷上限Ymax×c作为数据包冗余流量消除的载荷阈值t;S3:发送端每次构建好一个数据包后,判断其载荷是否大于等于载荷阈值t,如果是,进入步骤S4进行冗余流量消除,如果不是,则不经过冗余流量消除直接传输该数据包;S4:对数据包的载荷进行分块,分块方法包括以下步骤:S4.1:预设两个正整数a、b,并且a<b,设置滑动窗口大小为Q个字节,以载荷起点为窗口滑动起点;S4.2:令滑动窗口从滑动起点开始以一个字节为步长在载荷上滑动,每滑动一次即计算该窗口内数据的弱哈希值f(Q),如果a=mod(f(Q),b),其中mod(·)表示取余函数,则以本次滑动起点作为数据块起点,当前滑动窗口的末字节K作为数据块终点,进入步骤S4.3;否则继续滑动;S4.3:判断是否分块完毕,如果是,结束载荷分块进入步骤S5;如果不是,令起点为K+1字节,返回步骤S4.2定位下一个数据块;S5:计算该数据包中每个数据块内容的强哈希值作为该数据块的指纹,与指纹库中的指纹进行匹配,如果匹配成功,进入步骤S6,如果匹配不成功,则将该数据块的指纹存入指纹库,将该数据块存入数据块库,进入步骤S6;S6:发送端用数据包中所有数据块在数据包中的起始位置和在数据块库中的位置作为载荷重新生成数据包并发送给接收端,接收端根据各个数据块在数据块库中的位置从数据块库中提取出数据块,并按照数据块在数据包中的起始位置对数据包进行恢复。...

【技术特征摘要】
1.一种协议无关的网络冗余流量消除方法,其特征在于,包括以下步骤:S1:在网络中预先设置指纹库和数据块库,指纹库中的指纹和数据块库中的数据块一一对应;S2:设置载荷分组基础字节大小c,根据分组基础字节c将N个数据包划分为X组,其中s表示最大传输单元的大小,表示向上取整;预先在网络中抓取个数据包,提取每个数据包的载荷大小,然后进行分组,将载荷大小范围为[(x-1)×c,x×c)的数据包分为第x个分组,x的取值范围为x=1,2,…,X;第x个分组中数据包出现的概率记为px,然后构建次数向量P=[p1,p2,…,px,…,pX],载荷大小向量m=[c,2c,…,x×c,…,X×c],并计算出载荷总量M=P*mT,其中,上标T表示转置;计算各分组的数据量概率vx=(px×x×c)/M,则前Y个分组的数据量累计概率:从小于等于预设数据量累计概率阈值VT的所有数据量累计概率VY中选取出最大值以其对应分组的载荷上限Ymax×c作为数据包冗余流量消除的载荷阈值t;S3:发送端每次构建好一个数据包后,判断其载荷是否大于等于载荷阈值t,如果是,进入步骤S4进行冗余流量消除,如果不是,则不经过冗余流量消除直接传输该数据包;S4:对数据包的载荷进行分块,分块方法包括以下步骤:S4.1:预设两个正整数a、b,并且a<b,设置滑动窗口大小为Q个字节,以载荷起点为窗口滑动起点;S4.2:令滑动窗口从滑动起点开始以一个字节为步长在载荷上滑动,每滑动一次即计算该窗口内数据的弱哈希值f(Q),如果a=mod(f(Q),b),其中mod(·)表示取余函数,则以本次滑动起点作为数据块起点,当前滑动窗口的末字节K作为数据块...

【专利技术属性】
技术研发人员:邢玲马强何燕玲郑鸿
申请(专利权)人:西南科技大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1