APP下载

卫星IP网络包头压缩技术分析

2010-09-26张亚生周红彬李少宾

无线电工程 2010年10期
关键词:校验数据包链路

张亚生,周红彬,李少宾

(中国电子科技集团公司第五十四研究所,河北石家庄050081)

0 引言

目前利用卫星网络传输IP业务得到了越来越广泛的应用,然而过大的IP包头严重浪费了宝贵的卫星带宽资源。以VoIP电话业务为例,采用IPv4进行传输,VoIP电话中IP包头IP+UDP+RTP总共40个bytes,而话音有效载荷采用话音编码压缩后大小约为15~20 bytes。以 20 bytes计算,有效传输效率仅为33%,传输效率相当低。为了提高带宽的利用率,一种可行的解决方案是采用IP头压缩技术,减小IP头的大小,以提高业务数据的传输效率。

健壮性头标压缩协议(ROHC)是IETF提出的一种头标压缩方案,它被设计成能在具有较长响应时间且差错率较高的无线链路上,进行头标压缩的可扩展框架,且具有很好的压缩率和健壮性。

1 ROHC应用分析

在单跳卫星链路中,IP包仅需要链路层头标就可以保证正确传送,而网络层以上的头标像IP、UDP和RTP等不起作用。ROHC是一种基于流的数据包头压缩方案,在网络数据包的传输过程中,同一个流的分组其大部分首部字段具有相同的域值。ROHC在某个流中取一个参考分组,对于其他分组仅仅发送首部字段中相对参考分组变化的信息,以达到压缩的目的。同时,对于卫星链路误码、丢包引起的压缩和解压不同步状态,ROHC通过控制反馈消息的频率和数量、检测失步的严格逻辑以及差错校验等手段,使ROHC压缩机制具有高度的有效性和合理的健壮性。因此,在具有高差错率和长往返时间的卫星链路上采用ROHC压缩方案非常适合。ROHC在卫星IP网络中的应用配置如图1所示。在卫星IP网关中实现ROHC压缩。

图1 ROHC应用环境

在OSI/ISO协议栈中,ROHC位于链路层和网络层之间,经过ROHC压缩器处理的分组,去掉了网络层提交的分组中冗长的IP、UDP和RTP头,而在数据的前面加入比去掉的头标长度要短得多的ROHC头标,这样就大大减少了传输包头所占用的带宽。

2 ROHC的实现

ROHC框架定义了3种工作模式:单向模式(U模式)、双向可靠模式(R模式)和双向优化模式(O模式)。其中U模式适用于单向无反馈信道环境,由于卫星通信系统中很多情况下都是单向链路,因此针对单向U模式进行了实现。

2.1 ROHC在内核中嵌入方式

在Linux平台进行实现了ROHC U模式,ROHC以内核模块形式加载到系统中。为了实现压缩和解压缩,ROHC模块在系统中加载后替换了IP包发送和接收接口函数,对于发送端,ROHC模块利用自定义钩子函数替换了发送接口的函数,使外出的IP包首先经过自定义钩子函数进行压缩处理,由压缩器将IP包头进行压缩,然后重新组装成新的ROHC分组,交给内核进行发送。对于接收端,ROHC模块利用Linux内核提供的pack在系统中注册一个自定义协议实现ROHC解压,恢复为原始IP包后解压模块将原始IP包放到网络接口输入队列中,从而将此IP包交给IP层进行处理。

2.2 压缩器实现流程

压缩器完成U模式下的状态机的变迁操作。压缩器有3个状态,级别从低到高依次为:初始状态(IR)、一级压缩状态(FO)和二级压缩状态(SO)。IR状态是最低级的状态,用于初始化和从错误中恢复关联中的静态部分;FO状态是较高的压缩状态,用于有效分组流中的不规律部分;SO状态是最佳的压缩状态。U模式下由于没有解压方的反馈信息,压缩方在发送n1、n2包后,才从较低级的压缩模式转移到更高级的压缩模式。另外,由于没有反馈,为了确保解压方上下文的同步,U模式中采用周期性的使压缩状态从较高级转移到较低级的机制。然而,如果反馈信道可以使用,解压器能够发送一个成功解压的确认。当压缩器接收到一个这样的消息时,它可以取消周期性IR刷新或增大周期性IR刷新的时间间隔。压缩器实现流程如图2所示。根据文献

