专利名称:一种无线IPv6互连网中TCP信头压缩方法
技术领域:
本发明属于提高无线链路的压缩率和鲁棒性的技术领域,特别涉及一种无线IPv6互连网中TCP信头压缩方法。
背景技术:
通过研究表明,这些低速链路上压缩IP/UDP/RTP信头的协议在无线链路上的性能比较差。信头压缩的下一步目标是在高误码率、低带宽的无线链路增加鲁棒性和压缩效率。使用变化的哈夫曼编码来提供一系列的压缩信头方案。为了能在无线链路获得较高的压缩率和较好的抗差错鲁棒性,需要开发一种可行的鲁棒性信头压缩方案。IETF工作组于2001年提出的鲁棒性信头压缩(ROHC,RobustHeader Compression),能在无线链路上获得较好的性能,在2007年2月又进行了修正和补充。ROHC适用于误码率高,往返时间较长的无线链路,可对RTP/UDP/IP、UDP/IP、TCP/IP等多种信头进行压缩。作为鲁棒性和可扩展的方案,ROHC代表了当前信头压缩的技术水平。但是ROHC无法高效压缩TCP流的信头,ROHC+在ROHC的基础上提出了一种能有效压缩TCP流信头的简档和算法。为了减少差错传播,ROHC采用W-LSB编码,并结合使用三种不同的修复机制处理受损的压缩分组。ROHA还针对ROHC-TCP压缩,提出了上下文复制机制。RFC4995在RFC3095的基础上进一步定义了 ROHC框架的相关内容,包括符RFC4163需求的TCP简档。RFC4996提出了一个TCP信头压缩方案,增强了鲁棒性和兼容性,尤其是针对含有TCP选项信头域的压缩。其中使用了 RFC4995中提出的ROHC协议框架,支持RFC4164中定义的上 下文复制策略,对于RFC4413明中的短暂TCP。数据流,上下文复制是非常有用的。2008年4月,IETF工作组正式推出了 ROHC压缩的改进版本R0HCv2。在同样的操作条件下,RFC5225和RFC3095可以获得相同的压缩率和鲁棒性,它们最小压缩信头的大小和比特布局是一致的。R0HCv2简化了规则和算法,增强了分组丢失或重排的鲁棒性机制,而且可以处理任意数量的m信头。
发明内容
本发明的目的是提出一种无线IPv6互连网中TCP信头压缩方法,其特征在于,该方法包括(I)按照ROHC简档规范,采用W-LSB编码方法,编写了 TCP/IP分组的压缩简档;(2)为了方便ROHC简档的编写和调试,在ROHC压缩器端增加处理函数,可以产生适用于任何类型的测试分组,随时校验简档的压缩和解压缩功能;(3)采用灵活的可调节滑动窗口宽度机制,特别适用于连接在无线链路中的TCP/IP架构,由于信道质量的快速变化,找到适合各种情况的优化的滑动窗口宽度值,改变压缩和解压状态变迁逻辑,引入附加的控制信息,兼顾强鲁棒性和低系统开销;
(4)在RHOC简档的编写中,经常需要测试简档的编写或修改是否有效,这时特别需要有灵活的测试信源,随时检验简档的压缩和解压缩功能,进行下一步的修改;针对面向连接的TCP流测试,在不需要事先建立连接和回送确认分组的情况下,TCP/IP流的RHOC压缩/解压缩测试可以持续进行。所述TCP的压缩简档,TCP/IP是面向连接的流,在收、发两端间采用双向可靠的连接模式,依据三次握手规则,意味着数据交换前必须建立协议连接,之后TCP才能保证分发无错的分组到客户端;TCP将应用服务产生的数据流进行分组,在发送的分组中,IP层包含分组的负载并且序列号作为分组的第一个字节;在客户端,对于接收到的任何分组,TCP发送含第一字节序列号的确认分组,表明客户端期望接收的下一个分组。所述滑动窗口宽度的动态调整,W-LSB算法不需要精确的同步,在W-LSB中对每个流,压缩器保存最近Sffff个参考值的滑动窗口,解压器只维护最近成功解压的参考值,对每个分组,压缩器保证压缩分组可以使用滑动窗口中的任何参考值进行解压,因此,解压上下文可以使用解压缩器滑动窗口中的任何一个参考值;W-LSB算法的鲁棒性在于最坏情况下可以容忍(Sffff-1)个连续的分组丢失,而不会导致损害扩散;其中,W-LSB编码的鲁棒性在于如果连续分组丢失个数不超过Sffff窗口长度,即丢失分组的个数小于参考值的个数,解压器仍然可以正确解压。所述动态调整的改进,在ROHC的0模式和R模式中,当解压失败时,解压器向压缩器发送NACK和STATIC NACK负反馈信息,请求压缩器发送完整分组来更新上下文,因此可以利用NACK和STATIC NACK信息来动态调整Sffff的值;所述压缩器保存压缩参考值的滑动窗口宽度设为Sffff C,解压器保存解压·参考值的滑动窗口宽度设为Sffff D,为滑动窗口的宽度设定初始值;压缩器端接收到NACK和STATIC- NACK信息意味着解压器解压失败,表明存在分组丢失,因此当前的Sffff C值太小了,需要成倍增大Sffff C值来避免进一步的解压失败;解压器端在发送NACK和STATIC-NACK负反馈前按照同样的规律增大。本发明的有益效是研究了 ROHC信头压缩的算法和工作机制,分析了 CP/IP信头压缩的局限性,针对无线IPv6网络中TCP/IP信头压缩的技术和性能,改进了 ROHC和TCP压缩方案不完善的地方,在原型系统中通过仿真测试验证了结果。
图1是TCP压缩基本框架图。图2是RHOC的压缩流程示意图。图3是W-LSB算法流程图。
具体实施例方式1、ROHC协议及其实现首先介绍ROHC的基本原理。为了实现信头压缩,需要在TCP/IP架构中加入两个新的功能单元信头压缩器和信头解压器,如图1所示。ROHC压缩器有三种压缩状态,每一种都是不同程度的压缩,分别为IR状态(Initialization and Refresh)、F0 状态(First Order)和 SO 状态(Second Order),这三种压缩状态级别依次升高,压缩器总是从最低压缩状态瓜状态开始工作,然后依次向高级压缩状态转移。每个工作模式下每种压缩状态都使用不同的信头类型。ROHC定义了三种工作模式单向模式(Unidirectional,U-Mode),双向乐观模式(Bidirectional Optimistic, 0-Mode),双向可靠模式(Bidirectional Reliable,R-Mode)。每种模式下都有不同的压缩状态和解压状态,不同的工作模式对应的压缩/解压缩状态转移方式也不同。ROHC的压缩算法,最低有效位(LSB,Least Significant Bit)和基于窗口的最低有效位(W-LSB,Windows-Least Significant Bits)编码算法是ROHC协议中非常重要的压缩编码算法,贯穿于ROHC的整个压缩和解压过程,一般用于对连续分组中数值变化不大的字段进行压缩编码,要压缩的字段与已正确传递并作为参考的字段相比较,只传递二者不同的最低位比特,起到压缩的效果。解压器根据解压上下文中保存的对应字段的参考值,对接收到的LSB编码或W-LSB编码的字段进行解压,将这些字段恢复到编码前的原始值。2、TCP的压缩简档TCP/IP是面向连接的流,在收、发两端间采用双向可靠的连接模式这意味着数据交换前必须建立协议连接,一 般是三次握手规则,之后TCP才能保证分发无错的分组到客户端。TCP将应用服务产生的数据流进行分组,在发送的分组中,IP层包含分组的负载并且序列号作为分组的第一个字节。在客户端,对于接收到的任何分组,TCP发送含第一字节序列号的确认分组,表明客户端期望接收的下一个分组。在服务器端发送新的分组前,TCP期望接收到所有发送分组的确认分组,如果期望超时,就认为分组丢失进行重发。TCP连接可以被描述成两个流数据流(服务器向客户端)和确认流(客户向服务器端),对这两种流采用分离和独立的压缩。在制定分组格式时,按照ROHC简档规范进行,这样设计的方案可以通用于整个ROHC架构。在每个格式中引入MSN关键字段,用于发送可变的格式。所设计的分组格式具有以下特点I) IR和IR-DYN分组中的简档字段值设为9,用于区分特殊的TCP/IP流;2)信头静态域和信头动态域都是可变长度的,分别代表TCP信头中的静态域和动态域;3)设置Ex标志,Ex=I表示存在额外的字段,支持TCP窗口大小和TCP紧急指针的传输,也可用作扩大SN字段的传输范围;4)所有定义的格式均携带CID字段(0-16比特),MSN字段(4_16比特)和TCP校验和字段(2个字节)。因为这些字段在各个流的每个分组中都需要进行传递,这意味着最小的压缩分组是3个字节长度。压缩器到解压器的分组主要有取分组、IR-DYN分组以及ROHC压缩分组(压缩流程如图2)。CP数据流的特性,分析了 TCP信头字段的变化方式,在此基础上引入主序列号MSN作为关键字段,编写了 TCP/IP分组的各种压缩简档和反馈分组,并在原型系统中得到实现,所设计的方案可以通用于整个ROHC架构。3、滑动窗口宽度的动态调整W-LSB算法(算法流程如图3)不需要精确的同步,在W-LSB中对每个流,压缩器保存最近Sffff个参考值的滑动窗口,解压器只维护最近成功解压的参考值,因此实际上LSB是W-LSB中Sffff=I的特殊情况。对每个分组,压缩器保证压缩分组可以使用滑动窗口中的任何参考值进行解压。因此,解压上下文可以使用解压缩器滑动窗口中的任何一个参考值。W-LSB算法的鲁棒性在于最坏情况下可以容忍(Sffff-1)个连续的分组丢失,而不会导致损害扩散。W-LSB编码的鲁棒性在于如果连续分组丢失个数不超过Sffff窗口长度,即丢失分组的个数小于参考值的个数,解压器仍然可以正确解压。因此,Sffff值在W-LSB编码中作用很大,对ROHC性能有直接影响。如果窗口宽度Sffff过小,用做压缩的参考值就少,需要压缩的比特位数k短,可以提高压缩效率。但是一旦在无线链路上丢失Sffff个以上的分组,超出了参考值可以译码的范围,解压方就不能够正确解压,影响了 ROHC的鲁棒性。相反,如果Sffff取值过大,虽然能够保证ROHC的鲁棒性,但是却降低了压缩性能。因此,如果链路上分组丢失率比较小,选择较小的Sffff值即可,当可能出现较大分组丢失率时,可以选择较大的SWW。在无线环境中,分组丢失率通常由误码率BER引起并且可能发生连续分组丢失,如果进一步考虑移动性,信道质量可能快速改变,很难找到适合各种情况的固定Sffff值。因此,应该动态调整Sffff值来满足无线信道需求。4、动态调整的改进方法在ROHC的0模式和R模式中,当解压失败时,解压器向压缩器发送NACK和STATICNACK负反馈信息,请求压缩器发送完整分组来更新上下文,因此可以利用NACK和STATICNACK信息来动态调整Sffff的值。改进方法如下压缩器保存压缩参考值的滑动窗口宽度设为Sffff C,解压器保存解压参考值的滑动窗口宽度设为Sffff D,为滑动窗口的宽度设定初始值。压缩器端接收到NACK和STATIC- NACK信息意味着解压器解压失败,表明存在分组丢失,因此当前的Sffff C值太小了,需要成倍增大Sffff C值来避免进一步的解压失败;解压器端在发送NACK和STATIC-NACK`负反馈前按照同样的规律增大。当连续成功压缩(或解压)的分组个数大于当前滑动窗口宽度时,意味着当前滑动窗口的宽度可以提供较强的鲁棒性,链路质量较好,在这种情况下,可以等比缩减Sffff C(或Sffff D)的值来获得较少的编码比特和较快的压缩速度。5、设计ROHC的测试信源在RHOC简档的编写中,经常需要测试简档的编写或修改是否有效,这时特别需要有灵活的测试信源,随时检验简档的压缩和解压缩功能,进行下一步的修改。在TCP压缩简档的修改中,由于处在调试阶段,可能无法保证握手分组或者确认分组的正确到达,从而可能产生司机或TCP重传,影响了测试的正常进行。所设计的测试信源可以产生适用于任何类型的测试分组,使用简便,分组格式不限。针对面向连接的TCP流测试,在不需要事先建立连接和回送确认分组的情况下,TCP/IP流的RHOC压缩/解压缩测试可以持续进行。
权利要求
1.一种无线IPv6互连网中TCP信头压缩方法,其特征在于,该方法包括 (1)按照ROHC简档规范,采用W-LSB编码方法,编写了TCP/IP分组的压缩简档; (2)为了方便ROHC简档的编写和调试,在ROHC压缩器端增加处理函数,可以产生适用于任何类型的测试分组,随时校验简档的压缩和解压缩功能; (3)采用灵活的可调节滑动窗口宽度机制,特别适用于连接在无线链路中的TCP/IP架构,由于信道质量的快速变化,找到适合各种情况的优化的滑动窗口宽度值,改变压缩和解压状态变迁逻辑,引入附加的控制信息,兼顾强鲁棒性和低系统开销; (4)在RHOC简档的编写中,经常需要测试简档的编写或修改是否有效,这时特别需要有灵活的测试信源,随时检验简档的压缩和解压缩功能,进行下一步的修改;针对面向连接的TCP流测试,在不需要事先建立连接和回送确认分组的情况下,TCP/IP流的RHOC压缩/解压缩测试可以持续进行。
2.根据权利要求1所述一种无线IPv6互连网中TCP信头压缩方法,其特征在于,所述TCP的压缩简档,TCP/IP是面向连接的流,在收、发两端间采用双向可靠的连接模式,依据三次握手规则,意味着数据交换前必须建立协议连接,之后TCP才能保证分发无错的分组到客户端;TCP将应用服务产生的数据流进行分组,在发送的分组中,IP层包含分组的负载并且序列号作为分组的第一个字节;在客户端,对于接收到的任何分组,TCP发送含第一字节序列号的确认分组,表明客户端期望接收的下一个分组。
3.根据权利要求1所述一种无线IPv6互连网中TCP信头压缩方法,其特征在于,所述滑动窗口宽度的动态调整,W-LSB算法不需要精确的同步,在W-LSB中对每个流,压缩器保存最近SWW个参考值的滑动窗口,解压器只维护最近成功解压的参考值,对每个分组,压缩器保证压缩分组可以使用滑动窗口中的任何参考值进行解压,因此,解压上下文可以使用解压缩器滑动窗口中的任何一个参考值;W-LSB算法的鲁棒性在于最坏情况下可以容忍(Sffff-1)个连续的分组丢失,而不会导致损害扩散;其中,W-LSB编码的鲁棒性在于如果连续分组丢失个数不超过Sffff窗口长度,即丢失分组的个数小于参考值的个数,解压器仍然可以正确解压。
4.根据权利要求1所述一种无线IPv6互连网中TCP信头压缩方法,其特征在于,所述动态调整的改进,在ROHC的0模式和R模式中,当解压失败时,解压器向压缩器发送NACK和STATIC NACK负反馈信息,请求压缩器发送完整分组来更新上下文,因此可以利用NACK和STATIC NACK信息来动态调整Sffff的值;所述压缩器保存压缩参考值的滑动窗口宽度设为Sffff C,解压器保存解压参考值的滑动窗口宽度设为Sffff D,为滑动窗口的宽度设定初始值;压缩器端接收到NACK和STATIC- NACK信息意味着解压器解压失败,表明存在分组丢失,因此当前的SWW C值太小了,需要成倍增大Sffff C值来避免进一步的解压失败;解压器端在发送NACK和STATIC-NACK负反馈前按照同样的规律增大。
全文摘要
本发明公开了属于提高无线链路的压缩率和鲁棒性的技术领域的一种无线IPv6互连网中TCP信头压缩方法。本发明着重对ROHC的三种压缩状态、三种工作模式及其W-LSB算法等进行了阐述。给出了TCP信头字段的分类方式,按照ROHC简档规范,编写了TCP/IP压缩的简档;及滑动窗口宽度的动态调整方法以适应无线链路的变化特性,并且对提出的方法进行了性能仿真和分析;设计了ROHC的测试信源,方便ROHC的TCP/IP压缩简档的编写和测试;针对无线IPv6网络中TCP/IP信头压缩的技术和性能,改进了ROHC和TCP压缩方案不完善的地方,在原型系统中通过仿真测试验证了结果。
文档编号H04W28/06GK103067971SQ201310036498
公开日2013年4月24日 申请日期2013年1月30日 优先权日2013年1月30日
发明者程远, 冯刚, 常宁 申请人:北京天地互连信息技术有限公司