首页> 中国专利> 一种鲁棒性头压缩中的静态域CRC校验方法和装置

一种鲁棒性头压缩中的静态域CRC校验方法和装置

摘要

本发明公开了一种鲁棒性头压缩中的静态域CRC校验方法,包括:当本分组数据包为第一个分组数据包时,对本分组数据包的静态CRC域进行CRC校验值的计算;当本分组数据包不为第一个分组数据包时,判断静态CRC域是否发生变化,根据判断结果,对本分组数据包的静态CRC域进行CRC校验值的计算,或者,将上一次计算的静态CRC校验值作为本分组数据包的静态CRC校验值;本发明还公开了一种鲁棒性头压缩中的静态域CRC校验装置。通过本发明可以提高静态域CRC校验时的执行效率。

著录项

  • 公开/公告号CN102916773A

    专利类型发明专利

  • 公开/公告日2013-02-06

    原文格式PDF

  • 申请/专利权人 中兴通讯股份有限公司;

    申请/专利号CN201210382172.0

  • 发明设计人 吴勇;史学红;董淑松;

    申请日2012-10-10

  • 分类号H04L1/00;

  • 代理机构北京派特恩知识产权代理事务所(普通合伙);

  • 代理人张颖玲

  • 地址 518057 广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦法务部

  • 入库时间 2024-02-19 17:37:56

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-03

    授权

    授权

  • 2013-03-20

    实质审查的生效 IPC(主分类):H04L1/00 申请日:20121010

    实质审查的生效

  • 2013-02-06

    公开

    公开

说明书

技术领域

本发明涉及移动通信领域,特别是指一种鲁棒性头压缩中的静态域CRC校 验方法和装置。

背景技术

由于物理条件的限制,移动通信系统中的无线链路与有线链路相比传输速 率较低,误码率较高。为了能有效利用有限的无线信道带宽资源,引入了鲁棒 性头压缩(ROHC,RObust Header Compress)技术。ROHC技术的核心是利用 业务流的分组之间的信息冗余来透明的压缩和解压缩直接相连节点间的分组头 中的信息。ROHC技术由IETF的RFC3095文档进行描述,并且在2007年2 月份IETF对其进行了修订,修订文档是RFC4815。

RFC3095协议中提到的压缩包循环冗余校验码(CRC,Cyclic Redundancy  Check)校验方法是对分组数据包头部数据进行CRC校验,分组数据包头部数 据分为静态CRC域和动态CRC域,其中,静态CRC域是分组数据包头部数据 中的一部分数据按照固定的顺序连接成的数据域,动态CRC域同理。CRC校 验方法为:先计算静态CRC域的校验值(简称静态CRC校验值),再使用静态 CRC校验值同动态CRC域一起完成分组数据包头部数据的CRC校验。其中, 静态CRC域在连续的包流中变化的几率很小,如此,为了提高CRC校验的时 间和空间效率,在每一包的静态CRC域不变化的情况下,使用前一次的静态 CRC校验值和本分组数据包头部数据的动态CRC域一起对本分组数据包头部 数据进行CRC校验值。即,RFC3095协议提出了在静态CRC域变化的情况下 才需要进行静态CRC校验值的计算,但是RFC3095协议却没有给出如何判断 静态CRC域是否发生变化的手段。

因此,为了实现静态CRC域的校验,目前较为常用方法有:

一、对每个分组数据包头部数据都进行静态域CRC校验;

二、每次都获取本分组数据包头部数据的静态CRC域与前一个分组数据包 头部数据的静态CRC域进行比较,从而判定是否需要对本分组数据包头部数据 的静态CRC域进行CRC校验。

这两种方法存在如下的缺点:

1、当静态CRC域没有发生变化时,这两种方式都进行了静态CRC域的获 取,对执行效率有影响。

2、第一种方法需要每个分组数据包头部数据的静态CRC域进行校验,不 符合RFC3095协议关于在静态CRC域变化的情况下才需要进行静态CRC校验 值的计算的规定,同时大大降低了压缩解压缩的效率。

发明内容

