[Docs] [txt|pdf] [Tracker] [WG] [Email] [Diff1] [Diff2] [Nits] [IPR]

Versions: 00 01 02 03 RFC 3321

Network Working Group                                 H. Hannu, Ericsson
INTERNET-DRAFT                              J. Christoffersson, Ericsson
Expires: August 2002                               S. Forsgren. Ericsson
                                                         K. Leung, Nokia
                                                           Z. Liu, Nokia
                                            R. Price, Siemens/Roke Manor
                                                       February 15, 2002

                      SigComp - Extended Operations

Status of this memo

   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups. Note that other
   groups may also distribute working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or cite them other than as "work in progress".

   The list of current Internet-Drafts can be accessed at

   The list of Internet-Draft Shadow Directories can be accessed at

   This document is a submission of the IETF ROHC WG. Comments should be
   directed to its mailing list, rohc@cdt.luth.se.


   This document defines extended operation mechanisms, explicit
   acknowledgements and shared compression, for [SIGCOMP]. When these
   extended mechanisms are applied an increase of the compression
   efficiency is expected.

Hannu, et al.                                                   [Page 1]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

Table of contents

   1.  Introduction..................................................2
   2.  Terminology...................................................2
   3.  Architectural view for feedback...............................4
   4.  State reference model.........................................5
   5.  Extended operation mechanisms.................................6
   6.  Implications on SigComp.......................................9
   7.  Security considerations......................................14
   8.  IANA considerations..........................................14
   9.  Acknowledgements.............................................14
   10. Authors' addresses...........................................14
   11. Intellectual Property Right Considerations...................15
   12. References...................................................15
   Appendix A. Document history.....................................16

1. Introduction

   This document defines extended operation mechanisms, explicit
   acknowledgements and shared compression, for [SIGCOMP]. These
   mechanisms are expected to improve the compression efficiency,
   compared to the case when one of the communicating implementations
   only support the basic SigComp.

   For better understanding of this draft the reader should consult

2. Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   document are to be interpreted as described in [RFC-2119].

   Universal Decompressor Virtual Machine (UDVM)

     The virtual machine described in [SIGCOMP]. The UDVM is used for
     decompression of SigComp messages. The UDVM is capable of
     interoperating with a wide range of compression algorithms.


     The decompressor invokes the UDVM. It is responsible for supplying
     the UDVM with compressed data and make decompressed data available
     for the application.


     The compressor invokes the encoder, and keeps track of states that
     can be used for compression. Responsible for supplying UDVM

Hannu, et al.                                                   [Page 2]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

     instructions to its remote decompressor in order for compressed
     data to be decompressed.

   Explicit acknowledgements

     Is defined as the case where an acknowledgement for a state is
     explicitly sent from a decompressor to a compressor. The
     acknowledgment can either be sent standalone or piggybacked with a
     SigComp message.

   Shared compression

     Is defined as the case when a compressor uses data that has been
     received by the associated decompressor.

   Dynamic compression

     Is defined as the case when a compressor uses data, which are
     related to previous SigComp messages.


     Encodes data according to a (compression) algorithm into UDVM
     readable code. The encoded data can be decoded by a UDVM provided
     with the needed instructions.


     Invokes the SigComp compressor and decompressor.


     Data saved either by a compressor or a decompressor. The data
     reflects the contents of a UDVM memory.

   State identifier

     Reference to a state saved either by a compressor or a

     - state_identifier

         This is a reference to a state, which a compressor uses for

     -  shared_identifier

          This is a reference to a state, which consist only of an
          uncompressed message. This kind of state is necessary for
          efficient utilization of shared compression, as remote
          compressors might use different compression algorithms.

Hannu, et al.                                                   [Page 3]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

     - acked_identifier

         This is a reference to a state, which is acknowledged and saved
         by a decompressor.

   SigComp message

     May contain a compressed application message in the form of UDVM
     bytecode. In case of a message- based transport, such as UDP, a
     SigComp message corresponds to exactly one (UDP) datagram. For a
     stream-based transport, such as TCP, each SigComp message is
     separated by a 0xFFFF delimiter.

   Application message

     An uncompressed message, as provided from or to the application,
     which is to be compressed by the compressor. When delivered
     from the decompressor the data has passed through the decompression
     process and is referred to as decompressed data or a decompressed

