一种鲁棒性头压缩中销毁压缩上下文的方法和装置的制作方法

文档序号:7722176阅读:108来源:国知局
专利名称:一种鲁棒性头压缩中销毁压缩上下文的方法和装置的制作方法
技术领域
本发明涉及在移动通信领域中的 一 种鲁棒性头压縮算法(Robust HeaderCompression,简称R0HC),尤其涉及一种针对压縮上下文的销毁机制,包括压縮上 下文的时间标签处理、销毁方法、压縮器和解压器之间上下文的同步以及实现方式。
背景技术
由于物理条件的限制,移动通信系统中的无线链路与有线链路相比传输速率较 低,误码率较高。为了能有效利用有限的无线信道带宽资源,引入了鲁棒性头压縮技术 (Robust Header Compression,简称R0HC) 。 R0HC的核心是利用业务流的分组之间的信息 冗余来透明地压縮和解压縮直接相连节点间的分组头中的信息。 上下文(Context)是鲁棒性头压縮(R0HC)中一个非常重要的概念,包括压縮上下 文和解压上下文。压縮器用于进行压縮的当前状态信息集合称为压縮上下文;解压縮器用 于进行解压縮的当前状态信息集合称为解压上下文。上下文包含了同一包流中前面若干分 组头的相关信息,如静态字段、压縮解压縮用到的引用参考值等。除此之外,上下文中还包 含描述包流的其他信息,如IP报文标识(IPID)字段的变化方式、时间戳字段的变化步长、 当前状态和模式、时钟精度等。 目前R0HC支持对于不压縮(UNCOMPRESSED) 、 IP/UDP/RTP、 IP/UDP、 IP/ESP类 型分组数据包的压縮和解压,分别对应的框架(Profile)类型为框架0(ProfileO)、框架 1 (Prof ilel)、框架2 (Prof ile2)和框架3 (Prof ile3)。对于Prof ile0只存在一个上下文,对 于其他Profile类型则存在一个或者多个上下文,每个上下文通过一个上下文ID (Context Identifier,以下简称CID)来进行标识。每个Prof ile类型下的所有上下文均以链表的形 式组织在一起。 R0HC Profile0类型的上下文对应所有不压縮的分组数据包,其他Profile类型 中的每个上下文则与一个分组包流相对应。 一个分组包流是由该包流中所有的关键字段 (STATIC-DEF字段)所确定。比如对于IPv4/UDP/RTP的包流,是由其IPv4部分的源地址和 目的地址、UDP部分的源端口号和目的端口号以及RTP部分的SSRC字段共同确定。
ROHC压縮器在接收到一个原始分组数据包以后,需要首先判断该分组包所属的 Profile类型,然后在其所对应Profile类型的上下文链表中查找其所属的上下文,如果没 有找到则创建一个新的上下文并将其添加进入链表中。如果找到了对应的上下文,将当前 包中的各字段与上下文中对应的字段进行比较和编码,决策出需要发送的压縮包类型后, 按照期望的包格式封装压縮包进行发送。 目前RFC3095协议中仅规定了上下文的作用、内容和使用方法,并没有对于上下 文的销毁机制进行阐述。而在实际的应用环境中,由于协商配置可以使用的CID空间是有 限的,而长期不再使用的上下文也没有进行销毁,从而导致在CID空间用完的情况下无法 创建新的上下文。