有鉴于此,本发明的主要目的在于提供一种鲁棒性头压缩中的静态域CRC 校验方法和装置,以解决现有技术中进行静态域CRC校验时执行效率低的问 题。

为达到上述目的,本发明的技术方案是这样实现的:

一种鲁棒性头压缩中的静态域CRC校验方法,该方法包括:

当本分组数据包为第一个分组数据包时,对本分组数据包的静态CRC域进 行CRC校验值的计算;

当本分组数据包不为第一个分组数据包时,判断静态CRC域是否发生变 化,根据判断结果,对本分组数据包的静态CRC域进行CRC校验值的计算, 或者,将上一次计算的静态CRC校验值作为本分组数据包的静态CRC校验值。

所述判断静态CRC域是否发生变化,包括:将本分组数据包的静态CRC 域与上一次进行静态CRC校验值计算的静态CRC域进行比较,若本分组数据 包的静态CRC域与上一次进行静态CRC校验值计算的静态CRC域不同,则静 态CRC域发生变化;否则,静态CRC域未发生变化。

所述判断静态CRC域是否发生变化之前,该方法还包括:

当本分组数据包不为第一个分组数据包时,获取并判断本分组数据包使用 的压缩包类型;

当所述压缩包是IR包或IR-DYN包时,获取本分组数据包的静态CRC域, 判断静态CRC域是否发生变化;或者,当所述压缩包不是IR包和IR-DYN包、 且所述压缩包携带的扩展3中对IP位或IP2位或RTP位置位时,获取本分组数 据包的静态CRC域,判断静态CRC域是否发生变化。

静态CRC域发生变化时,对本分组数据包的静态CRC域进行CRC校验值 的计算;

静态CRC域未发生变化时,将上一次计算的静态CRC校验值作为本分组 数据包的静态CRC校验值。

所述方法还包括:所述压缩包不是IR包和IR-DYN包、且所述压缩包未携 带扩展3时,或者,所述压缩包不是IR包或IR-DYN包、且所述压缩包携带的 扩展3中未对IP位、IP2位和RTP位中任意一个置位时,将上一次计算的静态 CRC校验值作为本分组数据包的静态CRC校验值。

一种鲁棒性头压缩中的静态域CRC校验装置,该装置包括:

数据包判断模块,用于判断本分组数据包是否为第一个分组数据包,并得 到判断结果;

校验模块,用于根据数据包判断模块的判断结果,当本分组数据包为第一 个分组数据包时,对本分组数据包的静态CRC域进行CRC校验值的计算;当 本分组数据包不为第一个分组数据包时,判断静态CRC域是否发生变化,根据 判断结果,对本分组数据包的静态CRC域进行CRC校验值的计算,或者,将 上一次计算的静态CRC校验值作为本分组数据包的静态CRC校验值。

所述校验模块包括:

校验子模块,用于当本分组数据包为第一个分组数据包时,对本分组数据 包的静态CRC域进行CRC校验值的计算;

静态CRC域判断子模块,用于获取本分组数据包的静态CRC域,将本分 组数据包的静态CRC域与上一次进行静态CRC校验值计算的静态CRC域进行 比较,若本分组数据包的静态CRC域与上一次进行静态CRC校验值计算的静 态CRC域不同,则判定静态CRC域发生变化;否则,判定静态CRC域未发生 变化。

所述校验模块还包括:压缩包判断子模块,用于当本分组数据包不为第一 个分组数据包时,获取并判断本分组数据包使用的压缩包类型,当所述压缩包 是IR包或IR-DYN包时,通知静态CRC域判断子模块进行静态CRC域是否发 生变化的判断;或者,当所述压缩包不是IR包或IR-DYN包、且所述压缩包携 带的扩展3中对IP位或IP2位或RTP位置位时,通知静态CRC域判断子模块 进行静态CRC域是否发生变化的判断。

所述校验子模块,还用于在静态CRC域判断子模块判定静态CRC域发生 变化时,对本分组数据包的静态CRC域进行CRC校验值的计算;在静态CRC 域判断子模块判定静态CRC域未发生变化时,将上一次计算的静态CRC校验 值作为本分组数据包的静态CRC校验值。