3. Architectural view for feedback

   A SigComp endpoint may provide feedback to its remote SigComp
   endpoint, see Figure 1.

       +--------------------+              +--------------------+
       |    Endpoint 1      |              |     Endpoint 2     |
       |  +--------------+  |              |  +--------------+  |
       |  | Compressor   |  |              |  | Decompressor |  |
       |  | [------------+--+--------------+--+--]   *       |  |
       |  +-|-------^----+  |              |  +--|---|-------+  |
       |    |       |       |              |     |   |          |
       |    |       |       |              |     |   |          |
       |    |       |       |              |     |   |          |
       |  +-|-------|----+  |              |  +--v---|-------+  |
       |  | *       [----+--+--------------+--+------]       |  |
       |  | Decompressor |  |              |  |  Compressor  |  |
       |  +--------------+  |              |  +--------------+  |
       +--------------------+              +--------------------+

                Figure 1.  Architectural view

   With the extended feedback format specified in Section 6, it is
   possible for a SigComp endpoint to confirm which states that have
   been established to its remote SigComp endpoint. The established
   state confirmations are referred to as acknowledgments.

   Depending on the established states this particular type of feedback
   may be used to increase the compression efficiency.

Hannu, et al.                                                   [Page 4]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

4. State reference model

   A UDVM may want to save the status of its memory and this status is
   referred to as a state. As explained in [SIGCOMP] a save state
   request may or may not be granted. For later reference to a saved
   state, e.g. if the UDVM is to be loaded with this state, a reference
   is needed to locate the specific state. This reference is called
   state identifier.

4.1. Overview of state reference with dynamic compression

   When compressor 1 (comp_1) compresses a message M it uses the
   information corresponding to a UDVM state that its remote
   decompressor (decomp_2) has established and acknowledged. If comp_1
   decides that it for compression of later messages would like to be
   able to use the new state, which is the former state with the
   addition of information from M, it must save the new state. If an
   acknowledgement is received for this new state, comp_1 can utilize
   the new state in the compression process. Below is an overview of the

   Available state(s)

     Compressor: The state is anticipated for compression of later
     messages, and is therefore saved.

     Decompressor: The decompressor saves the state if it will
     acknowledge it. An acknowledged state may be used for

   Acked state(s)

     The compressor can only use a state(s) that the remote decompressor
     has saved and acknowledged.

Hannu, et al.                                                   [Page 5]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

        Compressor 1                    Decompressor 2
           +---+                            +---+
           | C |                            | D |
           +---+                            +---+

   Available     Acked    |            |  Available
    State(s)    State(s)  |            |  State(s)
   s0             s0      |            |    s0
   s1=s0+m1               | --m1(s0)-->|
                          | <--ack(s1) |  s0,s1
   s0,s1        s0,s1     |            |
                          |            |
   s0,s1        s0,s1     | --m2(s1)-->|   (m2 Lost)
   s2=s1+m1               |            |
                          |            |
   s0-s2        s0,s1     |            |
   s3=s1+m3               | --m3(s1)-->|   s0,s1
                          |            |
                          |            |
                          | <--ack(s3) |   s0,s1,s3=s1+m3
   s0-s3       s0,s1,s3   |            |

   Figure 2. Example of message flow.

5. Extended operation mechanisms

   For a compressor to be able to utilize a certain state it must know
   that the remote decompressor has access to this state.

   In case where compressed messages can be lost or misordered on the
   path between compressor and decompressor, some sort of
   acknowledgement must be used by a decompressor to notify the remote
   compressor that a certain state has been established.
   Over reliable and ordered transport the most recent state may be
   used, if the compressor has downloaded such a UDVM instruction code
   to its remote decompressor.

   The following subsections describe how an explicit acknowledgement
   scheme and shared compression can be applied in SigComp.

5.1. Explicit acknowledgement scheme

   A SigComp message will along with the compressed message carry a
   reference to which state that was used for compression of the
   message. This reference is the state_identifier, as described in
   Section 2.

Hannu, et al.                                                   [Page 6]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

   Together with state_identifier the SigComp message may also carry an
   acknowledgement, which would be the acked_identifier, see Section 2.
   The acknowledgement can be either standalone or piggybacked. For
   security reasons as explained in SigComp it is RECOMMENDED that this
   particular feedback is piggybacked and not sent standalone.