[2]取 n1=n2=3,超时时间=4 s。

图2 压缩器实现流程

ROHC采用简档(Profile)来标识不同协议类型的IP包,压缩器判断到来的数据包的协议类型是否是RTP、UDP或IP,如果不是上述类型,则直接将数据包交给内核发送;否则根据数据包的协议类型选择不同的Profile,根据Profile标识到上下文列表中查找合适的上下文标识,根据当前压缩器状态和选定的上下文对当前的IP包头进行压缩,压缩算法采用基于窗口的最低有效位压缩编码,具体算法可参见文献[1]。在组装成新的ROHC分组的时候,由CRC校验部分为新的分组生成校验和,以便在解压器端解压时进行校验,以确保数据报传输的正确性。

2.3 解压器实现流程

解压器也有3个状态,级别从低到高依次为:无关联状态(NC)、静态关联状态(SC)和完全关联状态(FC)。解压器的初始化时的状态是NC状态,一旦正确解压了一个分组,解压方将转移到FC状态,解压方在获得足够的解压信息后总是处于FC状态,只是当最近收到的 n1个连续的分组中有 k1个解压失败的时候才会由FC状态转移到SC状态。在SC状态下,当成功的解压一个含有足够更新信息的分组的时候,就会转移到FC,当最近收到的n2个连续的分组中有k2个解压失败的时候才转移到NC状态,根据文献[2]取 k1=k2=3。

解压器处理流程如图3所示。在接收到新的ROHC分组时,解压器对其进行解析,根据分组中的Profile标识,从上下文列表中选择合适的上下文,然后从ROHC分组中解压出原始IP包的首部,并重新组装成新的IP包,然后计算出新的CRC校验和,并和ROHC分组中的校验和进行比较,如果相等,则解压过程正确,将新组装的IP数据包向上层传递,状态机向较高的状态进行变迁,否则进行修复性尝试,如果尝试失败,抛弃分组,状态机进入到低阶的状态。

图3 解压器实现流程

3 测试及性能分析

为了计算ROHC压缩率,进行如下定义,定义H为IP包头长度(字节),L为IP包净荷长度,Hrohc为压缩后包头平均长度,定义IP包压缩效率G为压缩减少的长度与整个IP包长比值。

由上式可以看出,当Hrohc=0时,得到理论上最大IP包压缩效率为:

以G.729话音编码为例,H=40,L=20,此时

由上式也可以看出,随着L的增大,Gmax会逐渐减小。在VoIP应用中,一般 H都要大于L,可见ROHC非常适合VoIP话音分组包头压缩。

测试环境参见图1,卫星信道速率设为64 kbps,误码率10-7,分别进行IP(Ping)、UDP数据和VoIP压缩性能测试,测试结果如表1所示。

由测试结果可以看出,采用ROHC压缩后,VoIP数据包头长度由40 bytes平均压缩为6 bytes左右。仍以G.729话音编码为例,此时 G=(40-6)/60=56%,很接近其理论最大值Gmax=66%,信道有效传输效率由不压缩时的33%提高到77%。

表1 OHC测试结果

4 结束语

ROHC最初由IETF ROHC工作组提出对WLAN IP包头进行压缩,现在已经被ETSI和3GPP采纳,作为3G移动通信的技术标准。分析及测试表明,ROHC非常适合卫星通信系统中IP包头压缩。为了提高压缩率,下一步需要对ROHC R模式、O模式以及ROHC框架下IP/TCP头压缩进行进一步研究。

[1]BORMANN C,BUR MEISTER C.R Obust Header Compression(ROHC):Framework and Four Profiles:RTP,UDP,ESP,and Uncompressed.RFC 3095[S],2001.

[2]WANG Hui,LI J S.Performance Analysis of ROHC U-mode in Wireless links[C].England:Communications,IEE Proceedings,2004:549-551.

猜你喜欢

校验数据包链路
二维隐蔽时间信道构建的研究*
天空地一体化网络多中继链路自适应调度技术
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
基于星间链路的导航卫星时间自主恢复策略
SmartSniff
炉温均匀性校验在铸锻企业的应用
结合抓包实例分析校验和的计算
分析校验和的错误原因
浅谈微电子故障校验
基于3G的VPDN技术在高速公路备份链路中的应用