一种适用于单向有损链路的卫星网络数据包压缩方法_2

文档序号:9202502阅读:来源:国知局
压器用字节串P' (X' _h,x' +L+t)替换压缩数据包中的压缩描述符Di;其中,P' (X' -h,X' +L+t)表示原始数据包副本P'从第X' _h字节到第Xr +L+t字节的字节串,为长度为L的字节串在原始数据包副本P中的位置,h为首部可扩展区域长度和t为尾部可扩展区域长度;
[0043](507)接收端解压器判断压缩数据包中是否还有其他压缩描述符,若还有,则将下一压缩描述符更新为当前处理的压缩描述符Di,转入步骤(501),否则执行步骤(508);
[0044](508)接收端解压器将压缩数据包解压还原为原始数据包P ;
[0045](509)接收端解压器将原始数据包P的副本P存入到其历史缓冲区中;
[0046](510)接收端解压器计算原始数据包P中字节串的所有指纹,获得指纹集合{F};
[0047](511)接收端解压器读取指纹集合{F}中的当前处理的指纹Fi;
[0048](512)接收端解压器判断指纹Fi是否存在于其历史缓冲区的指纹索引表中,若不存在则执行步骤(513),否则,转入步骤(514);
[0049](513)接收端解压器将指纹FiS入到其历史缓冲区的指纹索引表中,并建立指纹Fi到原始数据包副本P的映射关系,转入步骤(516);
[0050](514)接收端解压器判断指纹匕与指纹索引表项F' i所对应的字节串是否相同,若相同则执行步骤(515),否则转入步骤(516);
[0051](515)接收端解压器更新历史缓冲区的指纹索引表项F' i,执行步骤(516);
[0052](516)接收端解压器判断指纹集合{F}中的指纹是否已全部处理完,若全部处理完,则接收端解压器将压缩数据包变换为原始数据包的处理结束,否则将下一指纹更新为当前处理的指纹Fi,转入步骤(511)。
[0053]其中,所述的步骤(308)和(515)中更新历史缓冲区的指纹索引表项F' i的具体为:
[0054]更新后,指纹计数器c = c0+l ;
[0055]更新后,首部可扩展区域长度值h为字节串Pci(XcTtvXci)与字节串P (0,x)从右往左匹配所得到的最大相同字节串的长度;
[0056]更新后,尾部可扩展区域长度值t为字节串Pq(xq+L,x0+L+t0)与字节串P' (x+L,S)从左往右匹配所得到的最大相同字节串的长度;
[0057]更新后,指针PTR指向原始数据包副本P',原始数据包副本P的指纹引用计数器值R加I,旧数据包Ptl的指纹引用计数器值R减I,如果旧数据包P ο的指纹引用计数器值R降为0,则从历史缓冲区中删除旧数据包Ptl;
[0058]其中,Ctl为更新前指纹索引表项F' i的指纹计数器的值,X ^为更新前长度为L的字节串在原始数据包P中的位置,Iitl为更新前首部可扩展区域长度,t ^为更新前尾部可扩展区域长度,指针PTR指向的旧数据包为PQ;P(u,v)表示原始数据包P中从第u字节到第v-1字节的字节串;x为指纹匕所对应的固定长度字节串在原始数据包副本P'中的起始位置,S为原始数据包副本P'的长度。
[0059]其中,接收端解压器的历史缓冲区与发送端压缩器的历史缓冲区不需要保持同步和内容一致。
[0060]与一般的基于会话的数据包压缩方法相比,本发明具有以下优点:
[0061](I)接收端解压器的历史缓冲区与发送端压缩器的历史缓冲区不需要保持同步和内容一致。原始数据包中的一个字节串只有在压缩器的历史缓冲区中重复出现多次且出现的频次达到或超过设定门限阈值的条件时才会被替换为对应的压缩描述符,而在解压器的历史缓冲区中,原始数据包中的一个字节串只要出现一次,则压缩数据包中对应于该字节串的压缩描述符均可以被解压器识别和替换为该字节串。
[0062](2)解压器和压缩器不需要反馈机制,可以有效压缩单向链路之上的IP数据包,同时不会因为链路之上的个别数据包丢失而造成解压器端大量数据包的解压失败。发送端压缩设置历史缓冲区中相同字节串出现频次的门限阈值,只有超过门限阈值的重复字节串才会被压缩,通过提高阈值可降低解压失败的概率。
【附图说明】
[0063]图1为本发明的一种适用于单向有损链路的卫星网络数据包压缩方法部署应用的简化模型;
[0064]图2为本发明的历史缓冲区中指纹索引表和原始数据包的映射示例;
[0065]图3为本发明的数据包中固定长度的字节串进行指纹哈希计算所用参量的关系示例;
[0066]图4为本发明的发送端压缩器对原始数据包进行压缩处理的示例流程;
[0067]图5为本发明的接收端解压器对压缩数据包进行解压处理的示例流程。
【具体实施方式】
[0068]下面结合附图和实施例对本发明做进一步详细的描述。
[0069]图1为一种适用于单向有损链路的卫星网络数据包压缩方法部署应用的简化模型,适用于点到点的骨干网、点到多点的星型网和多点到多点的网状网等组网应用中。压缩器和解压器位于卫星终端中,执行数据包压缩方法。当然,该方法亦可应用于无返向通路或无反馈机制的双向链路。
[0070]在一个卫星组网应用示例中,卫星终端100A和100B通过卫星200的中继转发进行通信。卫星终端100A将来自网络LANl的IP数据包发往上行卫星链路之前,由发送端压缩器1lA对数据包进行压缩,压缩后的数据包经卫星200转发之后,由卫星终端100B接收,接收端解压器1lB对压缩包进行解压,解压后的数据包转发到网络LAN2。发送端压缩器1lA为待发送的原始数据包计算数个指纹,每个指纹对应于数据包中某个位置开始的一个固定长度的字节串,假设长度为L。在本发明的一个实施例中,对于一个长度为S字节的数据包,总共可以提取(S-L+ I )个长度为L字节的子字节串,不失一般性,可假设S >L。发送端压缩器采用Rabin指纹方法为每个子字节串计算一个哈希值,并选取哈希值符合一定特征的指纹作为数据包的索引,例如32的整数倍的指纹。
[0071]一种适合于单向有损链路的卫星网络数据包压缩方法,其特征在于包括以下步骤:
[0072](I)发送端压缩器启动,并建立一个历史缓冲区的存储区域;接收端解压器启动,并建立一个历史缓冲区的存储区域;
[0073]发送端压缩器和接收端解压器的历史缓冲区中均存储数据包和指纹索引表;发送端压缩器的历史缓冲区中存储的数据包为发送端压缩器接收到的原始数据包,接收端解压器的历史缓冲区中存储的数据包为接收端解压器解压还原出来的原始数据包。
[0074](2)发送端压缩器接收来自于地面IP网的原始数据包;
[0075](3)发送端压缩器将原始数据包变换为压缩数据包;
[0076]图4图示了在本发明的一个实施例中发送端压缩器对原始数据包进行压缩处理的示例流程,假设发送端压缩器当前待压缩的原始数据包为P,则步骤(3)具体为:
[0077](301)发送端压缩器将原始数据包P的副本P存入到其历史缓冲区中,原始数据包副本P'对应的指纹引用计数器R值初始化为O ;
[0078](302)发送端压缩器计算原始数据包P中字节串的所有指纹,获得指纹集合{F};
[0079](303)发送端压缩器读取指纹集合{F}中当前处理的指纹为Fi;
[0080](304)发送端压缩器判断指纹Fi是否存在于其历史缓冲区的指纹索引表中,若不存在则执行步骤(305),否则转入(306);
[0081](305)发送端压缩器将指纹匕存入到其历史缓冲区的指纹索引表中,建立指纹Fi到原始数据包副本P的映射关系,匕所在索引项中的C= LxSFi所对应的固定长度字节串在P中的起始位置,h为P中该固定长度字节串之前的长度,即h = x,t为P中该固定长度字节串之后的长度,即t = S-x-L ;P'对应的指纹引用计数器R值加I ;转入步骤(311);
[0082](306)发送端压缩器在其历史缓冲区的指纹索引表中找出指纹Fi所对应的表项Fr i;
[0083](307)发送端压缩器判断指纹匕与指纹索引表项F' i所对应的字节串是否相同,若相同则执行步骤(308),否则转入步骤(311);
[0084](308)发送端压缩器更新历史缓冲区的指纹索引表项F' i;
[0085]假设F'派在的索引项原各项数据为c = CcrX = Xc^h = tvt = V指针指向的原数据包为Po。令P (U,V)表示数据包P中从第u字节到第V字节(不包括V)的子字节串。则更新后,c = C(l+l,x设为Fi所对应的固定长度字节串在P'中的起始位置,h为P C1 (Xtl-1vX0)与P' (0,x)从右往左匹配所得到的最大相同字节串的长度,t为Pq(Xq+L,x0+L+t0)与Pr (x+L,S)从左往右匹配所得到的最大相同字节串的长度,其中S为P'的长度。更新后,F' i所在的索引项指向P的指纹计数器值R加I。P C1的指纹计数器值减I,如果P。的指纹计数器值降为0,则从压缩器的历史缓冲区中删除Ptl;
[0086](309)发送端压缩器判断指纹索引表项F' i中计数器值c是否大于等于预设的门限阈值,若大于等于预设的门限阈值则执行步骤(310),否则转入步骤(311);
[0087](310)发送端压缩器生成指纹Fi所对应的压缩描述符D , (Di的内容包括F 1、x、h和t的值),并暂存到压缩描述符集合{D}中;
[0088](311)发送端压缩器判断指纹集合{F}中的指纹是否已全部处理完,若全部处理完,则执行步骤(312),否则将下一指纹更新为当前处理的指纹Fi,转入步骤(303);
[0
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1