用于MIPv6的鲁棒性头标压缩/解压方法

文档序号:7936467阅读:204来源:国知局
专利名称:用于MIPv6的鲁棒性头标压缩/解压方法
技术领域
本发明涉及因特网移动通信领域,属于根据MIPv6在无线移动环境下发送数据流时的头标压缩/解压方法。
背景技术
鲁棒性头标压缩(Robust Header Compression,简称ROHC)是因特网工程任务组织(Intemet Engineering Task Force,简称IETF)提出的头标压缩协议规程,是一种具有很强的容错能力(包括帧丢失和残留误码(residual bit errors))的头标压缩机制(RFC3095)。ROHC针对不同的协议,提出了不同的头标压缩子协议(profile)。目前规范的子协议有RTP/UDP/IP、UNCOMPRESSED、UDP/IP、ESP/IP头标的模型。但尚未有针对MIPv6的头标模型。
由于因特网的IP分组在转发过程中要根据IP头标信息进行寻路,如果传送实时音频等小分组业务其头标本身所占用的开销很大,因而占用过多的网络带宽、从而会增加网络传送的负担。对于有线网络这种负担暂且还不会影响到网络的性能。但是,无线网络的传输带宽相对较窄,这种负担就会产生很大的影响。尤其是目前正在开发的因特网协议第6版的移动子协议(Mobility Support for Internet Protocol version 6,简称为MIPv6),其头标本身所占用的开销更大,因而更加迫切需要进行头标压缩。

发明内容
本发明的目的是提供一种用于MIPv6鲁棒性头标压缩/解压方法,以在无线环境下传输MIPv6分组时提高无线带宽利用率。
本发明的技术解决方案如下该方法是在无线通信链路的两端进行以下处理①对MIPv6分组进行筛选;以及②对特定的分组进行头标压缩/解压;其中,发送方为压缩方,接受方为解压方;压缩方对所选定的分组进行分类,然后选择对应的压缩方法进行头标压缩后,传送给解压方;解压方根据压缩后的头标获得足够的信息,然后恢复成原始的未经压缩的头标。
所述的特定分组是用UDP协议封装的数据流分组,头标压缩/解压的范围为该数据流分组中的UDP/MIPv6/IPv6头标的静态域和动态域;所述的分类是指压缩后的分组包括以下类别①包含了完整的MIPv6分组信息的初始化分组;②包含了动态变化的头标域信息的动态分组;③包含了CID的完全压缩分组。
所述的压缩器的工作过程包括如下步骤①筛选压缩器根据MIPv6分组中的流标记、信源地址域来识别一个流;然后,筛选出含有UDP/MIPv6/IPv6头标的数据流的分组;②初始化对于属于新的数据流的分组,将压缩器工作设置在初始状态,压缩器向解压器发送初始化分组;③启动压缩规程对于已经有建立初始化信息的数据流的分组,根据ROHC规程发送动态分组和完全压缩分组;所述的解压器的工作过程包括如下步骤①对于新的数据流,接受初始化分组,建立解压关联表项;②对于已经建立解压关联表项的分组,利用ROHC规程进行解压,根据CID信息查找解压关联,恢复成原始的未经压缩的头标;③根据所选用的ROHC规程中的操作模式,决定是否向压缩方发送反馈分组。
也就是说,本发明是将鲁棒性头标压缩应用到MIPv6的无线环境中,在无线链路的两端对实时数据流的UDP/MIPv6/IPv6头标进行压缩/解压,使传输过程中所需的头标开销降低。
(1)原理在MIPv6草案中规定,移动节点(Mobile Node,以下简称MN)向通信对端(Correspondent Node,以下简称CN)发送分组时,IPv6分组头标中的源地址为MN的转交地址(Care-of Address)。为了在分组中包含唯一标识MN的家乡地址(HomeAddress),MN发送的分组必须有包含家乡地址的信宿选项头标(Destination OptionHeader)。而CN发给MN的分组则采用寻路头标(Routing Header)的方式,即分组的目的地址为MN的转交地址,寻路头标中含有MN的家乡地址。如图1所示。为方便起见,我们将MIPv6协议中规定的这两个头标通称为MIPv6的扩展头标。
由于无线链路传输速率较低、误码率较高的特性,在无线网络上传输IPv6分组头标的开销显得过大。例如,一帧音频数据净荷通常只有15-32字节,而在MIPv6环境中传输该数据需要40字节的IPv6头标、20/24字节MIPv6头标、8字节的传输层用户数据报协议(UDP)头标,UDP/MIPv6/IPv6的头标开销总共是68/72字节,如果通信对端也是MN,那么分组的IP/UDP/RTP加在一起的头标开销有92字节。这不仅占用带宽,同时还使分组因出错而被丢弃的概率增大。
事实上,在传输过程中,同一个数据流的分组的IPv6头标有很多域是相同的,动态变化的部分只有少数几个域。此外,MIPv6头标中的每个域都是静态不变的。因此,如果在无线链路上仅仅在数据流开始时发送完整的MIPv6分组及相应的选项头标,后续分组的头标域只传输变化的部分和相对于同一个流的关联识别符,这样就可以更加有效的利用带宽。
由于头标压缩需要对压缩方和解压方的状态进行保留,因此,头标压缩只适用于持续时间较长、有多个分组的数据流,对于单个分组头标压缩没有意义。一般来说,实时的音频、视频流都是以UDP报文的形式发送长数据流,所以,本发明仅对MIPv6分组中的UDP/MIPv6/IPv6头标进行压缩。
(2)MIPv6头标压缩/解压方法无线链路中MIPv6条件下的ROHC的应用如图2所示将无线链路一端的移动节点MN和另一端的无线网络控制器RNC(Radio Networkcontroller)作为执行ROHC的压缩/解压的节点。在MN和RNC之间的无线链路上传送的是经过采用ROHC规程压缩的MIPv6分组,在RNC和CN之间的有线链路上传送的是普通的MIPv6分组。MN和RNC都既能执行压缩又可执行解压。对于某一个流,其压缩器和解压器分别在无线链路的两端(即MN和RNC),压缩器在发送方,解压器在接收方。
具体的压缩/解压方法如下压缩器的工作过程包括如下步骤①筛选。压缩器根据MIPv6分组中的流标记、信源地址域来识别一个流;然后,筛选出含有UDP/MIPv6/IPv6头标的数据流的分组;②初始化。对于属于新的数据流的分组,将压缩器工作设置在初始状态(IRInitialization and Refresh),压缩器向解压器发送初始化分组。该初始化分组除了含有MIPv6分组本身的信息外,还包含了子协议域(profile ID)及关联识别符(context ID,简称CID)等附加信息。Profile ID是用于指出在特定的链路上如何对特定的分组流(本发明中是针对UDP/MIPv6/IPv6分组流)进行头标压缩的规范。CID用来使解压方在存储关联表中索引该流的关联内容(关联表中含有分组中各个域的信息),它在压缩分组所传输的信道内是唯一的。压缩/解压器对每个数据流维护一个关联表项。
③启动压缩规程。对于已经有建立初始化信息的数据流的分组,根据ROHC规程发送动态分组和完全压缩分组。这时要针对该分组的具体情况、根据ROHC规程对之进行处理。对于分组中不同类型的域,采用不同的处理方法。下面对照MN和CN之间通信的分组头标格式进行分析。
如下表所示,IPv6数据流中的分组头标中有很多域都是不变的(如信源/信宿地址、信源/信宿端口等),称为静态域;有些域偶尔会发生改变(如业务量等级、中继点限制);有些域是作不规则的变化(如UDP的校验和)。压缩时应首先对头标中的各个域进行分类,然后对不同类型的域采用不同的处理方法。
表1IPv6的基本头标