发明内容
本发明要解决的技术问题是,提出一种鲁棒性头压縮中销毁压縮上下文的方法和
装置,及时将长期不用的上下文进行销毁,确保新的上下文可以创建成功。 为解决上述技术问题,本发明提出一种鲁棒性头压縮中销毁压縮上下文的方法,
包括步骤 在压縮上下文中添加时间戳,在使用所述压縮上下文时更新其时间戳为当前时 间; 判断当前存在的压縮上下文的时间戳,删除部分或者全部超过一预设时间未使用 的压縮上下文。 进一步地,上述鲁棒性头压縮中销毁压縮上下文的方法还可具有以下特点
在接收到一个原始分组包后,如果没有找到对应的上下文,先判断是否还有足够 的上下文标识(CID)空间用来创建新的上下文,如果空间足够,则创建新的上下文并添加 时间戳;如果空间不足,则先删除全部或者部分超过一预设时间未使用的压縮上下文以获 得足够的CID空间,然后再创建新的上下文并添加时间戳。 进一步地,上述鲁棒性头压縮中销毁压縮上下文的方法还可具有以下特点
在删除部分或者全部超过一预设时间未使用的压縮上下文时,是从当前存在 的上下文中查找时间戳最旧的一个,然后计算该上下文未被使用的时间间隔,如果该时 间间隔超过所述预设时间,则将其删除,释放CID空间;否则不删除该上下文,采用框架 O(ProfileO)类型压縮当前分组数据包。 进一步地,上述鲁棒性头压縮中销毁压縮上下文的方法还可具有以下特点
在删除全部或者部分超过一预设时间未使用的压縮上下文后,依据所述删除的压 縮上下文使用的CID来创建新的上下文。
进一步地,上述鲁棒性头压縮中销毁压縮上下文的方法还可具有以下特点
所述在使用所述压縮上下文时更新其时间戳为当前时间包括 在接收到一个原始分组包后,如果查找到对应的上下文,则更新所述上下文中的 时间戳为当前时间。 为解决上述技术问题,本发明还提出一种鲁棒性头压縮中销毁压縮上下文的装 置,包括上下文管理单元和上下文销毁单元,其中 所述上下文管理单元,在压縮上下文中添加时间戳,在使用所述压縮上下文时更 新其时间戳为当前时间; 所述上下文销毁单元,判断当前存在的压縮上下文的时间戳,删除部分或者全部 超过一预设时间未使用的压縮上下文。 进一步地,上述鲁棒性头压縮中销毁压縮上下文的装置还可具有以下特点
所述上下文管理单元,在获知压縮装置接收到一个原始分组包且没有找到对应的 上下文时,判断是否还有足够的上下文标识(CID)空间用来创建新的上下文,如果空间足 够,则创建新的上下文并添加时间戳;如果空间不足,通知所述上下文销毁单元销毁上下 文; 所述上下文销毁单元,在接收到所述上下文管理单元发送来的销毁上下文的通知 后,删除全部或者部分超过一预设时间未使用的压縮上下文。
进一步地,上述鲁棒性头压縮中销毁压縮上下文的装置还可具有以下特点
所述上下文销毁单元在删除部分或者全部超过一预设时间未使用的压縮上下文 时,是从当前存在的上下文中查找时间戳最旧的一个,然后计算该上下文未被使用的时间 间隔,如果该时间间隔超过所述预设时间,则将其删除,释放CID空间;否则不删除该上下 文,通知压縮装置采用框架O(ProfileO)类型压縮当前分组数据包。
进一步地,上述鲁棒性头压縮中销毁压縮上下文的装置还可具有以下特点
所述上下文管理单元,在所述上下文销毁单元删除全部或者部分超过一预设时间 未使用的压縮上下文后,依据所述删除的压縮上下文使用的CID来创建新的上下文。
进一步地,上述鲁棒性头压縮中销毁压縮上下文的装置还可具有以下特点
所述上下文管理单元,在使用所述压縮上下文时更新其时间戳为当前时间包括 在接收到一个原始分组包后,如果查找到对应的上下文,则更新所述上下文中的时间戳为 当前时间。 本发明提出的一种鲁棒性头压縮中销毁压縮上下文的方法和装置,具有以下优 点 1、当没有新的CID可用时,及时将长期不用的上下文进行销毁,确保新的上下文 可以创建成功; 2、可以及时有效地对上下文的最新使用情况进行监控。


