专利名称:鲁棒性头压缩的上下文标识的处理方法和设备的制作方法
技术领域:
本发明实施例涉及无线通信领域,并且更具体地,涉及鲁棒性头压缩的上下文标识的处理方法和设备。
背景技术:
鲁棒性头压缩(Robust Header Compression,简称R0HC)提供了一种压缩网络协议(Internet Protocol,简称 IP) / 用户数据报协议(User Datagram Protocol,简称 UDP)/实时传输协议(Real-time Transport Protocol,简称RTP)包的方法,能够够在极差的信道条件下将ー个IP/m)P/RTP包压缩到一个字节左右。ROHC提高了在无线网络上承载IP流的性能,广泛应用于无线网络和移动IP电话中,以减少包头开销、包丢失率和提高交互响 应性能。上下文(Context)是ROHC中的重要内容。上下文保存着一个流的相关信息,在压缩端和解压端都有ー个上下文,压缩和解压操作都基于上下文进行。每个上下文对应ー个上下文标识(Context Identifier,简称CID)。目前ROHC压缩协议中并没有对CID更新方法进行详细描述。传统的更新CID的方法包括针对每个用户的每个承载的每个流(每个流对应ー个CID)进行时间计数,记录它们到来的时间。然后根据记录的每个流的到来时间来更新CID。采用这种方案,在时间计数器发生溢出时,无法准确地判断CID的时间早晩,导致CID的更新发生错误。此外,在新的流到来时,新的流的CID需要与先前已经到来的流的CID的到来时间进行多次比较,耗费时间。此外,在无线网络支持的用户数量增多时,更新CID耗费的资源将加大。
发明内容
本发明实施例提供一种鲁棒性头压缩的上下文标识的处理方法,能够利用简单的方法实现CID的更新,占用的资源较少,更新CID的可靠性高,提高了资源利用率。一方面,提供了一种鲁棒性头压缩的上下文标识CID的处理方法,所述方法包括接收第一数据流;判断所述第一数据流的CID编号是否存在于寄存器组中,其中所述寄存器组用于按照接收的数据流的接收时间顺序存储所述数据流的CID编号;如果所述第一数据流的CID编号已经存在于所述寄存器组中,则将所述寄存器组中接收时间晚于第二数据流的数据流的CID编号向历史方向依次移位寄存,以空出所述寄存器组中预设用于存储最新数据流的CID编号的寄存器,其中所述第二数据流是所述寄存器组中先前寄存的与所述第一数据流的CID编号相同的数据流;将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。另ー方面,提供了一种鲁棒性头压缩的上下文标识的处理设备,所述设备包括
接收单元,用于接收第一数据流;寄存器组,用于按照接收的数据流的接收时间顺序存储所述数据流的CID编号;第一判断単元,用于判断所述第一数据流的CID编号是否存在于所述寄存器组中;处理单元,用于在第一判断単元判断结果为所述第一数据流的CID编号已经存在于所述寄存器组中的情况下,将所述寄存器组中接收时间晚于第二数据流的数据流的CID编号向历史方向依次移位寄存,以空出所述寄存器组中预设用于存储最新数据流的CID编号的寄存器,其中所述第二数据流 是所述寄存器组中先前寄存的与所述第一数据流的CID编号相同的数据流;并且所述处理単元还用于将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。根据本发明实施例,可以利用较少的缓存资源,实现对CID的存储和可靠地更新,消除了以时间计数器来进行CID更新判断而计数器发生溢出时发生的错误判断问题。同吋,CID的更新过程简単,耗费资源较少。
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的ー些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是根据本发明实施例的ROHC的CID处理方法的示意流程图;图2是本发明实施例在具体应用场景下,CID编号更新前的寄存器组示意图;图3是本发明实施例在具体应用场景下,CID编号更新后的寄存器组示意图;图4是本发明实施例在具体应用场景下,CID编号更新前的寄存器组示意图;图5是本发明实施例在具体应用场景下,CID编号更新后的寄存器组示意图;图6是本发明实施例在具体应用场景下,CID编号更新前的寄存器组示意图;图7是本发明实施例在具体应用场景下,CID编号更新后的寄存器组示意图;图8是根据本发明实施例的ROHC的CID处理设备的示意结构图;图9是根据本发明实施例的ROHC的CID处理设备进ー步细化方案的示意结构图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图I是根据本发明实施例的ROHC的CID的处理方法100的示意流程图。如图I所示,方法100包括110:接收第一数据流;120 :判断所述第一数据流的CID编号是否存在于寄存器组中,其中所述寄存器组用于按照接收的数据流的接收时间顺序存储所述数据流的CID编号;130 :如果所述第一数据流的CID编号已经存在于所述寄存器组中,则将所述寄存器组中接收时间晚于第二数据流的数据流的CID编号向历史方向依次移位寄存,以空出所述寄存器组中预设用于存储最新数据流的CID编号的寄存器,其中所述第二数据流是所述寄存器组中先前寄存的与所述第一数据流的CID编号相同的数据流;140 :将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。以下结合具体的应用场景,举例说明本发明实施例的技术方案。为了快速更新上下文标识(Context Identifier,简称CID),根据姆个用户所建立的承载所支持的数据流的个数建立寄存器组,所述寄存器组的寄存器的数量例如等于每个用户所建立的承载所支持的数据流的个数N,并且每个寄存器的长度大于或等于「log2比 特,其中「I为向上取整函数。由于每个数据流对应ー个CID,可以通过为每个CID设置ー 个简单的编号,以便快速更新CID。建立寄存器组来保存与CID对应的编号,既能满足快速更新数据流的CID的需求,同时也能节省存储空间。例如,用户所建立的每个承载最多支持8个数据流,则寄存器组可以包括8个寄存器,每个寄存器长度为3bit。再例如用户所建立的每个承载最多支持16个数据流,则寄存器组可以包括8个寄存器,每个寄存器为4bit。本领域技术人员可以理解,寄存器组所包括的寄存器数量和每个寄存器的比特数可以根据每个承载最多支持的数据流的个数来确定。寄存器组中寄存器的数量可以少于每个承载最多支持的数据流的个数。这种情况下,寄存器仅保存一部分数据流的CID编号。在数据流到来时,可以根据接收的数据流的接收时间顺序为数据流的CID设置编号,例如第一个接收的数据流的CID编号设置为I。以后接收的数据流,可以对其CID进行顺序编号,例如第二个接收的数据流的CID编号设置为2,以此类推。在寄存器组中,可以预先确定存储CID编号的顺序,例如寄存器组中预设存储最新接收的数据流的CID编号的寄存器,例如寄存器indexO中存储最新接收的数据流的CID编号,即最晚到来的数据流的CID编号,而index7中存储最老的数据流的CID编号,即最早接收的数据流的CID编号。根据这种设置,可以称从indexO到index7的方向为历史方向,即从存储最新的数据流的CID编号的寄存器到存储最老的数据流的CID编号的寄存器的方向。当有数据流到来吋,首先判断数据流是否为新数据流。这里的新数据流指的是该数据流先前未接收过,而且该数据流的CID尚未设置编号,也未存储于所述寄存器组中。在本说明书中,为了便于描述和区分,将目前接收的数据流称为第一数据流,接收到第一数据流时,先前已经接收到的数据流的CID编号已经存储在寄存器组中。这里要注意,先前已经接收到的数据流可能是多个数据流,也可能是ー个数据流。如果接收到的第一数据流为第一个数据流,先前已经接收到的数据流的个数为零。在确定第一数据流为新数据流的情况下,接着判断所述寄存器组是否被先前已经接收到的数据流的CID编号占满。在确定所述寄存器组未被先前已经接收到的数据流的CID编号占满的情况下,根据寄存器组中存储的先前已经接收到的数据流的CID编号的数量,对第一数据流的CID进行编号。接着,将先前已经接收到的数据流的CID编号向历史方向依次移位一位,同时保持数据流的CID编号之间的相对顺序不变,然后将第一数据流的CID编号存储在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。当然,如果接收的第一数据流为第一个数据流,即此时不存在先前已经接收到的数据流,则直接将第一数据流的CID编号设置为初始编号,例如设置为1,并将第一数据流的CID编号存储在所述寄存器组中预设用于存储最新数据流的CID编号的位置。根据本发明实施例的一种优选方案,对数据流按照接收的时间顺序对其CID进行编号,例如接收的第一个数据流,其CID编号为I,接收的第二个数据流,其CID编号为2,依次类推。下面以所述寄存器组包括8个寄存器的具体例子来例述本发明实施例的技术方案。在该具体例子中,寄存器组包括8个寄存器,由indexO至index7来指示,其中indexO所指示的寄存器(简称indexO寄存器)预设存储最新的数据流的CID编号,而index7寄存器中存储最早接收的数据流的CID编号。
根据发明实施例,如图2和3所示,接收到第一数据流,判断所述第一数据流的CID编号是否存在于寄存器组中,即判断所述第一数据流是否为新数据流。如果所述第一数据流的CID编号已经存在于所述寄存器组中,即所述第一数据流为旧的数据流,先前已经接收过,则将所述寄存器组中接收时间晚于第二数据流的数据流的CID编号向历史方向依次移位寄存,以空出所述寄存器组中预设用于存储最新数据流的CID编号的寄存器,其中所述第二数据流是所述寄存器组中寄存的与所述第一数据流的CID编号相同的数据流,即所述第二数据流对应于先前接收的与第一数据流相同的数据流。然后,将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。以上例为具体应用场景,结合图2和图3例述这种情况。如图2所示,接收到第一数据流,且确定第一数据流不是新数据流,例如确定第一数据流为CID编号为3的第二数据流,此时寄存器组中存储的CID编号为1、5、7、2、3、6、8、4,即先前已经接收到的数据流的个数为8个,寄存器组被先前已经接收到的数据流的CID编号完全占满,其中CID编号I存储在indexO寄存器中。此时将较之CID编号3的第二数据流接收地晚的先前已经接收到的数据流,即CID编号为1、5、7、2的数据流的CID编号依次向历史方向移位寄存,即向index7寄存器方向移位。移位之后,第一数据流的CID编号设置为与其对应的第二数据流的CID编号3,并且将CID编号3存储在indexO寄存器中。如图3所示,现在寄存器组中的CID编号从indexO开始依次为3、1、5、7、2、6、8、4。这里要注意,较之CID编号3的第二数据流接收地更早的数据流,即CID编号6、8、4的数据流,它们的CID编号没有移位。如图4和5所示,接收到第一数据流,如果所述第一数据流的CID编号不存在于所述寄存器组中,此时寄存器组中存储的数据流的CID编号为1、4、3、2,即先前已经接收到的数据流的个数为4,其中CID编号I存储在indexO寄存器中,如图4所示。现在判断所述寄存器组是否被CID编号完全占用。如果所述寄存器组未被CID编号完全占用,则根据所述寄存器组中寄存的CID编号的个数,对所述第一数据流的CID进行顺序编号。在本例中,寄存器组中的CID编号的个数为4,则将第一数据流的CID编号设置为5。然后将接收时间早于所述第一数据流的数据流的CID编号向历史方向依次移位寄存,即向index7寄存器方向移位,并且并将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中,例如将第一数据流的CID编号5存储在indexO寄存器中。移位之后,如图5所示,寄存器组中的CID编号从indexO开始依次为5、1、4、3、2。
根据本发明实施例,如果所述寄存器组被CID编号完全占用,则将所述第一数据流的CID编号设置为所述寄存器组中寄存的接收时间最早的数据流的CID编号,然后移除所述收时间最早的数据流的CID编号,将其余的接收时间早于所述第一数据流的数据流的CID编号向历史方向依次移位寄存,并将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。仍以上例为具体应用场景,结合图6和图7例述这种情况。如图6所示,接收到第ー数据流,且确定第一数据流为新数据流,此时寄存器组中存储的先前接收到的数据流的CID编号为1、5、7、2、3、6、8、4,即先前接收到的数据流的个数为8个,寄存器组被数据流的CID编号完全占满,其中CID编号I存储在ind exO寄存器中。由于寄存器组被完全占满,此时移除接收时间最早的数据流的CID编号4,并将第一数据流的CID编号设置为最早接收的数据流的CID编号4,并且将CID编号4存储在indexO寄存器中,其他数据流的CID编号依次向历史方向移位,即向index7寄存器方向移位。移位之后,如图7所示,寄存器组中的CID编号从indexO开始依次为4、1、5、7、2、3、6、8。这样的操作表示早期接收到的以CID编号4存储的数据流的CID移出寄存器组,不再保存。根据本发明实施例,可以利用较少的缓存资源,实现对CID的存储和可靠地更新,消除了以时间计数器来进行CID更新判断而计数器发生溢出时发生的错误判断问题。同吋,CID的更新过程简単,耗费资源较少。特别是在小区支持的用户数量庞大时,可以显著节省系统资源。例如以当前的宏基站要求来看,按照基站支持6个小区、每小区1200个用户、每个用户5个承载、每个承载8个数据流来计算,本发明实施例比现有技术节省了将近7M比特的缓存资源。根据本发明实施例,提出了实现本发明实施例的方法的设备。如图8所示,根据本发明实施例的设备800包括接收单元810,用于接收第一数据流;寄存器组820,用于按照接收的数据流的接收时间顺序存储所述数据流的CID编号;第一判断単元830,用于判断所述第一数据流的CID编号是否存在于所述寄存器组中; 处理单元840,用于在第一判断単元830判断结果为所述第一数据流的CID编号已经存在于所述寄存器组820中的情况下,将所述寄存器组820中接收时间晚于第二数据流的数据流的CID编号向历史方向依次移位寄存,以空出所述寄存器组820中预设用于存储最新数据流的CID编号的寄存器,其中所述第二数据流是所述寄存器组820中寄存的与所述第一数据流的CID编号相同的数据流;并且所述处理単元840还用于将所述第一数据流的CID编号寄存在所述寄存器组820中预设用于存储最新数据流的CID编号的寄存器中。如图9所示,根据本发明实施例,所述设备800进ー步包括第二判断単元850,用于在所述第一判断単元830判断结果为所述第一数据流的CID编号不存在于所述寄存器组820中的情况下,判断所述寄存器组820是否被CID编号完全占用;在所述第二判断単元850判断结果为所述寄存器组820未被CID编号完全占用的情况下,所述处理単元840用于根据所述寄存器组820中寄存的CID编号的数量,对所述第一数据流的CID进行顺序编号,并且所述处理単元840还用于将接收时间早于所述第一数据流的数据流的CID编号向历史方向依次移位寄存,并将所述第一数据流的CID编号寄存在所述寄存器组820中预设用于存储最新数据流的CID编号的寄存器中。根据本发明实施例,在所述第二判断単元850判断结果为所述寄存器组820被CID编号完全占用的情况下,所述处理単元840用于将所述第一数据流的CID编号设置为所述寄存器组820中寄存的接收时间最早的数据流的CID编号,并且所述处理単元840还用于移除所述接收时间最早的数据流的CID编号,将其余的接收时间早于所述第一数据流的数据流的CID编号向历史方向依次移位寄存,并将所述第一数据流的CID编号寄存在所述寄存器组820中预设用于存储最新数据流的CID编号的寄存器中。根据本发明实施例,所述寄存器组的寄存器的数量根据每个用户所建立的承载所支持的数据流的个数N来确定,并且每个寄存器的长度大于或等于「log:,め比特,其中「”为向上取整函数。 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和単元的具体工作过程,可以參考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另ー个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过ー些接ロ,装置或単元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的単元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理単元,即可以位于ー个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能単元可以集成在一个处理単元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。所述功能如果以软件功能単元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在ー个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM, Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
1.一种鲁棒性头压缩的上下文标识CID的处理方法,其特征在于,所述方法包括 接收第一数据流; 判断所述第一数据流的CID编号是否存在于寄存器组中,其中所述寄存器组用于按照接收的数据流的接收时间顺序存储所述数据流的CID编号; 如果所述第一数据流的CID编号已经存在于所述寄存器组中,则将所述寄存器组中接收时间晚于第二数据流的数据流的CID编号向历史方向依次移位寄存,以空出所述寄存器组中预设用于存储最新数据流的CID编号的寄存器,其中所述第二数据流是所述寄存器组中先前寄存的与所述第一数据流的CID编号相同的数据流; 将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。
2.如权利要求I所述的方法,其特征在干, 如果所述第一数据流的CID编号不存在于所述寄存器组中,则判断所述寄存器组是否被CID编号完全占用; 如果所述寄存器组未被CID编号完全占用,则根据所述寄存器组中寄存的CID编号的个数,对所述第一数据流的CID进行顺序编号; 将接收时间早于所述第一数据流的数据流的CID编号向历史方向依次移位寄存,并将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。
3.如权利要求2所述的方法,其特征在干, 如果所述寄存器组被CID编号完全占用,则将所述第一数据流的CID编号设置为所述寄存器组中寄存的接收时间最早的数据流的CID编号; 移除接所述接收时间最早的数据流的CID编号,将其余的接收时间早于所述第一数据流的数据流的CID编号向历史方向依次移位寄存,并将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。
4.如权利要求1-3任一项所述的方法,其特征在于,所述寄存器组的寄存器的数量根据每个用户所建立的承载所支持的数据流的个数N来确定,并且每个寄存器的长度大于或等于 ο、#]比特,其中「I为向上取整函数。
5.一种鲁棒性头压缩的上下文标识的处理设备,其特征在于,所述设备包括 接收单元,用于接收第一数据流; 寄存器组,用于按照接收的数据流的接收时间顺序存储所述数据流的CID编号; 第一判断単元,用于判断所述第一数据流的CID编号是否存在于所述寄存器组中;处理单元,用于在所述第一判断単元判断结果为所述第一数据流的CID编号已经存在于所述寄存器组中的情况下,将所述寄存器组中接收时间晚于第二数据流的数据流的CID编号向历史方向依次移位寄存,以空出所述寄存器组中预设用于存储最新数据流的CID编号的寄存器,其中所述第二数据流是所述寄存器组中先前寄存的与所述第一数据流的CID编号相同的数据流; 并且所述处理単元还用于将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。
6.如权利要求5所述的设备,其特征在于,所述设备还包括第二判断単元,用于在所述第一判断単元判断结果为所述第一数据流的CID编号不存在于所述寄存器组中的情况下,判断所述寄存器组是否被CID编号完全占用; 在所述第二判断単元判断结果为所述寄存器组未被CID编号完全占用的情况下,所述处理单元用于根据所述寄存器组中寄存的CID编号的个数,对所述第一数据流的CID进行顺序编号,并且所述处理单元还用于将接收时间早于所述第一数据流的数据流的CID编号向历史方向依次移位寄存,并将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。
7.如权利要求6所述的设备,其特征在干, 在所述第二判断単元判断结果为所述寄存器组被CID编号完全占用的情况下,所述处理单元用于将所述第一数据流的CID编号设置为所述寄存器组中寄存的接收时间最早的数据流的CID编号,并且所述处理単元还用于移除所述接收时间最早的数据流的CID编号,将其余的接收时间早于所述第一数据流的数据流的CID编号向历史方向依次移位寄存,井将所述第一数据流的CID编号寄存在所述寄存器组中预设用于存储最新数据流的CID编号的寄存器中。
8.如权利要求5-7任一项所述的设备,其特征在于,所述寄存器组的寄存器的数量根据每个用户所建立的承载所支持的数据流的个数N来确定,并且每个寄存器的长度大于或等于「log2i¥]比特,其中「I为向上取整函数。
全文摘要
本发明实施例涉及ROHC的CID的处理方法和设备。方法包括接收第一数据流;判断第一数据流的CID编号是否存在于寄存器组中;如果第一数据流的CID编号已经存在于寄存器组中,则将寄存器组中接收时间晚于第二数据流的数据流的CID编号向历史方向依次移位寄存,以空出寄存器组中预设用于存储最新数据流的CID编号的寄存器,其中第二数据流是寄存器组中寄存的与第一数据流的CID编号相同的数据流;将第一数据流的CID编号寄存在寄存器组中预设用于存储最新数据流的CID编号的寄存器中。根据本发明实施例,可以利用较少的缓存资源,实现对CID的存储和可靠地更新。同时,CID的更新过程简单,耗费资源较少。
文档编号H04L29/06GK102694811SQ201210183830
公开日2012年9月26日 申请日期2012年6月6日 优先权日2012年6月6日
发明者杨勋 申请人:华为技术有限公司