CN101243671A - 信号消息压缩器 - Google Patents

信号消息压缩器 Download PDF

Info

Publication number
CN101243671A
CN101243671A CNA2006800299479A CN200680029947A CN101243671A CN 101243671 A CN101243671 A CN 101243671A CN A2006800299479 A CNA2006800299479 A CN A2006800299479A CN 200680029947 A CN200680029947 A CN 200680029947A CN 101243671 A CN101243671 A CN 101243671A
Authority
CN
China
Prior art keywords
memory
length
signaling message
dictionary
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2006800299479A
Other languages
English (en)
Other versions
CN101243671B (zh
Inventor
P·珀西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Oyj filed Critical Nokia Oyj
Publication of CN101243671A publication Critical patent/CN101243671A/zh
Application granted granted Critical
Publication of CN101243671B publication Critical patent/CN101243671B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)

Abstract

一种用于在通信系统中压缩信令消息的方法。所述方法包括以下步骤:接收信令消息的一部分;在存储器中检测信令消息的所述部分的副本;将所检测部分的长度与所存储的长度值进行比较;以及根据比较步骤的输出来执行在存储器中存储信令消息的所检测部分的步骤。

Description

信号消息压缩器
技术领域
本发明涉及通信系统,并且尤其涉及处理SIP消息的通信会话中的信号消息压缩器。
背景技术
通信系统可以看作是这样一种设施,该设施支持在两个或者更多实体(诸如,用户设备和/或与通信系统相关联的其他节点)之间的通信会话。通信可以包括例如话音、数据、多媒体等的通信。用户设备例如可以提供有两路电话呼叫或者多路会议呼叫。用户设备可以提供有通往应用提供实体的连接(例如,通往应用服务器(AS)的连接),由此支持使用由应用服务器提供的服务。
通信系统通常根据给定标准或者规范来操作,所述标准或者规范表述了允许与通信系统相关联的各种实体做什么、以及如何实现。例如,标准或者规范可以定义用户,或者更为精确地说,用户设备是否提供有电路交换服务和/或分组交换服务。还可以定义用于连接的通信协议和/或参数。换言之,需要定义通信以此为基础的“规则”的专用集合,以便借助于系统支持通信。
为用户设备提供无线通信的通信系统是已知的。无线系统的一个示例是公用陆地移动网络(PLMN)。另一示例是移动通信系统,所述移动通信系统至少部分地基于通信卫星的使用。还可以借助于其他设置来提供无线通信,诸如借助于无线局域网(WLAN)。在用户设备和通信网元之间的无线接口上的通信可以基于适当的通信协议。可以通过一个或者多个控制实体来控制通信系统的站台装置以及通信所需的其他装置的操作。各种控制实体可以是互联的。还可以提供一个或者多个网关节点用于将通信网络连接到其他网络。例如移动网络可以连接至诸如IP(因特网协议)和/或其他分组交换数据网络的通信网络。
所谓的多媒体服务是一种可以向移动系统的用户提供的服务的示例。一种支持通信系统提供多媒体服务的示例是因特网协议(IP)多媒体网络。可以借助于IP多媒体核心网络(CN)子系统(或者简称为IP多媒体子系统(IMS))来提供IP多媒体(IM)功能。IMS包括用于提供多媒体服务的各种网络实体。
第三代合作伙伴计划(3GPP)已经定义了将通用分组无线服务(GPRS)用作用于提供IMS服务的骨干通信系统,在此给出的GPRS是支持多媒体服务的可能骨干通信系统的一个非限定示例。第三代合作伙伴计划(3GPP)已经定义了用于第三代(3G)核心网络的参考架构,其将向用户设备的用户提供对多媒体服务的接入。此核心网络划分成为三个主要的域。它们是电路交换(CS)域、分组交换(PS)域以及因特网协议多媒体(IM)域。
其中的后者,即IM域是用于确保多媒体服务受到充分的管理。3G IM域支持由因特网工程任务组(IETF)开发的会话发起协议(SIP)。会话发起协议(SIP)是应用层控制协议,用于创建、修改和终止与一个或者多个参与者(端点)的会话。
在用户设备能够与IM CN子系统通信之前,必须执行GPRS附接过程,并且必须建立已知为用于SIP信令的分组数据协议(PDP)上下文的通信信道。
对于低速率的IP连接性,传输延迟是显著的。如在某些流中所需要的那样,呼叫建立和特征调用受到账户重传(accountretransmission)和多消息发送的不利影响。通过提供强健的、损失较少的应用消息的压缩,SigComp协议对此问题提供了一种解决方案。由于涉及沉重的信令以及作为基于文本的协议的SIP,3GPP IMS版本5标准强制SigComp(信令压缩)。
一旦设备接收到SigComp压缩的消息或者将使用SipComp协议压缩未压缩消息的消息,则设备提供具有有限资源以压缩/解压缩消息的虚拟机(UDVM)。
虚拟机其中的能力非常有限。例如,由虚拟机可用的存储器受限于由解压缩/压缩端点所使用的接收缓冲器。分配用于由接收缓冲器和虚拟机使用的存储器总量通常仅是几千字节。这是因为针对SIP端点来说,默认的解压缩存储器大小(dms)是8千字节,由此在用于压缩和解压缩的虚拟机中,指令和数据两者都必须适应于此有限的空间内。虚拟机程序是允许的简单I/O操作:虚拟机可以从压缩的消息输入数据,可以输出解压缩的数据,并且可以创建、访问和释放状态项。状态项是来自先前所接收消息的、虚拟机存储器以内存储的项。
通常,由UDVM使用的存储器是4千字节或者更少。其中的部分由字节码即、以及其变量所消耗。通常,对于存储所接收的压缩消息、所处理的解压缩消息以及任何其他字典的环(ring)缓冲器和其他数据结构,仅有3.5千字节或者更少字节是可用的。当压缩较长消息时,不可能在存储器中完全保持已知的静态(根据算法是3468或者4836字节)和动态字典以及完全压缩的消息。
UDVM仅在接收到协议消息时是活动的。在接收到SigComp消息之后,端点调用UDVM。例如在解压缩中,UDVM执行字节码或者指令来执行解压缩步骤,直到已经完全解压缩该消息或者发生错误。UDVM可以以状态项的形式在UDVM实例之间保存数据。状态项可用以使得压缩更为有效;状态项可用以存储压缩算法或者压缩会话中的压缩上下文。SigComp会话端点称作仓(compartment)。解压缩器可以在每个仓中存储的数据量也是非常有限的,对于SIP端点来说,默认的状态存储器大小(sms)值是2048字节。
通常当启动时,UDVM将来自仓(诸如,SIP字典)的数据、表示在解压缩SIP消息中通常使用的术语的值加载到可用存储器的环缓冲器部分之中。
关于有限存储器的问题会严重限制压缩算法的效率。由于SIP字典状态必须完全适应于在仓以内可用的状态存储器,所以通常不存在用于几个字典的可用空间。如果例如状态存储器大小是2048字节,其包括:字节码(400字节)、初始加载的字典(通常,恢复的第一消息;通常,SIP的初始REGISTER(注册)请求或者响应)占用(700字节),那么,压缩器仅有900字节的存储器空间来加载一个会话专用字典(例如,初始INVITE(邀请)或者“180”响应字典)。
当与不可靠信道(例如,针对UDP连接)工作时,有限的状态存储器大小还防止SipComp压缩器更新动态字典状态。这是因为,当压缩器尝试更新状态时,在端点之间的应答的任何损失都可导致字典同步的丧失。
使用上述典型数值,当压缩器发送两个消息时(其中每个消息打算更新动态状态(每个700字节)),更新的以及旧状态的结合大小超过可用状态存储器(400+700+700+700>2048),并且由此压缩器不能确定哪些动态字典状态在解压缩器中存储。
使用不可靠链接的本发明允许压缩器仅在该压缩器确保在状态存储器中具有可用于旧字典和新字典二者的可用存储空间时更新该动态字典。由此,如果更新失败或者压缩器没有接收到应答,则压缩器明确地释放更新失败的字典的存储器空间,或者使用已知的和更新的字典两者。
由此,有限状态和压缩/解压缩存储器大小的结合、以及典型字典大小导致了有限字典容量以及有限更新能力的问题。此外,这些限制还导致,当缓冲器指针在附加到环缓冲器之后对处理消息解压缩数据进行环绕(wrap round)时,覆盖环缓冲器存储的字典。所有这三个问题都导致压缩/解压缩算法的效率降低,其中由于所存储的解压缩消息通常用于未来的压缩/解压缩实例,其产生了较大的字典大小并进一步降低了效率。
发明内容
本发明的实施方式旨在至少部分地解决上述问题。
根据本发明,提供了一种用于在通信系统中压缩信令消息的方法,所述方法包括以下步骤:接收信令消息的一部分;在存储器中检测所述信令消息的所述部分的副本;将所检测部分的长度与所存储的长度值进行比较;以及,根据所述比较步骤的输出,执行在所述存储器中存储所述信令消息的所检测部分的步骤。
可以仅在比较步骤确定所存储的长度值大于所检测部分的长度的之后执行存储步骤。
存储器可以包括第一存储器部分以及第二存储器部分,所述方法可以进一步包括确定步骤,所述确定步骤确定在存储器的哪部分中检测到所述信令消息的所述部分的所述副本。
存储的长度值可以依赖于所述确定步骤,所述确定步骤确定在存储器的哪部分中检测到所述信令消息的所述部分的所述副本。
第一存储器部分可以包括字典。
字典可以包括以下至少一个:动态字典和静态字典。
当在所述第一存储器部分中检测到所述信令消息的部分时,所存储的长度值可以是4字节。
当在所述第二存储器部分中检测到所述信令消息的部分时,所存储的长度值可以是7字节。
存储器可以包括环缓冲器。
根据本发明的第二方面,提供了一种通信设备,用于在通信系统中压缩信令消息,包括:存储器;数据检测器,设置以在所述存储器中检测所述信令消息的一部分的副本、并设置以输出任何所检测部分的长度;长度比较器,设置以将所检测部分的长度与长度值进行比较;以及存储器控制器,设置以从所述长度比较器接收输出,所述存储器控制器设置以基于所接收的长度比较器输出,来将所述信令消息的所检测部分存储至所述存储器。
所述存储器可以包括第一存储器部分以及第二存储器部分。
所述通信设备可以进一步包括位置读取器,设置以在所述存储器中检测所检测部分的副本的位置,以及其中所述位置读取器可以被设置以根据所检测的位置来向所述长度比较器输出长度值。
位置读取器可以被设置以在读取器检测到所述副本是在第一部分中时输出第一长度值,并且在所述读取器检测到所述副本是在第二部分中时输出第二长度值。
第一存储器部分可以包括字典。
字典可以包括以下至少一个:动态字典以及静态字典。
存储器可以是环缓冲器。
环缓冲器可以是虚拟机中的环缓冲器。
虚拟机可以是通用压缩器虚拟机。
根据本发明的第三方面,提供了一种计算机程序产品,设置以执行用于在通信系统中压缩信令消息的方法,所述方法包括步骤:接收信令消息的一部分;在存储器中检测所述信令消息的所述部分的副本;将所检测部分的长度与所存储的长度值进行比较;以及,根据所述比较步骤的输出,执行在所述存储器中存储所述信令消息的所检测部分的步骤。
附图说明
为了更好地理解本发明,现在将通过示例的方式参考附图,其中:
图1示出了其中可以实现本发明的通信系统环境的示意图;
图2是典型解压缩UDVM存储器系统的示意图,示出了在存储器块内的典型字典的操作;
图3示出了根据本发明的一个实施方式的在压缩操作期间的UDVM操作的流程图;以及
图4示出了根据本发明的一个实施方式的在解压缩操作期间的UDVM的操作的流程图。
具体实施方式
将参考第三代(3G)移动通信系统的示范性架构,借助于示例的方式描述本发明的特定实施方式。然而,应该理解,实施方式适用于任意适合的通信系统。
对图1进行参考,图1示出了其中可以实现本发明的网络架构的示例。在图1中,IP多媒体网络45提供用于对IP多媒体网络订户提供IP多媒体服务。
如上所述,可借助于移动通信系统来提供对IP多媒体(IM)服务的接入。移动通信系统通常设置以经由在用户设备和通信系统的至少一个基站31之间的无线接口来服务于多个移动用户设备。移动通信系统可以逻辑地划分为无线接入网络(RAN)和核心网络(CN)。
基站31设置以经由在用户设备和无线接入网络之间的无线接口,向移动用户设备30传送信号并从其接收信号。相应地,移动用户设备30能够经由无线接口向无线接入网络传送信号并从其接收信号。
在示出的设置中,用户设备30可以经由与基站31相关联的接入网络接入IMS网络45。应该理解,尽管为了清楚起见,图1仅示出了一个无线接入网络的基站,但典型的通信网络系统通常包括多个无线接入网络。
通常由适合的无线网络控制器(RNC)控制3G无线接入网络(RAN)。为了清楚起见,并未示出此控制器。可以为每个基站指定控制器,或者控制器可以例如在无线接入网络水平控制多个基站。应该理解,无线网络控制器的名称、位置和数量依赖于系统。
图1的移动用户设备30可以包括任何适当的移动用户设备,所述移动用户设备适用于针对因特网协议(IP)通信来连接网络。例如,移动用户可以借助于个人计算机(PC)、个人数字助理(PDA)、移动台(MS)等来接入蜂窝网络。参考移动台来描述以下示例。
本领域技术人员熟悉典型移动台的特征和操作。由此,应充分理解到,用户可以使用移动台来执行诸如以下的任务,所述任务诸如执行和接收电话呼叫、从网络接收数据以及向网络发送数据、以及体验多媒体内容、或者使用多媒体服务。移动台可以包括天线,用于无线地从移动通信网络的基站接收信号、以及向移动通信网络的基站传送信号。移动台还可以提供有显示器,用于为移动用户设备的用户来显示图像以及其他图形信息。相机装置可以提供用于捕获静态或者视频图像。通常还提供扬声器装置。移动台的操作可以借助于诸如控制按钮、语音命令等适当的用户接口来控制。此外,移动台提供有处理器实体和存储器装置。
应该理解,尽管为了清楚起见而在图1中仅示出了少数移动台,但较大数量的移动台可以同时与通信系统通信。
通常,为了使得能够经由多个无线接入网络通信、以及为了将单个通信系统与一个或者多个通信系统(诸如,与其他蜂窝系统和/或固定线路通信系统)进行接口连接,核心网络(CN)包括各种交换和其他控制实体、以及网关。在3GPP系统中,无线接入网络通常连接至一个或者多个适当的核心网络实体,诸如但不限于服务通用分组无线服务支持节点(SGSN)33。无线接入网络经由适当的接口(例如,在lu接口上)与服务GPRS支持节点来通信。进而,服务GPRS支持节点通常与适当的网关通信,例如经由GPRS骨干网络32与网关GPRS支持节点34进行通信。此接口通常是交换分组数据接口。
在3GPP网络中,建立分组数据会话以在网络之上携带业务流。此分组数据会话通常称作分组数据协议(PDP)上下文。PDP上下文可以包括在用户设备和无线网络控制器之间提供的无线承载,在用户设备、无线网络控制器以及SGSN 33之间提供的无线接入承载,以及在服务GPRS服务节点33和网关GPRS服务节点34之间提供的交换分组数据信道。每个PDP上下文通常在特定用户设备和网关GPRS支持节点之间提供通信路径,并且所述路径一旦建立则通常携带多个流。每个流通常表示例如特定服务和/或特定服务的媒体成分。因此,PDP上下文经常表示用于跨过网络的一个或者多个流的逻辑通信路径。为了在用户设备以及服务GPRS支持节点之间实现PDP上下文,需要建立至少一个无线接入承载(RAB),所述RAB通常允许针对用户设备的数据传送。本领域技术人员已知这些逻辑和物理信道的实现,并且因而在此不再进一步讨论。
图1还示出了连接至示例性因特网协议(IP)多媒体网络45的多个应用服务50。用户设备30可以经由GPRS网络32和IMS网络45连接至至少一个应用服务器50。应该理解,大量应用服务器可以连接至数据网络。
借助于由适当控制器实体所提供的数据网络的功能来控制与应用服务器的通信。例如,在当前的第三代(3G)无线多媒体网络架构中,假设提供各种控制功能的多个不同服务器用于控制。这些控制功能包括诸如呼叫会话或者呼叫状态控制功能(CSCF)之类的功能。呼叫会话功能可以划分成为各种类别。图1示出了代理呼叫会话控制功能(P-CSCF)35和37、以及服务呼叫会话控制功能(S-CSCF)36。应该理解,类似功能还指具有不同名称的各种系统。
希望使用由应用服务器经由IMS系统提供服务的用户需要首先需要注册到访问控制器(诸如,服务呼叫会话控制功能(S-CSCF)36)。需要注册以使得用户设备能够从多媒体系统请求服务。如在图1中所示,在S-CSCF 36和用户设备30之间的通信可以经由至少一个代理呼叫会话控制功能(P-CSCF)35来路由。代理CSCF 35由此担任代理,所述代理从GGSN 34向服务呼叫会话控制功能36来转发消息,并且反之亦然。
上述由用户使用的REGISTER(注册)消息是SIP(会话发起协议)消息的一个示例。其他请求SIP消息包括:INVITE(邀请),其指示正在邀请用户或者服务参与到呼叫会话中;ACK(应答),其确认客户已经接收到对INVITE请求的最终响应;BYE(再见),其终止呼叫,并且可由呼叫方或者被呼叫方来发送;CANCEL(取消),其取消任何未决的搜索但是并不终止已经接受的呼叫;以及OPTIONS(选项),其查询服务器的能力。
如前所述,已知的是使用已知的SigComp的协议集来压缩这些SIP消息。此协议集在RFC(请求注释)3320的“SignalingCompression(SigComp)”中进行了定义。此外,为了在设备中执行压缩和解压缩两者,针对每个将要压缩或者解压缩的消息来启动UDVM(通用解压缩虚拟机)。
针对压缩过程启动的UDVM还称作压缩器。针对解压缩过程启动的UDVM还称作解压缩器。处于启动的UDVM定义在SigComp协议所指定的存储器空间中。在压缩过程中使用的存储器空间称作压缩存储器,并且类似地,在解压缩过程中使用的存储器空间称作解压缩空间。
现在参考图2,其中示出了用以压缩消息/数据流的典型压缩存储器101。由压缩器所使用的压缩存储器101包括SigComp部分103和UDVM部分105。SigComp部分103自身包括:SigComp报头部分106,用于存储任何SigComp消息报头项;字节码部分107,用于存储任何接收的压缩算法指令;以及消息部分109,用于缓冲所接收消息或者数据流的至少一部分。在某些示例中,字节码部分并不是UDVM所使用的指令集,其中该指令集从先前存储的指令集中加载。
UDVM部分105包括字节码部分111和环缓冲器113,所述字节码部分111用于存储用于执行压缩的指令。环缓冲器113由用户终端UDVM作为压缩“历史窗口”来使用,用于存储可由压缩器引用的数据,以便重构原始消息。在现有技术中已知的环缓冲器是静态或者动态分配的存储器块,由此最终存储器位置链接至该块中的第一存储器位置。由此,一旦到达存储器块的终点位置,则操作指回到存储器块的开始位置以产生不连续的存储器块。此处理还称作环绕环缓冲器113。
由UDVM针对SigComp协议消息和数据流所使用的典型压缩算法是各种已知的LZ77压缩算法变形。LZ77压缩算法通过存储最近读取数据的历史窗口并比较通过所述历史窗口中的数据编码的当前数据来工作。输出的压缩流/消息包含对历史窗口中的位置的引用,以及匹配的长度。如果在历史窗口以内不能找到匹配,则将字符自身简单地编码成为流、并且标记为“文字(literal)”。因此,压缩的流/消息包括两种类型的符号、文字和长度/位置对。算法族的最流行的变形是LZW、LZSS和DEFLATE算法。这些算法之间的区别在于用以从历史窗口搜索当前数据的算法,LZSS算法使用简单的二叉树搜索,而DEFLATE算法使用哈希表搜索。
环缓冲器存储先前接收的消息/数据流的符号的副本,并且压缩算法用作历史窗口以针对当前读取的符号的副本进行搜索。
如在RFC 1951中所定义,在此示出一种简化的DEFLATE压缩算法的示例用于参考:
def DEFLATE(compressed_stream,ring,message):
  start=0
  while start<len(message):
     s=message[start:]
     position,length=ring.search(s)
     s=s[:length]
     if length>1:
         compressed_stream.append((length,position))
     else:
        compressed_stream.append(s)
     ring.append(s)#insert match or literal into ring
     start+=length