图1A、图1B、图1C共同组成本发明实施例一种鲁棒性头压縮中销毁压縮上下文的 方法流程示意图; 图2是本发明实施例一种鲁棒性头压縮中销毁压縮上下文的装置方框图。
具体实施例方式
本发明鲁棒性头压縮中销毁压縮上下文方案的基本构思是将压縮器已经创建的 所有上下文都增加一个时间戳的标记,并且在每次使用到此上下文时都更新时间戳,从而 记录最近一次使用该上下文的时间。当发现压縮器的CID空间已经耗尽之后,将超过一定 时间没有使用的上下文销毁,从而释放出压縮器的CID空间。同时发送IR类型的压縮包到 解压器,解压器收到之后同步更新对应的解压上下文,以确保双方的上下文保持同步。
下面将结合附图详细说明在鲁棒性头压縮中采用本发明上下文销毁方案的具体 实施方式。 图1A、图1B、图1C共同组成本发明实施例一种鲁棒性头压縮中销毁压縮上下文 的方法流程示意图,其中图1A为步骤S101 步骤S112示意图,图1B为步骤S113 步骤 S119示意图,图1C为步骤S120 步骤S128示意图。 参见图1A、图1B、图1C,本发明实施例一种鲁棒性头压縮中销毁压縮上下文的方 法,具体包括如下步骤 步骤S101 :压縮流程开始,进入步骤S102 ; 步骤S102 :压縮器接收到原始的分组数据包,进入步骤S103 ; 步骤S103 :压縮器分析当前分组数据包所属的Profile类型,进入步骤S104 ;
步骤S104 :压縮器根据分析获取到的Profile类型分别处理,如果当前Profile 类型为ProfileO,进入步骤S105 ;如果当前Profile类型为Proflel,进入步骤S109 ;如果 当前Profile类型为Profile2,进入步骤S110 ;如果当前Profile类型为Profile3,进入 步骤Slll ; 步骤S105 :直接使用Profile0的上下文,进入步骤S106 ;
步骤S106 :根据Profile0上下文中的状态决策压縮包类型,进入步骤S107 ;
步骤S107 :根据协议中定义的格式封装对应的压縮包,进入步骤S108 ;
步骤S108 :发送封装完成的压縮包,进入步骤S128 ; 步骤S109 :根据当前分组包中的关键字段在Profilel的上下文链表中查找所属 上下文,进入步骤S112 ; 所述关键字段为静态定义(STATIC-DEF)字段; 步骤S110 :根据当前分组包中的关键字段(STATIC-DEF字段)在Profile2的上 下文链表中查找所属上下文,进入步骤S112 ; 步骤Slll :根据当前分组包中的关键字段(STATIC-DEF字段)在Profile3的上 下文链表中查找所属上下文,进入步骤S112 ; 步骤SI 12 :判断是否在相应的链表中找到对应上下文,如果是进入步骤S113,否 则进入步骤S120 ; 步骤S113 :更新上下文中的时间戳字段为当前时间,进入步骤S114 ; 步骤S114:将当前包中的字段内容和上下文中的字段内容进行比较,进入步骤
S115 ; 可以采用RFC3095协议定义的方法进行比较,将当前分组包中的各个字段与上下 文中相同的字段进行比较看是否有变化; 步骤S115 :根据比较结果对相应的字段采用协议中规定的编码方法进行编码,进 入步骤S116 ; 可以采用RFC3095协议定义的方法,针对有变化的字段,根据变化字段的不同需 要分别采用协议中定义的不同的编码方法。比如对于时间戳字段需要采用比例化编码或者 基于时间的编码,对于序列号字段需要采用WLSB编码等。 步骤S116 :根据编码结果和当前模式、状态等信息决策期望发送的压縮包类型, 进入步骤S117 ; 步骤S117 :判断是否成功决策出有效的压縮包类型,是则进入步骤S119,否则进 入步骤S118 ; 所述有效的包类型是指RFC3095协议中定义的压縮包类型。 步骤S118 :压縮器向低状态迁移后重新决策包类型,进入步骤S117 ; 压縮器共存在三种状态,根据级别由低到高依次是IR(Initialization
andRefresh,初始化更新)状态、F0 (First Order)状态、SO (Second Order)状态。压縮器
由高状态变化到低状态均称为向低状态迁移。包括从SO状态变化到F0状态、从SO状态变
化到IR状态、从F0状态变化到IR状态。 步骤S119 :根据最终决策出的压縮包类型封装相应的压縮包进行发送,进入步骤
S128 ;
步骤S120 :判断CID空间是否已经用完,如果是进入步骤S121,否则进入步骤 S124 ; 步骤S121 :从相应Profile的上下文链表中根据时间戳字段查找到最久没有使用 的上下文,进入步骤S122 ; 步骤S122 :判断此上下文未被使用的时间间隔是否超过了门限值,是则进入步骤 S123,否则进入步骤S105 ; 步骤S123 :删除此上下文并释放CID空间,进入步骤S124 ; 步骤S124 :创建新的上下文并添加到对应Profile类型下的上下文链表中,进入 步骤S125 ; 步骤S125 :初始化新创建的上下文并打上时间戳标签,即记录下上下文的初始化 时间,进入步骤S126 ; 步骤S126 :封装IR类型的压縮包进行发送,进入步骤S127 ; 步骤S127 :解压器收到IR类型压縮包以后更新解压上下文,确保双方的上下文保 持同步,进入步骤S128 ;
步骤S128:流程结束。 为了实现上述方法,本发明实施例还提供了 一种鲁棒性头压縮中销毁压縮上下文 的装置,如图2所示,包括上下文管理单元21和上下文销毁单元22,其中
所述上下文管理单元21,在压縮上下文中添加时间戳,在使用所述压縮上下文时 更新其时间戳为当前时间; 所述上下文销毁单元22,判断当前存在的压縮上下文的时间戳,删除部分或者全 部超过一预设时间未使用的压縮上下文。 进一步地,所述上下文管理单元21,在获知压縮装置接收到一个原始分组包且没
有找到对应的上下文时,判断是否还有足够的上下文标识(CID)空间用来创建新的上下
文,如果空间足够,则创建新的上下文并添加时间戳;如果空间不足,通知所述上下文销毁
单元22销毁上下文;所述上下文销毁单元22,在接收到所述上下文管理单元21发送来的
销毁上下文的通知后,删除全部或者部分超过一预设时间未使用的压縮上下文。 进一步地,所述上下文销毁单元22在删除部分或者全部超过一预设时间未使用
的压縮上下文时,是从当前存在的上下文中查找时间戳最旧的一个,然后计算该上下文未
被使用的时间间隔,如果该时间间隔超过所述预设时间,则将其删除,释放CID空间;否则
不删除该上下文,通知压縮装置采用框架O(ProfileO)类型压縮当前分组数据包。 进一步地,所述上下文管理单元21,在所述上下文销毁单元22删除全部或者部分
超过一预设时间未使用的压縮上下文后,依据所述删除的压縮上下文使用的CID来创建新
的上下文。 进一步地,所述上下文管理单元21,在使用所述压縮上下文时更新其时间戳为当 前时间包括在接收到一个原始分组包后,如果查找到对应的上下文,则更新所述上下文中 的时间戳为当前时间。 以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人 员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、 等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种鲁棒性头压缩中销毁压缩上下文的方法,其特征在于,包括步骤在压缩上下文中添加时间戳,在使用所述压缩上下文时更新其时间戳为当前时间;判断当前存在的压缩上下文的时间戳,删除部分或者全部超过一预设时间未使用的压缩上下文。
2. 如权利要求1所述的鲁棒性头压縮中销毁压縮上下文的方法,其特征在于 在接收到一个原始分组包后,如果没有找到对应的上下文,先判断是否还有足够的上下文标识(CID)空间用来创建新的上下文,如果空间足够,则创建新的上下文并添加时间 戳;如果空间不足,则先删除全部或者部分超过一预设时间未使用的压縮上下文以获得足 够的CID空间,然后再创建新的上下文并添加时间戳。
3. 如权利要求1或2所述的鲁棒性头压縮中销毁压縮上下文的方法,其特征在于 在删除部分或者全部超过一预设时间未使用的压縮上下文时,是从当前存在的上下文中查找时间戳最旧的一个,然后计算该上下文未被使用的时间间隔,如果该时间间隔超过 所述预设时间,则将其删除,释放CID空间;否则不删除该上下文,采用框架0(ProfileO)类 型压縮当前分组数据包。
4. 如权利要求3所述的鲁棒性头压縮中销毁压縮上下文的方法,其特征在于 在删除全部或者部分超过一预设时间未使用的压縮上下文后,依据所述删除的压縮上下文使用的CID来创建新的上下文。
5. 如权利要求1所述的鲁棒性头压縮中销毁压縮上下文的方法,其特征在于,所述在使用所述压縮上下文时更新其时间戳为当前时间包括在接收到一个原始分组包后,如果查找到对应的上下文,则更新所述上下文中的时间 戳为当前时间。
6. —种鲁棒性头压縮中销毁压縮上下文的装置,其特征在于,包括上下文管理单元和上下文销毁单元,其中所述上下文管理单元,在压縮上下文中添加时间戳,在使用所述压縮上下文时更新其 时间戳为当前时间;所述上下文销毁单元,判断当前存在的压縮上下文的时间戳,删除部分或者全部超过 一预设时间未使用的压縮上下文。
7. 如权利要求6所述的鲁棒性头压縮中销毁压縮上下文的装置,其特征在于 所述上下文管理单元,在获知压縮装置接收到一个原始分组包且没有找到对应的上下文时,判断是否还有足够的上下文标识(CID)空间用来创建新的上下文,如果空间足够,则 创建新的上下文并添加时间戳;如果空间不足,通知所述上下文销毁单元销毁上下文;所述上下文销毁单元,在接收到所述上下文管理单元发送来的销毁上下文的通知后, 删除全部或者部分超过一预设时间未使用的压縮上下文。
8. 如权利要求6或7所述的鲁棒性头压縮中销毁压縮上下文的装置,其特征在于 所述上下文销毁单元在删除部分或者全部超过一预设时间未使用的压縮上下文时,是从当前存在的上下文中查找时间戳最旧的一个,然后计算该上下文未被使用的时间间隔, 如果该时间间隔超过所述预设时间,则将其删除,释放CID空间;否则不删除该上下文,通 知压縮装置采用框架O(ProfileO)类型压縮当前分组数据包。
9. 如权利要求8所述的鲁棒性头压縮中销毁压縮上下文的装置,其特征在于所述上下文管理单元,在所述上下文销毁单元删除全部或者部分超过一预设时间未使 用的压縮上下文后,依据所述删除的压縮上下文使用的CID来创建新的上下文。
10.如权利要求6所述的鲁棒性头压縮中销毁压縮上下文的装置,其特征在于所述上下文管理单元,在使用所述压縮上下文时更新其时间戳为当前时间包括在接 收到一个原始分组包后,如果查找到对应的上下文,则更新所述上下文中的时间戳为当前 时间。
全文摘要
本发明提出一种鲁棒性头压缩中销毁压缩上下文的方法和装置,该方法包括步骤在压缩上下文中添加时间戳,在使用所述压缩上下文时更新其时间戳为当前时间;判断当前存在的压缩上下文的时间戳,删除部分或者全部超过一预设时间未使用的压缩上下文。该方法可以及时将长期不用的上下文进行销毁,确保新的上下文创建成功。
文档编号H04W28/06GK101711043SQ20091025272
公开日2010年5月19日 申请日期2009年12月2日 优先权日2009年12月2日
发明者史学红, 张健, 毕文勇 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1