所述校验子模块,还用于在压缩包判断子模块判定所述压缩包不是IR包或 IR-DYN包、且所述压缩包未携带扩展3时,或者,所述压缩包不是IR包或 IR-DYN包、且所述压缩包携带的扩展3中未对IP位、IP2位和RTP位中任意 一个置位时,将上一次计算的静态CRC校验值作为本分组数据包的静态CRC 校验值。

本发明鲁棒性头压缩中的静态域CRC校验方法和装置:当本分组数据包为 第一个分组数据包时,对本分组数据包的静态CRC域进行CRC校验值的计算; 当本分组数据包不为第一个分组数据包时,判断静态CRC域是否发生变化,根 据判断结果,对本分组数据包的静态CRC域进行CRC校验值的计算,或者, 将上一次计算的静态CRC校验值作为本分组数据包的静态CRC校验值。如此, 在静态CRC域未发生变化时,不需要获取静态CRC域进行CRC校验,符合 RFC3095协议的规定,且提高了CRC校验的执行效率和代码的执行效率。

附图说明

图1为本发明鲁棒性头压缩中的静态域CRC校验过程示意图;

图2为本发明实施例一的鲁棒性头压缩中的静态域CRC校验装置示意图;

图3为本发明实施例二的鲁棒性头压缩中的静态域CRC校验装置示意图。

具体实施方式

下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。

本发明鲁棒性头压缩中的静态域CRC校验方法的基本思想是:当本分组数 据包为第一个分组数据包时,对本分组数据包的静态CRC域进行CRC校验值 的计算;当本分组数据包不为第一个分组数据包时,判断静态CRC域是否发生 变化,根据判断结果,对本分组数据包的静态CRC域进行CRC校验值的计算, 或者,将上一次计算的静态CRC校验值作为本分组数据包的静态CRC校验值。

其中,判断静态CRC域是否发生变化,为:将本分组数据包的静态CRC 域与上一次进行静态CRC校验值计算的静态CRC域进行比较,若本分组数据 包的静态CRC域与上一次进行静态CRC校验值计算的静态CRC域不同,则静 态CRC域发生变化;否则,静态CRC域未发生变化。

优选地,静态CRC域发生变化时,对本分组数据包的静态CRC域进行CRC 校验值的计算;静态CRC域未发生变化时,将上一次计算的静态CRC校验值 作为本分组数据包的静态CRC校验值。

在判断静态CRC域是否发生变化之前,还需要执行如下的判断:

当本分组数据包不为第一个分组数据包时,获取并判断本分组数据包使用 的压缩包类型;

当压缩包是IR包或IR-DYN包时,获取本分组数据包的静态CRC域,判 断静态CRC域是否发生变化;或者,当压缩包不是IR包或IR-DYN包、且压 缩包携带的扩展3中对IP位或IP2位或RTP位置位时,获取本分组数据包的静 态CRC域,判断静态CRC域是否发生变化。

另外,当压缩包不是IR包或IR-DYN包、且压缩包未携带扩展3时,或者, 压缩包不是IR包或IR-DYN包、且压缩包携带的扩展3中未对IP位、IP2位和 RTP位中任意一个置位时,将上一次计算的静态CRC校验值作为本分组数据包 的静态CRC校验值。

通过上述方法,在静态CRC域未发生变化时,不需要获取静态CRC域进 行CRC校验,符合RFC3095协议的规定,且提高了CRC校验的执行效率和代 码的执行效率。

下面通过具体的实施例对上述方案进行进一步的说明。

如图1所示为本发明鲁棒性头压缩中的静态域CRC校验过程,包括如下步 骤:

步骤101,判断本分组数据包是否为第一个分组数据包,如果是进入步骤 102,否则进行步骤104。

步骤102,获取本分组数据包的静态CRC域,进入步骤103。

步骤103,存储本分组数据包的静态CRC域并进行静态CRC校验值的计 算,然后,使用该静态CRC校验值与本分组数据包的动态CRC域进行本分组 数据包的CRC校验,流程结束。