5.2. Shared Compression

   To allow for shared compression a compressing endpoint MUST save a
   state, which is the uncompressed version of the compressed message.
   The reference to this uncompressed version is the shared_identifier,
   as described in Section 2. It must also indicate to its remote
   decompressor that this compressed message's uncompressed version was
   saved as a state at the compressor. If a compressing endpoint
   indicates that a shared compression state was saved, its local
   decompressor MUST be able to retrieve that particular state.
   The retrieval of this particular state is done according to the state
   retrieval instructions of the UDVM.

5.3. Maintaining state data across session

   Usually, signaling protocols (e.g. SIP) have the concept of sessions.
   However, from the compression point of view, the messages sent by the
   same source contain redundancies beyond session boundary.
   Consequently, it is natural to maintain the state data from the same
   source across sessions so that high performance can be achieved and
   maintained with the overhead amortized over a much longer period of
   time than a session.

5.4. Use of user-specific dictionary

   The concept of user-specific dictionary is based on the following
   observation that for protocols such as SIP, a given user/device
   combination will produce some messages containing fields that are
   always populated with the same data.

   Take SIP as an example, capabilities of the SIP endpoints
   are communicated during session initiation, and do not tend to change
   unless the device's capabilities change.  Similarly, user-specific
   information such as a user's URL, a user's name, and a user's e-mail
   address likely won't change on frequent basis, and will appear
   regularly in SIP signaling exchanges involving a specific user.

   Therefore, a SigComp compressor could start uploading the user-
   specific dictionary, as part of the initial state, to the
   decompressor even before any signaling messages are generated from a
   particular application . This enables the immediate
   compression/decompression once the messages start to flow.

Hannu, et al.                                                   [Page 7]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

5.5. Checkpoint state and rollback mechanism

   The following mechanisms can be used to recover from decompression
   failure due to a reference to a non-exist state (i.e. not established
   at all or has been deleted by the decompressor) or a corrupted state:

   1) When a compressor sends a compressed message that will create new
   decompression state on the decompressor side, it can set a CHK_PT bit
   in the message to indicate that the newly created state will be a
   checkpoint state. A checkpoint state means that the decompressor
   SHOULD NOT delete it until it is explicitly instructed -- by the
   compressor -- to do so. In addition, the checkpoint state MUST be
   explicitly acknowledged by the receiving decompressor to the sending

   2) When a decompressor encounters a decompression failure as
   described above, it can send a rollback message to its remote
   compressor indicating such a failure. In addition, the rollback
   message may carry a list of state IDs of those checkpoint states that
   are currently maintained by the decompressor. This is useful in the
   case when the decompressor has to delete even checkpoint states due
   to limited memory. When receiving such a rollback message, the
   compressor MUST NOT use any state to compress subsequent messages
   other than those explicitly listed in the rollback message or if the
   list is empty, than those checkpoint states it stores locally and
   have been acknowledged.