上文示出的算法相对于在历史窗口(环缓冲器)中存储的数据来搜索消息的未压缩部分。搜索返回最长匹配的长度以及位置。如果没有发现匹配,则长度为1,并且将搜索内容的第一字节插入压缩的流作为文字,否则将匹配的长度和位置插入压缩的流。然后,将消息的被压缩部分附加至环缓冲器。
使用的典型算法进一步包括以下步骤,诸如如果找到较长的匹配则将返回(backtrack)输出流。
为了改进LZ77算法的压缩率的效率,通常预加载先前的消息或者外部字典以在来自当前消息符号添加之前提供足够的数据进行搜索。此处理有时称作填充(populate)窗口历史。
如图2中所示,这通过第一分解环缓冲器存储器块113a来示出。第一分解环缓冲器存储器块113a包括字典部分115。
SigComp压缩器通常尝试使用多于一个字典来增加压缩的效率。
此外,当压缩器压缩特别长的消息或者数据流时,将当前读取的消息符号附加至环缓冲器,将导致读取的消息到达环缓冲器的末端,并且覆盖所存储的字典。字典的这种恶化经常可导致降低压缩算法的效率。
解压缩器使用一致的字典集合并且具有一致的环缓冲器大小,以便解压缩所压缩的消息。在解压缩器中,在开始任何解压缩消息之前将字典加载到环缓冲器之中。然后,针对对环缓冲器以及从环缓冲器读取的解压缩的消息的任何引用来检查压缩的消息,或者所述压缩的消息被确定是“文字”符号。然后,将读取或者确定的值复制至环缓冲器,并且还作为解压缩的或者原始消息的一部分而输出。
一旦解压缩器/压缩器已经完成,则最终的未压缩输出存储为“状态”。这些状态或者仓可用作用于未来压缩和解压缩的字典数据。然而,由于这些状态是自解压的,他们通常包含冗余信息。
参考图3,其中示出了结合本发明的一个实施方式的改进的压缩器的流程图。
在第一步骤301中,接收将要压缩的数据流的至少的一部分或者消息。此步骤是UDVM压缩实例的有效发起。
在下一步骤303中,压缩器通过静态和/或动态字典的副本来加载环缓冲器。
在接下来的步骤305中,选择消息的下一未压缩部分。如果不存在进一步的未压缩部分,则操作停止。
在接下来的步骤307中,针对所选择的未压缩部分的副本来搜索环缓冲器。
如果检测到匹配,则在下一步骤308中输出在位置、长度对方面对环缓冲器的引用。此输出用以形成被压缩数据消息的一部分。
此外,如果检测到匹配,则在步骤309中压缩器检查位置、长度对以确定:在引用指向环缓冲器中的字典存储器位置的情况下,字典存储器定位引用长度是否高于4字节的阈值;或者在引用指向环缓冲器中的非字典存储器位置的情况下,环缓冲器引用长度是否高于7字节的阈值。当选择第一未压缩部分时,通过将确定的匹配位置与所存储的包含环缓冲器输入指针的值的位置指示符进行比较,压缩器可确定在字典存储器位置中、或者在环缓冲器的剩余部分中是否出现匹配。换言之,字典条目对于压缩存储器位置开始的相对位置大于累积的环大小。
如果超过任意一项阈值,则方法返回选择步骤305。如果没有超过任意一项阈值,则方法前进至步骤313。在步骤313中,压缩器将所选择的部分附加至环缓冲器。然后,方法返回步骤305,在此处选择下一未压缩部分。
如果在环缓冲器中没有找到所选择部分的匹配,则方法执行至步骤311,并且所选择的部分输出为“文字”。然后,方法前进至步骤311,在此处所选择的“文字”部分附加至环缓冲器。
参考下文的伪代码来描述压缩方法的另一示例。在此示例中,minlate函数代码(最小状态长度紧缩(deflation)程序)针对消息的所选择部分来搜索history_window(历史_窗口)部分,并且输出compressed_stream(压缩_流)。此外,如果存在匹配,则检查该位置和长度以确定它们是否超过针对字典和非字典位置的长度阈值,以便确定是否应该附加history_window(环缓冲器)。
def MINLATE(compressed_stream.history_window,message):
  start=minlated_ring_length=0
  while start<len(message):
    position.length=history_window.search(message,start)
    if length>1:
       compressed_stream.append((length,position))
    else:
       compressed_stream.append(message[start:start+1])
 if position>mmlated_ring_length and length>4:
    ‘Do not append dictionary entries longer than 4 bytes’
 elif length>7:
    ‘Do not append matches longer than 7 bytes’
 else:
    minlated_ring_length+=length
    history_window.append(message[start:start+length])
 start+=length
