[RFC 3320] 信令压缩(SigComp)(二)

 

上接   [RFC 3320]    信令压缩(SigComp)(一)  

[RFC 3320]    信令压缩(SigComp)(二)

应用接收到解压缩后的消息时,将这个消息与特定的间隔,并且向SigComp提供对应的间隔标识符。由于每个间隔都被分配独立的压缩器进行压缩和一定的内存来存储状态信息,对于不同的终端,应用应分配不同的间隔。对于本地终端来说,相对于不同的同一个远程终端可以可以分配数个间隔。在这种情况下,只有压缩机对不同的消息分配不同的间隔,可靠的状态操作才能进行。

只要对不同的间隔分配不同的标识符,间隔标识符的具体格式并不重要。

如果应用要使用SigComp通过状态设置进行通信,那么相应的认证机制是必须的,这个机制用来完成间隔标识符与解压消息之间的映射。同时,为避免终端获取已删除的状态信息,他们应该对间隔标识符的生命周期限制达成一致。

 

3.2 SigComp反馈机制

如果信令协议在一对一的终端间发送SigComp消息,那么这两个终端可以更进一步协作。在这种情况下,一端可以通过发送反馈信息来监控另一端的行为,进而提高压缩比例。SigComp的反馈机制也是建立在请求/响应的基础上,压缩机通过发送反馈请求来获取反馈信息。图2给出了SigComp中请求反馈和接收反馈的过程。

简便起见,图中省略了调度机、应用层及传输层。注意,其中解压后的消息是通过解压调度机传给具体应用的,从压缩机到远端UDVMSigComp消息首先通过压缩调度机传至传输层,然后到解压缩调度机的。

图中描述的请求反馈、接收反馈的详细步骤如下:

1.  压缩机在发送SigComp 消息前发送反馈请求到终端B

2. 应用接收到解压缩的消息后返回消息对应的间隔标识符。

3. 终端BUDVM将反馈数据送至状态控制器。

4. UDVM提供的间隔标识符合法情况下,状态控制器将反馈数据送至对应的压缩机压缩。

5. 压缩机在发送SigComp 消息前返回反馈数据到终端A

6. 终端A的应用接收到压缩解压的消息后向UDVM回复消息对应的间隔标识符。

7. UDVM将反馈数据送至状态控制器。

8. UDVM提供的间隔标识符合法情况下,状态控制器将反馈数据送至压缩机。

9. 压缩机利用反馈数据对应用消息进行压缩,提高压缩比例。

具体每个功能实体在传送反馈数据过程中的作用将会在以下章节具体介绍。

 

3.3 SigComp参数

使用UDVM进行解压缩的优点之一在于这种机制下实现压缩机的灵活性。终端接收到SigComp消息后的行为都是可以预知的。

尽管终端实现SigComp有很大的灵活性,但相对不同的实现所消耗的内存和处理资源有很大不同。为了支持不同性能的终端,下面的这些参数可以提高终端接收到SigComp消息后的执行能力:

    解压缩可用内存大小

    状态可用内存大小

    每比特执行周期

    SigComp版本

    本地可用状态

所有SigComp终端必须为每个参数提供一个最小可用值。当然,终端也可以提供额外的可用资源,这些资源可以通过SigComp反馈机制广播到远程终端。

针对特定的应用,可能会强制终端优先提供某些额外的资源(例如,SIP信令压缩要求提供一个通用的SIP短语词典作为一个强制的状态项)。

下面对每个SigComp参数进一步更详细地说明。

 

3.3.1 内存大小与UDVM周期

解压缩可用内存大小标明了在解压SigComp消息时可用的内存量。其中一部分内存要被用来暂时存储要解压的SigComp消息,剩下的内存才被真正分配给UDVM。注意,内存的分配是以xxx/每消息为基础的,在消息被解压后,内存也将重新分配。所有支持SigComp的终端分配的解压缩内存大小不得小于2048字节。

状态可用内存大小表示特定间隔的状态创建过程中可用的字节数。当无状态时,该参数被设置为零。

与其它SigComp参数不同,状态可用内存大小以xxx/间隔为单位,根据不同的间隔分配不同的内存空间。当应用中间隔不再需要时,该间隔所分配的内存也要重新声明。

每比特执行周期表示处理SigComp消息的每一比特可用的UDVM处理周期。每执行一条UDVM指令,就需要一定数量的UDVM处理周期。具体UDVM指令以及对应的处理周期可在第9节找到。终端为该参数分配的最小值应该不小于16

上述提到的三个参数的取值必须从下表选取,以便使用SigComp反馈机制对参数进行有效编码。每比特执行周期使用2比特编码,其它则实用3比特编码。具体编码和其对应值如下:

编码: 每比特执行周期           编码:   状态可用内存大小(字节)

00          16                  000          0

01          32                  001          2048

10          64                  010          4096

11          128                 011          8192

                                100          16384

                                101          32768

                                110          65536

                                111          131072

解压缩可用内存大小的编码与状态可用内存大小相同,但是000编码不可用。

 

3.3.2 SigComp版本

SigComp版本信息表示基本SigComp的可用性,或升级版本中额外指令的可用性。在UDVM中,版本信息为一个2字节变量,其中1个字节使用0来扩充(两字节中第一个字节一般为0)。

SigComp的基本版本为版本0x01,也就是本文描述的版本。

为了确保在版本0x01中能够成功解压得SigComp消息在更高版本中正常使用,必须确保SigComp版本的向下兼容性。同样,如果消息触发了一个解压缩错误,那么在高版本中仍然会触发相应错误。

然而,那些在版本0x01中导致不可预料解压缩失败的消息在高版本中可能会被成功解压。

确保SigComp向下兼容的最简单方法就是在高版本中扩充低版本的UDVM指令。在低版本中UDVM的保留地址(见7.2节)在将来的版本中可以被赋值。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值