5.6. Implicit deletion when creating a new state

   To achieve the maximum compression efficiency, a compressor may want
   to delete part (e.g. dictionary part) of byte buffer to make room for
   the new content.  This is especially important when implementing
   SigComp with limited memory (as in the case of a mobile terminal).

   With the implicit deletion, some part(s) of the byte buffer are
   chosen to be deleted according to a well defined algorithm that is
   known and applied in the same way at both compressor and
   decompressor.  As input into the algorithm, one provides the total
   size to be deleted (e.g. number of bytes), and the algorithm
   specifies which part(s) are to be deleted. The freed room can then
   allow new content to be added to the byte buffer.  Since the same
   algorithm is applied at both SigComp entities, there is no need to
   explicitly signal which part(s) have been deleted.  In particular,
   when the allocated memory has been filled up, each SigComp entity,
   when it wants to add items of combined size S, will implicitly delete
   part(s) of combined size S.  Since there is no need for signaling,
   the scheme is more efficient (lower signaling overhead) and more
   robust (less prone to errors or losses affecting the signaling

Hannu, et al.                                                   [Page 8]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

   For example, the implicit deletion may be applied to the entire
   writable UDVM memory defined by working_memory_start and
   working_memory_end or only some parts of the writable UDVM memory. In
   the latter case, it is assumed that the peer SigComp entities agree
   on which parts the operation is applied to and the total size of
   those parts.

6. Implications on SigComp

   The extended operations will have implication on the SigComp messages
   sent between the compressor and the remote decompressor. It will also
   have implications on the interface between the UDVM and its local
   decompressor functionalities.

6.1. Implications on SigComp messages

   For the support of the extended operation mechanisms, SigComp
   messages must be able to carry the indications and information
   addressed in Section 5.

   The basic SigComp message has the following format:

        0   1   2   3   4   5   6   7
      |                               |
      :   state_identifier (n-bytes)  :
      |                               |
      |                               |
      :    Remaining UDVM bytecode    :
      |                               |

   Figure 3. Format of basic SigComp message.

   The content of the UDVM byte code is an implementation decision.
   However, in the case of extended operations it should convey the
   following information:

   - The shared_identifier as described in Section 2, and Section 5.2,
     MUST be conveyed when shared compression is applied.

   - State identifiers of states that are acknowledged as successfully
     saved by the decompressor, i.e. acked_identifiers.

   Figure 4, depicts an example of what an extended basic SigComp
   message, with the support of all extended operation mechanisms, could
   look like. Note that this is only an example, the format is an
   implementation decision.

Hannu, et al.                                                   [Page 9]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

     0   1   2   3   4   5   6   7
   |                               |
   :  state_identifier (n-bytes)   :
   |                               |
   | s | a | r | b |   Reserved    |
   |                               |
   : shared_identifier (n-bytes)   : Present if 's' is set
   |                               |
   |                               |
   :  acked_identifier (n-bytes)   : Present if 'a' is set
   |                               |
   |           Possible            |
   :        Compressed data        :
   |                               |

   Figure 4. Example of SigComp message for extended operations.

   'r' : If set, then a state corresponding to the decompressed
         version of this compressed message was saved at the

   'b' : Explained in Section 6.2.3.

   For the explanation of (n-bytes) see [SIGCOMP].

6.2. Implications on the UDVM-decompressor interface

   This interface is used to pass feedback information from the UDVM to
   its local decompressor. The decompressor then forwards this
   information on to the local compressor.

6.2.1. General SigComp feedback format

   The general SigComp feedback information has the following format:

Hannu, et al.                                                  [Page 10]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

      |      Total length         |
      |       UDVM_version        |
      |    overall_memory_size    |
      |      cycles_per_bit       |
      |    cycles_per_message     |
      | Requested feedback length |
      |                           |
      :    Requested feedback     :
      |                           |
      | Returned feedback length  |
      |                           |
      :     Returned feedback     :
      |                           |

   Figure 5. High-level view of general SigComp feedback information.

   For description of the items see [SigComp].

   The following Section describes how the general feedback format is
   used to provided extended operation mechanisms to basic sigComp.

6.2.2. Extended SigComp requested feedback format

   The requested feedback is feedback from the UDVM to its remote
   compressor. To make the extended acknowledgement scheme work, the
   Requested feedback is filled with information on states that UDVM
   requests the state handler to save. In case the state handler refuses
   to save one or more of the indicated states, the feedback sent from
   the compressor will be updated accordingly. The format of the
   Requested feedback is of the following form:

   The variable n specifies the number of state identifiers included in
   the extended operations feedback format.
   id_length (x) and id_values (x) corresponds to the same state.

Hannu, et al.                                                  [Page 11]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

   |            n              |
   |        id_length 1        |
   |                           |
   :        id_value_1         :
   |                           |
   |        id_length 2        |
   |                           |
   :        id_value_2         :
   |                           |
            :         :
            :         :
   |        id_length n        |
   |                           |
   :        id_value_n         :
   |                           |

   Figure 6. Format of the Requested feedback.

6.2.2. Extended SigComp returned feedback format

   The returned feedback is feedback from the remote endpoint to the
   local compressor. The 'r' bit indicates that an uncompressed version
   of the compressed message sent in this message has been saved at the
   remote endpoint, with the demands of Section 5.2. The 'b' bit is
   explained in Section 6.2.3. The format of the returned feedback is of
   the following form:

Hannu, et al.                                                  [Page 12]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

   |r|b|        n              |
   |        id_length 1        |
   |                           |
   :        id_value_1         :
   |                           |
   |        id_length 2        |
   |                           |
   :        id_value_2         :
   |                           |
            :         :
            :         :
   |        id_length n        |
   |                           |
   :        id_value_n         :
   |                           |

   Figure 7. Format of the Returned feedback.

6.2.3. Acknowledgement optimization

   This section describes an optimization for the case when shared
   compression is used and an acknowledgement is piggybacked.

   Consider the following scenario. Comp_1 sends a message M compressed,
   with state(s0) to decomp_1. As comp_1 supports shared compression it
   saves state(M), and sets bit 'r', to signal that state(M) can be used
   by comp_2 in the compression process.

   If decomp_1 saves state(s0+M) = state(s1), which is the new state of
   the UDVM after decompression of M, then state(s1) can be implicitly
   acknowledged, if comp_2 uses M for further compression. Comp_2 sets
   the 'b' bit, which indicates that state(s0+M) is saved, which can be
   found from state(M), which is referenced by shared_identifier. This
   avoids acked_identifier to be present in the SigComp message for
   Thus, a compressor that sets the 'r' bit should also hold a mapping
   between state(M) and state(s0+M).

   Note: The only state that this feature acknowledges, is the state
   that was created by combining the state used for compression of the

Hannu, et al.                                                  [Page 13]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

   shared message and the shared message itself. For any other case the
   acked_identifier has to be used.

7. Security considerations

   The features in this document are believed not to add any additional
   security risks to the ones in [SIGCOMP].

8. IANA considerations

   [Editors note: This section is TBW]

9. Acknowledgements

   [Editors note: This section is TBW. Some names have been moved here
   from the list of authors]

   Thanks to

     Carsten Bormann (cabo@tzi.org)
     Christopher Clanton (christopher.clanton@nokia.com)
     Miguel Garcia (Miguel.A.Garcia@ericsson.com)
     Lars-Erik Jonsson (lars-erik.jonsson@epl.ericsson.se)
     Khiem Le (khiem.le@nokia.com)
     Mats Nordberg (mats.nordberg@epl.ericsson.se)
     Jonathan Rosenberg (jdrosen@dynamicsoft.com)
     Krister Svanbro (krister.svanbro@epl.ericsson.se)

   for valuable input and review.

10. Authors' addresses

   Hans Hannu
   Phone:  +46 920 20 21 84
   Fax:    +46 920 20 20 99
   E-Mail: hans.hannu@epl.ericsson.se

   Jan Christoffersson
   Phone:  +46 920 20 28 40
   Fax:    +46 920 20 20 99
   E-Mail: jan.christoffersson@epl.ericsson.se

   Stefan Forsgren
   Phone:  +46 920 20 23 39
   Fax:    +46 920 20 20 99
   E-Mail: stefan.forsgren@epl.ericsson.se

Hannu, et al.                                                  [Page 14]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

     Box 920
     Ericsson Erisoft AB
     SE-971 28 Lulea, Sweden

   Ka Cheong Leung
   Phone:  +1 972 374-0630
   Fax:    +1 972 894-4589
   E-mail: kacheong.leung@nokia.com

   Zhigang Liu
   Phone:  +1 972 894-5935
   Fax:    +1 972 894-4589
   E-Mail: zhigang.liu@nokia.com

     Nokia Research Center
     6000 Connection Drive Irving, TX 75039, USA

   Richard Price
   Phone:  +44 1794 833681
   E-mail: richard.price@roke.co.uk

     Roke Manor Research Ltd
     Romsey, Hants, SO51 0ZN
     United Kingdom

11. Intellectual Property Right Considerations

   The IETF has been notified of intellectual property rights claimed in
   regard to some or all of the specification contained in this
   document. For more information consult the online list of claimed

12. References

   [SIP]       Handley et. al., SIP: Session Initiation Protocol,
               RFC 2543, Internet Engineering Task Force, March 1999

   [SIGCOMP]   H. Hannu et. al., Signaling Compression (SigComp),
               Internet Draft (work in progress), February 2002.

Hannu, et al.                                                  [Page 15]

INTERNET-DRAFT       SigComp - Extended Operations    February 15, 2002

Appendix A. Document history

   - January 28, 2002, version 00

      First version. This draft describes the extended operation
      mechanisms, explicit acknowledgements and shared compression from

   - February 15, 2002, version 01

     Second version. Updated to reflect the changes made in [SIGCOMP].

   This Internet-Draft expires in August 2002.

Hannu, et al.                                                  [Page 16]

Html markup produced by rfcmarkup 1.129b, available from https://tools.ietf.org/tools/rfcmarkup/