为了使得压缩和解压缩方法同步,即,在符号压缩的任意点、或者解压缩回到相同符号的任意点处,由压缩器搜索并且由解压缩器访问的存储器必须是相同的,改进的解压缩算法遵循类似的算法。
参考图4,其中示出了在改进解压缩操作期间针对UDVM操作的流程图。
在第一步骤401中,接受将要解压缩的数据流的至少的一部分或者消息。此步骤是UDVM压缩实例的有效发起。
在下一步骤403中,解压缩器通过静态和/或动态字典副本来加载环缓冲器。
在接下来的步骤405中,选择消息的下一未读取的压缩部分。如果不存在进一步的未读取的压缩部分,则操作停止。
在接下来的步骤407中,针对对环缓冲器的引用来搜索所选择的部分。
如果检测到引用,则在下一步骤408中根据所述引用的位置、长度对来输出存储器引用内容。此输出用以形成解压缩数据消息的一部分。
此外,如果检测到引用,则解压缩器在步骤409中检查位置、长度对引用值以确定:在引用指向环缓冲器中的字典存储器位置的情况下,字典存储器位置引用长度是否高于4字节的阈值;或者在引用指向环缓冲器中的非字典存储器位置的情况下,环缓冲器引用长度是否高于7字节的阈值。当选择第一压缩部分时,通过将确定的引用位置与所存储的包含环缓冲器输入指针的值的位置指示符进行比较,解压缩器可确定在字典存储器位置中、或者在环缓冲器的剩余部分中。换言之,字典条目对于解压缩存储器位置开始的相对位置大于累积的环大小。
如果超过任意一项阈值,则方法返回选择步骤405。如果没有超过任意一项阈值,则方法前进至步骤413。在步骤413中,解压缩器将所选择的部分附加至环缓冲器。然后,方法返回步骤405,在此处选择下一未读取的压缩部分。
如果在环缓冲器中没有找到存储器引用,则方法执行至步骤411,并且所选择的部分输出为“文字”。然后,方法前进至步骤411,在此处所选择的“文字”部分附加至环缓冲器。
在上文的所有示例中,最终的状态仓小于典型压缩算法的最终仓,并且在压缩和解压缩状态仓两者之中的重复元素和冗余的水平显著降低。在降低仓的长度中,与严格存储器空间限制相关联的问题显著减轻。不但更多这些“最小状态长度降低的(minilate)”仓可以适应于压缩和/或解压缩存储器空间、并由此增加了将要搜索的可能的字典数量,而且还减轻了更新的问题,这是由于很可能存在充分的存储器空间用于字典的多次修改。
为了提供本发明的实施方式的有效示例,在下文中示出了将要压缩的典型SIP注册消息。
REGISTER sip:ims4.so.noklab.net SIP/2.0
Security-Client:Digest
Route:<sip:10.21.38.206;Ir>
Via:SIP/2.0/UDP 10.21,129.134:5060;branch=z9hG4bKt0-xADPZwgXmJ
From:sip:iop3@ims4.so.noklab.net;tag=WkuxADI5AA
To:sip:iop3@ims4.so.noklab.net
Contact:sip:iop3@10.21.129.134;expires=3600
Supported:sec-agree
Require:sec-agree
Proxy-Require:sec-agree
CSeq:673487 REGISTER
Call-ID:TVqxAlybZ0R0D8pVTbzeqPu5gR0ylz
Authorization:digest username=″iop3.private@ims4.so.noklab.net″,nonce=″″,
realm=″ims4.so.noklab.net″,response=″″,uri=″ims4.so.noklab.net″,algorithm=MD5
Max-Forwards:70
Content-Length:0
此消息是619字节长度。通过使用现有技术的紧缩压缩算法,所产生的仓状态是为683字节长度。然而,在结合标准SIP静态字典(如在RFC 3485中定义)使用上述算法时,所述状态降低至仅182字节。
sip:ims4.so.noklab.net<sip:10.21.38.206;Ir>10.21.129.134:5060
t0-xADPZwgXmJsip:iop3@WkuxADl5AA3600sec-agree673
TVqxAlybZ0R0D8pVTbzeqPu5gR0ylz″iop3.te@″,″″,″″,″″,uri=″″,MD5700
此外,如果现在进一步压缩和解压缩消息,例如SIP INVITE(SIP邀请)消息,例如如下所示:
INVITE sip:iop2@ims4.so.noklab.net SIP/2.0
Route:
<sip:10.21.38.206;Ir>,<sip:%01ADPM@oscscf.ims4.so.noklab.net:49997;Ir>
Via:SIP/2.0/UDP 10.21.129.134:5060;branch=zghG4bKXq-xAGuu3k4b8
Securiby-Verify:digest;d-ver=″84487381404e4e1f6695dacde2e212c6″
From:sip:iop3@ims4.so.noklab.net;tag=OumxAEHfhA
To:sip:iop2@ims4.so.noklab.net
Contact:sip:iop3@10.21.129.134
Supported:100rel,sec-agree
Require:sec-agree
Proxy-Require:sec-agree
CSeq:673488 INVITE
Call-ID:RgqxAxfEu49x5d-akiRGsKUvLCiKw0
Max-Forwards:70
Content-Type:Application/Sdp
Content-Length:213
v=0
o=-2435697 2096738854 IN IP4 172.21.137.53
s=-
c=IN IP4 172.21.137.53
t=0 0
m=video 49152 RTP/AVP 96
a=sendonly
a=rtpmap:96 H263-2000/90000
m=audio 57344 RTP/AVP 97
a=sendonly
a=rtpmap:97 AMR/8000
典型的紧缩压缩和解压缩算法生成具有792字节长度的状态。然而,通过使用如前所述的改进的压缩和解压缩算法以及先前的REGISTER状态消息,INVITE状态长度仅有238字节长度。
2@,%01ADPM@oscscf.:49997;Ir>Xq-xAGuu3k4b8
;d-ver=″84487381404e4e1f6695dacde2e212c6″OumxAEHfhA2@,673488
RgqxAxfEu49x5d-akiRGsKUvLCiKw070ASdp213
-2435697 2096738854 17237.53
s=-17237.53
49152 9696 H263-2000/9000057344 9797 AMR/8000
上述实施方式示出了根据匹配长度和位置的简单确定的状态值的选择性存储。在本发明的其他实施方式中,可通过降低长度阈值来防止条目重复的进一步限制。另外,可以使用连续非匹配的长度来进一步修改环缓冲器内容以产生较小的状态输出。
在本发明的其他实施方式中,压缩器自身可将标记位或者符号输入到压缩消息/数据流之中,以便控制在解压缩器处的环缓冲器使用。由此,在本发明的某些实施方式中,压缩器将信令位附加至每个匹配或者文字,其在被解压缩器读取时指示该解压缩器将解压缩的值附加至环缓冲器。
已经在IMS系统和GPRS网络的上下文中描述了本发明的示例。然而,本发明还适用于其他标准。此外,在所谓的具有所有SIP实体的所有SIP网络、以及称作PDP上下文的通信信道的上下文中描述了给定示例。本发明还适用于任何其他适合的通信系统(无线的、或者是固定线路的系统)、通信标准以及通信协议。
支持无线数据通信服务而不限于此的其他可能通信系统的示例包括第三代移动通信系统,例如通用移动通信系统(UMTS)、i-phone或者CDMA2000和陆地集群无线(TETRA)系统、增强型数据速率GSM演进(EDGE)移动数据网络。固定线路系统的示例包括针对不同位置(诸如,在家或者办公室)的用户提供因特网接入的各种宽带技术。无论用于通信网络的标准和协议如何,本发明可适用于其中在网络实体中需要注册的所有通信网络。
在代理和服务呼叫状态控制功能的上下文中描述了本发明的实施方式。如果适用,本发明的实施方式可适用于其他网元。
此外,应该理解,本发明的实施方式可通过硬件、软件或者硬件和软件的任何组合来控制。
在此应该理解,尽管上文描述了本发明的示例性实施方式,但在不脱离在所附权利要求书中所限定的本发明的范围的情况下,可以对所述公开的方案进行各种变化和修改。