表2MIPv6的扩展头标

表3UDP头标

静态的域在压缩后的分组中一般不发送。动态的域可仅在改变的时候发送,这时采用动态分组,它包含了CID信息、动态变化的头标域信息和数据域信息;完全压缩分组一般是在动态的域中不出现变化的情况下发送,主要包含CID信息。具体内容参见子协议格式说明部分。
因此,压缩后的分组包括以下类别①包含了完整的MIPv6分组信息的初始化分组;②包含了动态变化的头标域信息的动态分组;③包含了CID的完全压缩分组。
解压器的工作过程包括如下步骤①对于新的数据流,接受初始化分组,建立解压关联表项;②对于已经建立解压关联表项的分组,利用ROHC规程进行解压,根据CID信息查找解压关联,恢复成原始的未经压缩的头标;③根据所选用的ROHC规程中的操作模式,决定是否向压缩方发送反馈分组。
其中反馈分组是用来告诉压缩方此分组解压是否成功,主要包含CID信息、反馈标志信息和是否解压成功的信息。
(3)MIPv6头标压缩子协议根据上述将ROHC框架用于MIPv6的分组头标压缩的方法,以及RFC3095定义的初始化分组、动态分组、完全压缩分组、反馈分组的格式,本发明提出MIPv6头标压缩子协议。
①将MIPv6头标压缩的profile ID的格式定义为0x000a。CID的格式就按照RFC3095进行定义。
②由于UDP/MIPv6/IPv6头标中没有序列号或IPv4分组中的分组号域(IP-ID),压缩方应随机产生2个字节(16比特)的序列号SN,作为反馈的标志。发送时将其压缩成利用W-LSB(Window-based LSB encoding)算法计算后所得的值。
③初始化分组的格式也按照RFC3095进行定义,其中包含了MIPv6的扩展头标的内容。其具体格式如图3。
④按照RFC3095的定义,动态分组和完全压缩分组主要有三类,分别定义为类型0,类型1,类型2。类型0是完全压缩分组,仅发送序列号SN(或者加上循环冗余校验和CRC);类型1包含用来更新SN函数的参数;类型2为动态分组,包含用于更新动态域的信息。由于本发明中的SN的函数是常数,所以没有类型1的压缩分组。
而且,ROHC有三种操作模式单向模式(Uni-directional,简称U-mode)、双向优化模式(Bi-directional Optimistic,简称O-mode)、双向可靠模式(Bi-directional Reliable,简称R-mode)。当不存在或不能使用反馈信道时,使用U-mode,此时分组只向一个方向发送,从压缩方到解压方。O-mode的目的是提供高度的压缩有效性和合理的鲁棒性。R-mode则提供完全的鲁棒性,但开销稍大且反馈消息较多。O-mode和R-mode两种模式反馈更频繁,在压缩方和解压方都有检测关联是否同步的严格逻辑。
对于不同的工作模式,其压缩分组格式一般是不同的。因此,这里分组类型的命名遵循以下格式模式-类型-特性(mode-type-property)。如R-0是指R-mode、类型为0的压缩分组;UOR-2-Prio是指该类型为2的压缩分组、适用于所有工作模式,并且该压缩头标中含有Prio(优先级)变化的信息。
因此,本发明提出的MIPv6子协议的动态分组和完全压缩分组格式如下第一类类型0(有两种格式)R-0格式如图3,SN为6比特的压缩值。
UO-0格式如图4,SN为4比特的压缩值,还要加上3比特的CRC。
第二类类型2(有两种格式)有6比特的SN和7比特的CRC。F=0时,表示分组为UOR-2-Prio(如图5),F=1时,表示分组为UOR-2-Hop格式(如图6)。
当分组头标中的优先级发生变化时,应发送UOR-2-Prio分组,将变化后的优先级写入Priority域中。
当分组头标中的中继点限制发生变化时,应发送UOR-2-Hop分组。将变化后的中继点限制写入Hoplimit域中。
(4)效果为了检验本发明对MIPv6分组的压缩效果,我们采用了NS-2仿真工具对语音和视频业务的MIPv6分组进行头标压缩的仿真。
语音业务是无线链路上的经典业务,在3G中,多媒体业务也将是一个主要部分。本发明仿真的语音业务为自适应多速率(AMRAdaptive Multi Rate)编码标准语音,语音数据的产生速率为12.2kb/s,每20毫秒一帧。视频业务采用MPEG-4标准,视频数据的发送速率为48kb/s,每秒发送10帧。无线链路延时为100毫秒,误码率10-4~10-2b/s。
设avg_header_len表示分组的平均头标长度,total_bytes表示总的发送字节数(包括各种类型的压缩分组及其反馈),decomped表示成功解压的分组数,payload_len表示分组中的净荷大小(同一个流的净荷长度相同),则平均头标长度的计算公式为avg_header_len=(total_bytes-decomped×payload_len)÷decomped表4、表5是在无线链路无差错的情况下,不同长度的语音业务、视频业务流的压缩后的平均头标长度(单位是字节)。由表中可知,当总业务量大于1000分组的时候,ROHC协议的平均头标长度趋于稳定。对比表4、表5,由于语音业务的分组间隔较短(20ms),视频业务的分组间隔较长(100ms),而头标压缩协议和时间相关(慢启动机制、timeout机制)表4音频业务的平均头标长度(单位是字节) 表5视频业务的平均头标长度(单位是字节) 仿真结果显示,不同模式下的压缩率均大于96%。用ROHC对MIPv6分组进行头标压缩可大大提高分组传输的效率,应用了ROHC头标压缩的MIPv6子协议能够较好的适应无线链路传输速率低、误码率高的特性。该发明的应用有利于提高无线环境下的带宽利用率。