步骤104,获取本分组数据包使用的压缩包类型,进入步骤105。

步骤105,如果本分组数据包使用的压缩包是IR包或IR-DYN包,则进入 步骤106,否则进入步骤109。

步骤106,获取本分组数据包的静态CRC域,进入步骤107。

步骤107,将本分组数据包的静态CRC域与上一次进行静态CRC校验值 计算的静态CRC域进行比较,如果两者不同,即静态CRC域发生了变化,则 进入步骤103,否则进入步骤108。

步骤108,将上一次计算的静态CRC校验值作为本分组数据包的静态CRC 校验值,然后,使用该静态CRC校验值与本分组数据包的动态CRC域进行本 分组数据包的CRC校验,流程结束。

步骤109,如果本分组数据包使用的压缩包不是IR和IR-DYN包,那么判 断压缩包是否携带扩展3且扩展3中IP位或IP2位或RTP位是否置位,如果是, 进入步骤106,否则进入步骤108。

该步骤的实质为:在压缩包不是IR包也不是IR-DYN包的情况下,如果压 缩包携带了扩展3、且扩展3中的IP位或IP2位或RTP位置位,则获取本分组 数据包的静态CRC域,进行静态CRC域是否发生变化的判断;反之,即如果 压缩包携带未携带扩展3,后者,携带了扩展3、但扩展3中的IP位、IP2位和 RTP位中的任意一个未置位,那么将上一次计算的静态CRC校验值作为本分组 数据包的静态CRC校验值。

为了实现上述方法,如图2所示,本发明提供了一种鲁棒性头压缩中的静 态域CRC校验装置,其中:

数据包判断模块,用于判断本分组数据包是否为第一个分组数据包,并得 到判断结果;

校验模块,用于根据数据包判断模块的判断结果,当本分组数据包为第一 个分组数据包时,对本分组数据包的静态CRC域进行CRC校验值的计算;当 本分组数据包不为第一个分组数据包时,判断静态CRC域是否发生变化,根据 判断结果,对本分组数据包的静态CRC域进行CRC校验值的计算,或者,将 上一次计算的静态CRC校验值作为本分组数据包的静态CRC校验值。

优选地,如图3所示,校验模块包括:

校验子模块,用于当本分组数据包为第一个分组数据包时,对本分组数据 包的静态CRC域进行CRC校验值的计算;

静态CRC域判断子模块,用于当本分组数据包不为第一个分组数据包时, 获取本分组数据包的静态CRC域,将本分组数据包的静态CRC域与上一次进 行静态CRC校验值计算的静态CRC域进行比较,若本分组数据包的静态CRC 域与上一次进行静态CRC校验值计算的静态CRC域不同,则判定静态CRC域 发生变化;否则,判定静态CRC域未发生变化。

校验模块还包括:压缩包判断子模块,用于当本分组数据包不为第一个分 组数据包时,获取并判断本分组数据包使用的压缩包类型,当压缩包是IR包或 IR-DYN包时,通知静态CRC域判断子模块进行静态CRC域是否发生变化的 判断;或者,当压缩包不是IR包或IR-DYN包、且压缩包携带的扩展3中对IP 位或IP2位或RTP位置位时,通知静态CRC域判断子模块进行静态CRC域是 否发生变化的判断。

校验子模块,还用于在静态CRC域判断子模块判定静态CRC域发生变化 时,对本分组数据包的静态CRC域进行CRC校验值的计算;在静态CRC域判 断子模块判定静态CRC域未发生变化时,将上一次计算的静态CRC校验值作 为本分组数据包的静态CRC校验值。

校验子模块,还用于在压缩包判断子模块判定压缩包不是IR包或IR-DYN 包、且压缩包未携带扩展3时,或者,压缩包不是IR包或IR-DYN包、且压缩 包携带的扩展3中未对IP位、IP2位和RTP位中任意一个置位时,将上一次计 算的静态CRC校验值作为本分组数据包的静态CRC校验值。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范 围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号