Claims (19)

1.一种方法,用于在通信系统中压缩信令消息,所述方法包括以下步骤:
接收所述信令消息的一部分;
在存储器中检测所述信令消息的所述部分的副本;
将所检测部分的长度与所存储的长度值进行比较;以及根据所述比较步骤的输出,
执行在所述存储器中存储所述信令消息的所检测部分的步骤。
2.根据权利要求1所述的方法,其中仅在所述比较步骤确定所存储的长度值大于所检测部分的长度之后执行存储步骤。
3.根据权利要求1和2所述的方法,其中所述存储器包括第一存储器部分以及第二存储器部分,所述方法进一步包括确定步骤,所述确定步骤确定在所述存储器的哪部分中检测到所述信令消息的所述部分的副本。
4.根据权利要求3所述的方法,其中所述存储的长度值依赖于所述确定步骤,所述确定步骤确定在所述存储器的哪部分中检测到所述信令消息的所述部分的副本。
5.根据权利要求3和4所述的方法,其中所述第一存储器部分包括字典。
6.根据权利要求5所述的方法,其中所述字典包括以下至少一个:
动态字典,
静态字典。
7.根据权利要求3至6中任意一项所述的方法,其中当在所述第一存储器部分中检测到所述信令消息的所述部分时,所述存储的长度值是4字节。
8.根据权利要求3至7中任意一项所述的方法,其中当在所述第二存储器部分中检测到所述信令消息的所述部分时,所述存储的长度值是7字节。
9.根据权利要求1至8中任意一项所述的方法,其中所述存储器包括环缓冲器。
10.一种通信设备,用于在通信系统中压缩信令消息,包括:
存储器;
数据检测器,设置以在所述存储器中检测所述信令消息的一部分的副本、以及设置以输出任何所检测部分的长度;
长度比较器,设置以将所检测部分的所述长度与长度值进行比较;以及
存储器控制器,设置以从所述长度比较器接收输出,所述存储器控制器设置以基于所接收的长度比较器输出,来将所述信令消息的所检测部分存储至所述存储器。
11.根据权利要求10所述的通信设备,其中所述存储器包括第一存储器部分以及第二存储器部分。
12.根据权利要求10和11中任意一项所述的通信设备,进一步包括位置读取器,所述位置读取器设置以在所述存储器中检测所检测部分的副本的位置,以及其中所述位置读取器设置以根据所检测位置来向所述长度比较器输出长度值。
13.根据权利要求11所述的通信设备,其中所述位置读取器设置以在当所述读取器检测到所述副本是在第一部分中时输出第一长度值,以及当所述读取器检测到所述副本是在第二部分中时输出第二长度值。
14.根据权利要求11至13中任意一项所述的通信设备,其中所述第一存储器部分包括字典。
15.根据权利要求14所述的通信设备,其中所述字典包括以下至少一个:
动态字典,
静态字典。
16.根据权利要求10至15中任意一项所述的通信设备,其中所述存储器是环缓冲器。
17.根据权利要求16所述的通信设备,其中所述环缓冲器是虚拟机中的环缓冲器。
18.根据权利要求17所述的通信设备,其中所述虚拟机是通用压缩器虚拟机。
19.一种计算机程序产品,设置以执行用于在通信系统中压缩信令消息的方法,所述方法包括步骤:
接收所述信令消息的一部分;
在存储器中检测所述信令消息的所述部分的副本;
将所检测部分的长度与所存储的长度值进行比较;以及根据所述比较步骤的输出,
执行在所述存储器中存储所述信令消息的所检测部分的步骤。
CN2006800299479A 2005-06-30 2006-06-29 用于在通信系统中压缩信令消息的方法,通信设备和装置 Expired - Fee Related CN101243671B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0513433.3 2005-06-30
GBGB0513433.3A GB0513433D0 (en) 2005-06-30 2005-06-30 Signal message compressor
PCT/IB2006/001850 WO2007004042A1 (en) 2005-06-30 2006-06-29 Signal message compressor