图1是MN与CN通信时的分组头标格式;图2是MIPv6分组在网络中进行传输的示意图;图3~7是MIPv6头标压缩子协议示意图;图3是初始化分组格式,其中的静态链(Static Chain)包含MIPv6头标中的所有静态域、动态链(Dynamic Chain)包含MIPv6头标中的所有动态域,静态链和动态链的具体格式根据RFC3095制定(由于其长度不定,所以用虚线框表示);图4是R-0分组格式;图5是UO-0分组格式;图6是UOR-2-Prio分组格式;图7是UOR-2-Hop分组格式;其中,所采用的分组格式是小CID的情况,如果对于拥有大业务数据流需要压缩的场合,就要采用大CID方式,采用大CID方式就是在目前的小CID后面再插入一个1到2个字节的增强CID域。
图8是压缩器的工作流程;图9是解压器的工作流程。
具体实施例方式本发明的实施例是在Linux操作系统下实现的,主要实施过程如下在Linux网络链路层发送和接受接口处添加根据上述方法及子协议而编写的软件作为压缩方和解压方的处理模块,形成相应的压缩器和解压器,对发送出去的特定的数据流分组进行压缩、同时对接收到的压缩过的数据流分组进行解压。
图7是依照本发明提出的方法实施的MIPv6压缩器的基本流程举例。压缩器首先提取分组头标,然后判断是否是一个UDP/MIPv6分组,对采用UDP传输协议的MIPv6分组进行头标压缩。如果该分组是数据流的头一个分组,那么要对该流创建压缩关联,发送初始化分组,并启动压缩初始化规程;如果该分组属于已经创建了压缩关联的数据流,那么根据其所处的状态进行压缩,压缩分组的格式如图3~7所示,然后将压缩后的分组通过网络接口发送出去。
图8是依照本发明提出的方法实施的MIPv6解压器的基本流程举例。对于从网络接口接收到的数据流分组,解压器要判断该数据包是否是MIPv6头标压缩分组,如果是,就读取CID,根据CID查找相应的关联表项进行解压。再根据解压结果的正确与否处理反馈信息,根据相关反馈信息,对应的压缩器要做必要的操作。
权利要求
1.一种用于MIPv6的鲁棒性头标压缩/解压方法,其特征在于该方法是在无线通信链路的两端进行以下处理①对MIPv6分组进行筛选;以及②对特定的分组进行头标压缩/解压;其中,发送方为压缩方,接受方为解压方;压缩方对所选定的分组进行分类,然后选择对应的压缩方法进行头标压缩后,传送给解压方;解压方根据压缩后的头标获得足够的信息,然后恢复成原始的未经压缩的头标。
2.如权利要求1所述的方法,其特征在于所述的特定分组是用UDP协议封装的数据流分组,头标压缩/解压的范围为该数据流分组中的UDP/MIPv6/IPv6头标的静态域和动态域;所述的分类是指压缩后的分组包括以下类别①包含了完整的MIPv6分组信息的初始化分组;②包含了动态变化的头标域信息的动态分组;③包含了CID的完全压缩分组。
3.如权利要求1或2所述的的方法,其特征在于压缩器的工作过程包括如下步骤①筛选压缩器根据MIPv6分组中的流标记、信源地址域来识别一个流;然后,筛选出含有UDP/MIPv6/IPv6头标的数据流的分组;②初始化对于属于新的数据流的分组,将压缩器工作设置在初始状态,压缩器向解压器发送初始化分组;③启动压缩规程对于已经有建立初始化信息的数据流的分组,根据ROHC规程发送动态分组和完全压缩分组;解压器的工作过程包括如下步骤①对于新的数据流,接受初始化分组,建立解压关联表项;②对于已经建立解压关联表项的分组,利用ROHC规程进行解压,根据CID信息查找解压关联,恢复成原始的未经压缩的头标;③根据所选用的ROHC规程中的操作模式,决定是否向压缩方发送反馈分组。
全文摘要
本发明是一种用于MIPv6的鲁棒性头标压缩/解压方法,涉及因特网移动通信领域,属于根据MIPv6在无线移动环境下发送数据流时的头标压缩/解压方法。它是在无线通信链路的两端利用ROHC规程对网络中传输的实时音频、视频业务所采用的传输层头标和网络层头标(UDP/IPv6/MIPv6)进行压缩,针对同一数据流中UDP/IPv6/MIPv6头标中有很多域是不变的特点,在数据流的传输初期发送完整的MIPv6分组,并选择关联识别符(CID)与之对应,然后启动压缩规程,后续的分组只需传送变化的头标域和关联识别符。本发明对压缩/解压过程和压缩后的分组格式进行了定义,仿真表明其头标压缩率达到96%。本发明能有效压缩头标信息,有较好的容错功能,大大提高无线链路的信道利用率。
文档编号H04W28/06GK1507286SQ0214851
公开日2004年6月23日 申请日期2002年12月9日 优先权日2002年12月9日
发明者洪佩琳, 李津生, 李蕾, 王辉 申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1