Publications (2)

Publication Number Publication Date
CN101243671A true CN101243671A (zh) 2008-08-13
CN101243671B CN101243671B (zh) 2012-10-17

Family

ID=34856453

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800299479A Expired - Fee Related CN101243671B (zh) 2005-06-30 2006-06-29 用于在通信系统中压缩信令消息的方法,通信设备和装置

Country Status (7)

Country Link
US (1) US7882263B2 (zh)
EP (1) EP1897327B1 (zh)
CN (1) CN101243671B (zh)
GB (1) GB0513433D0 (zh)
IL (1) IL188446A (zh)
RU (1) RU2392765C2 (zh)
WO (1) WO2007004042A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790462A (zh) * 2016-12-08 2017-05-31 东软集团股份有限公司 短句传输方法及系统、服务器、发送客户端、接收客户端

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0513432D0 (en) * 2005-06-30 2005-08-10 Nokia Corp Signal message compression
US7827237B2 (en) 2007-03-12 2010-11-02 Citrix Systems, Inc. Systems and methods for identifying long matches of data in a compression history
EP2677714B1 (en) * 2007-03-12 2015-04-22 Citrix Systems, Inc. Systems and methods for using compression histories to improve network performance
US7619545B2 (en) * 2007-03-12 2009-11-17 Citrix Systems, Inc. Systems and methods of using application and protocol specific parsing for compression
US7532134B2 (en) 2007-03-12 2009-05-12 Citrix Systems, Inc. Systems and methods for sharing compression histories between multiple devices
US7865585B2 (en) 2007-03-12 2011-01-04 Citrix Systems, Inc. Systems and methods for providing dynamic ad hoc proxy-cache hierarchies
US8255570B2 (en) * 2007-03-12 2012-08-28 Citrix Systems, Inc. Systems and methods of compression history expiration and synchronization
US7460038B2 (en) * 2007-03-12 2008-12-02 Citrix Systems, Inc. Systems and methods of clustered sharing of compression histories
US8417730B2 (en) * 2008-04-14 2013-04-09 Objectif Lune Inc. Block compression algorithm
US7870160B2 (en) * 2008-04-14 2011-01-11 Objectif Lune Inc. Block compression algorithm
RU2467486C1 (ru) * 2011-08-09 2012-11-20 Государственное казенное образовательное учреждение высшего профессионального образования Академия Федеральной службы охраны Российской Федерации (Академия ФСО России) Способ встраивания сжатого сообщения в цифровое изображение
US20140149605A1 (en) * 2012-11-26 2014-05-29 Saravana Annamalaisami Systems and methods for dictionary based compression
EP2936785A1 (en) * 2012-12-24 2015-10-28 Telefonaktiebolaget L M Ericsson (PUBL) Enabling external access to multiple services on a local server
US20150379682A1 (en) * 2014-06-27 2015-12-31 Samsung Electronics Co., Ltd. Vertex attribute data compression with random access using hardware
US9524169B2 (en) * 2014-09-24 2016-12-20 Intel Corporation Technologies for efficient LZ77-based data decompression
WO2016055100A1 (en) 2014-10-08 2016-04-14 Here Global B.V. Supporting magnetic flux density based positioning
JP6686639B2 (ja) * 2016-03-31 2020-04-22 富士通株式会社 符号化プログラム、符号化装置、符号化方法、復号化プログラム、復号化装置および復号化方法
US10318175B2 (en) * 2017-03-07 2019-06-11 Samsung Electronics Co., Ltd. SSD with heterogeneous NVM types
US10831497B2 (en) * 2019-01-31 2020-11-10 International Business Machines Corporation Compression/decompression instruction specifying a history buffer to be used in the compression/decompression of data
US10630312B1 (en) * 2019-01-31 2020-04-21 International Business Machines Corporation General-purpose processor instruction to perform compression/decompression operations
CN117255128A (zh) * 2022-06-09 2023-12-19 华为技术有限公司 一种数据处理方法及相关设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628938B1 (en) 2000-08-14 2003-09-30 Koninklijke Philips Electronics N.V. Wireless system, a method of selecting an application while receiving application specific messages and user location method using user location awareness
US6963587B2 (en) * 2000-11-16 2005-11-08 Telefonaktiebolaget Lm Ericsson (Publ) Communication system and method utilizing request-reply communication patterns for data compression
US6985965B2 (en) * 2000-11-16 2006-01-10 Telefonaktiebolaget Lm Ericsson (Publ) Static information knowledge used with binary compression methods
GB2372180A (en) * 2001-02-07 2002-08-14 Motorola Inc Compression of SIP/SDP headers by omitting standard fields from transmission and insertion of omitted fields from cache at receiver
US20030018704A1 (en) 2001-03-08 2003-01-23 Vasilis Polychronidis Network presence and location agent
US7155173B2 (en) * 2001-03-14 2006-12-26 Nokia Corporation Method and system for providing a context for message compression
US20030120813A1 (en) * 2001-12-21 2003-06-26 Ishita Majumdar Apparatus and method for optimizing message sizes of textual protocols used in multimedia communications
US7143191B2 (en) * 2002-06-17 2006-11-28 Lucent Technologies Inc. Protocol message compression in a wireless communications system
US20040139298A1 (en) * 2003-01-09 2004-07-15 International Business Machines Corporation Method and apparatus for instruction compression and decompression in a cache memory
US7412541B1 (en) 2003-07-18 2008-08-12 Core Mobility, Inc. Tokenized compression of session initiation protocol data
US7079054B2 (en) * 2004-06-04 2006-07-18 Broadcom Corporation V.42bis standalone hardware accelerator and architecture of construction
CN100393077C (zh) * 2004-12-06 2008-06-04 中兴通讯股份有限公司 一种板间信令消息的压缩方法
US7561535B2 (en) * 2005-06-24 2009-07-14 Aylus Networks, Inc. System and method for providing dynamic call models for users as function of the user environment in an IMS network
GB0513432D0 (en) * 2005-06-30 2005-08-10 Nokia Corp Signal message compression

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790462A (zh) * 2016-12-08 2017-05-31 东软集团股份有限公司 短句传输方法及系统、服务器、发送客户端、接收客户端
CN106790462B (zh) * 2016-12-08 2019-12-06 东软集团股份有限公司 短句传输方法及系统、服务器、发送客户端、接收客户端

Also Published As

Publication number Publication date
EP1897327A1 (en) 2008-03-12
RU2392765C2 (ru) 2010-06-20
GB0513433D0 (en) 2005-08-10
US7882263B2 (en) 2011-02-01
IL188446A0 (en) 2008-04-13
EP1897327B1 (en) 2013-07-24
CN101243671B (zh) 2012-10-17
IL188446A (en) 2014-07-31
US20070002780A1 (en) 2007-01-04
RU2008102885A (ru) 2009-08-10
WO2007004042A1 (en) 2007-01-11

Similar Documents

Publication Publication Date Title
CN101243671B (zh) 用于在通信系统中压缩信令消息的方法,通信设备和装置
US7348904B2 (en) Selective updating of compression dictionary
US7143191B2 (en) Protocol message compression in a wireless communications system
US7817635B2 (en) SIP header reduction
US20080120315A1 (en) Signal message decompressor
US7653079B2 (en) Signal message compression
US20080147801A1 (en) Method, communications node, and memory for dynamic dictionary updating and optimization for compression and decompression of messages
US7324443B2 (en) Binary protocol for session initiation in a wireless communications system
US6766147B2 (en) Apparatus and method for implementing text based compression using cache and blank approach
EP3764617A1 (en) Method and apparatus for reducing message signaling
US9092319B2 (en) State memory management, wherein state memory is managed by dividing state memory into portions each portion assigned for storing state information associated with a specific message class
US20060270418A1 (en) State-mediated data signaling used for compression in telecommunication services
US7657656B2 (en) Signal message decompressor
US9930124B2 (en) Exchange of signalling messages in an internet protocol communications network between entities applying object oriented processing of signalling messages
KR101587027B1 (ko) 신호 압축 메시지의 스테이트 관리 방법 및 장치
RU2390102C2 (ru) Расширенное динамическое сжатие

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160206

Address after: Espoo, Finland

Patentee after: NOKIA TECHNOLOGIES OY

Address before: Espoo, Finland

Patentee before: NOKIA Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121017

CF01 Termination of patent right due to non-payment of annual fee