Network Working Group                         Zhigang Liu, Editor, Nokia
INTERNET-DRAFT                         Richard Price, Siemens/Roke Manor
Expires: December 17, 2003
                                                           June 17, 2003



Applying Signaling Compression (SigComp) to the Session Initiation
                             Protocol (SIP)
                  <draft-ietf-rohc-sigcomp-sip-00.txt>



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 to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at http://
   www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

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


Abstract

   This document describes some specifics when Signaling Compression
   (SigComp) [RFC-3320] is applied to the Session Initiation Protocol
   (SIP) [RFC-3261]. Any SigComp implementation that is used for SIP
   compression must follow this document, in addition to [RFC-3320] and
   [RFC-3485].






Liu & Price                                                     [Page 1]


INTERNET-DRAFT           Applying SigComp to SIP           June 17, 2003


1.  Introduction

   SigComp [RFC-3320] is a solution for compressing messages generated
   by application protocols. Although its primary driver is to compress
   SIP messages, the solution itself has been intentionally designed to
   be application agnostic so that it can be applied to any application
   protocols. (This is denoted as ANY/SigComp.) Consequently, many
   application dependent specifics are left out.  It is intended that a
   separate document will be needed to describe those specifics when
   SigComp is applied to a particular application protocol.

   This document binds SigComp and SIP (denoted as SIP/SigComp). Any
   SigComp implementation that is used for SIP message compression must
   follow this document, in addition to [RFC-3320] and [RFC-3485].

   Note: the mechanism of discovering SigComp support at SIP layer is
   specified in [RFC-3486].

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in BCP 14, RFC 2119
   [RFC-2119].


2.  Minimum Values of SigComp Parameters for SIP/SigComp

   In order to support a wide range of capabilities among endpoints
   implementing SigComp, SigComp defines a few parameters to describe
   SigComp behaviour when receiving SigComp messages (see section 3.3 of
   [RFC-3320]). For each parameter, [RFC-3320] specifies a minimum value
   that any SigComp endpoint MUST support for ANY/SigComp. Those minimum
   values were determined with the consideration of all imaginable
   devices in which SigComp may be implemented.  Scalability is also
   considered as a key factor.

   However, some of the minimum values specified in [RFC-3320] are too
   small to allow good performance for SIP message compression.
   Therefore, they are increased for SIP/SigComp as specified in the
   following sections. For completeness, those parameters that are the
   same for SIP/SigComp as they are for ANY/SigComp are also listed.

   Note: the new minimum values are specific to SIP/SigComp. They do not
   apply to any other application protocols.

   Note: a SigComp endpoint MAY offer additional resources if available;
   these resources can be advertised to remote endpoints as described in
   section 9.4.9 of [RFC-3320].




Liu & Price                                                     [Page 2]


INTERNET-DRAFT           Applying SigComp to SIP           June 17, 2003


2.1.  decompression_memory_size (DMS) for SIP/SigComp

   Minimum value for ANY/SigComp: 2048 bytes, as specified in section
   3.3.1 of [RFC-3320].

   Minimum value for SIP/SigComp: 8192 bytes.

   Reason: DMS of 2048 bytes is too small for SIP message compression,
   as it seriously limits the compression ratio and even makes
   compression impossible for certain messages. For example, the
   condition set by [RFC-3320] for SigComp over UDP means: C + 2*B + R +
   2*S + 128 < DMS (each term is described below).  On the other hand,
   8KB additional memory should not cause any problem for an endpoint
   that implements SIP, SigComp, and applications that use SIP.

   C   = size of compressed application message, depending on R.
   B   = size of bytecode (note: two copies - one as part of SigComp
         message and one in UDVM memory)
   R   = size of ring buffer in UDVM memory
   S   = any additional state uploaded other than that created from the
         content of the ring buffer at the end of decompression. Similar
         to B, two copies of S are needed
   128 = the smallest address in UDVM memory to copy bytecode


   Note: DMS is per SigComp message and the memory can be reclaimed
   after the message has been decompressed.


2.2.  state_memory_size (SMS) for SIP/SigComp

   Minimum value for ANY/SigComp: 0 (zero) bytes, as specified in
   section 3.3.1 of [RFC-3320].

   Minimum value for SIP/SigComp: 2048 bytes.

   Reason: a non-zero SMS allows an endpoint to upload a state in the
   first SIP message sent to a remote endpoint without the uncertainty
   of whether it can be created in the remote endpoint due to lack of
   memory.

   Note: SMS is per compartment. An endpoint MAY offer different SMS for
   different compartments as long as the SMS is not less than 2048
   bytes.

   [Editor's note: this would prevent the use of SigComp in conjunction
   with stateless SIP proxies. Is this acceptable?]




Liu & Price                                                     [Page 3]


INTERNET-DRAFT           Applying SigComp to SIP           June 17, 2003


2.3.  cycles_per_bit (CPB) for SIP/SigComp

   Minimum value for ANY/SigComp: 16, as specified in section 3.3.1 of
   [RFC-3320].

   Minimum value for SIP/SigComp: 16 (same as above)


2.4.  SigComp_version (SV) for SIP/SigComp

   For ANY/SigComp: 0x01, as specified in section 3.3.2 of [RFC-3320].

   For SIP/SigComp: 0x01 (same as above)


2.5.  locally available state (LAS) for SIP/SigComp

   Minimum value for ANY/SigComp: none, see section 3.3.3 of [RFC-3320]

   Minimum value for SIP/SigComp: the SIP/SDP-specific static dictionary
   as defined in [RFC-3485].


3.  Compartment and State Management for SIP/SigComp

   When SigComp is applied to SIP, there is a one-to-one relationship
   between a SIP dialog (see section 12 of [RFC-3261]) and a pair of
   peer SigComp compartments. The mapping is handled by SIP (not
   SigComp) as follows:

   - When a SIP user agent client (UAC) compresses and sends a request
   that can establish a dialog (such as INVITE), it creates a
   compartment associated with the dialog.

   - When a SIP user agent server (UAS) receives a compressed request
   and decides to respond with a response that establishes a dialog
   (such as a 2xx to INVITE), it creates a compartment associated with
   the dialog.

   - Conceptually, the SIP layer of each SigComp endpoint uses the
   dialog ID as the SigComp compartment ID for the compartment
   associated with the dialog.  However, the actual presentation of the
   compartment ID is a local implementation issue. The only requirement
   is to maintain a local one-to-one mapping between a dialog ID and a
   compartment ID.

   - A SigComp compartment will be closed by SIP when the corresponding
   dialog is terminated.



Liu & Price                                                     [Page 4]


INTERNET-DRAFT           Applying SigComp to SIP           June 17, 2003


   Usually, any states created during the lifetime of a compartment will
   be "logically" deleted when the compartment is closed. A logical
   deletion becomes a physical one when all the compartments that
   created the (same) state are closed. However, a sigcomp endpoint may
   offer to keep a state created upon request from its peer endpoint
   during a dialog beyond the duration of that dialog. This may improve
   compression efficiency of SIP messages generated by the same peer
   endpoint in subsequent dialogs.  In that case, it can inform its peer
   sigcomp endpoint by announcing the (partial) state ID in the returned
   SigComp parameters at the end of the dialog. That signals the state
   will be maintained until the associated timer times out. Since there
   is no mechanism in SigComp and SIP to convey the timeout value, a
   default value needs to be specified [Editor's note: actual value will
   be determined later].  The default value can be overwritten by
   different means in a particular SIP configuration so long as the
   value is known to and agreed by all SigComp endpoints involved.  If
   one sigcomp endpoint is a SIP registrar server and its peer endpoints
   register with it, the lifetime of the state can be specified to be
   the same as that of the registration.

   [Editor's note: this is more complicated than it appears. Above is
   only preliminary text serving as a starting point. There are
   alternative approaches such as associating states or compartments
   with URIs that are persistent through dialogs. More work is needed on
   this section before the next version of the draft.]


4.  Delimiting SIP Messages and SigComp Messages on the Same Port

   In order to limit the number of ports required by a SigComp-aware
   endpoint, it is possible to multiplex SigComp messages and 'vanilla'
   SIP messages (i.e. uncompressed SIP messages with no SigComp header)
   on the same port.

   For a message-based transport such as UDP, the receiving endpoint
   checks the first octet of the UDP payload to determine whether the
   message has been compressed using SigComp.  If the MSBs of the octet
   are "11111" then the message is considered to be a SigComp message
   and is parsed as per [RFC-3320].  If the MSBs of the octet take any
   other value, then the message is assumed to be an uncompressed SIP
   message, and is passed directly to the application with no further
   effect on the SigComp layer.

   For a stream-based transport such as TCP, the receiving endpoint
   checks the first octet of the TCP data stream to determine whether
   the stream has been compressed using SigComp.  If the MSBs of the
   octet are "11111" then the stream is considered to contain SigComp
   messages and is parsed as per [RFC-3320].  If the MSBs of the octet



Liu & Price                                                     [Page 5]


INTERNET-DRAFT           Applying SigComp to SIP           June 17, 2003


   take any other value, then the stream is assumed to contain
   uncompressed SIP messages, and is passed directly to the application
   with no further effect on the SigComp layer.  Note that SigComp
   message delimiters MUST NOT be used if the stream contains
   uncompressed SIP messages.

   Applications MUST NOT mix SIP messages and SigComp messages on a
   single TCP connection.  If the TCP connection is used to carry
   SigComp messages then all messages sent over the connection MUST have
   a SigComp header.


5.  Continuous Mode over TCP

   Continuous Mode is a special feature of SigComp, which is designed to
   improve the overall compression ratio for long-lived connections.
   However, it requires the transport itself to provide a certain level
   of protection against denial of service attacks.  TCP is not
   considered to provide enough protection, and so Continuous Mode MUST
   NOT be used over TCP.

   [Editor's note: is this too restrictive in cases where IPsec is
   enabled below TCP?]


6.  Security Considerations

   The same security considerations as described in [RFC-3320] apply to
   this document. Note that keeping SigComp states longer than the
   duration of a SIP dialog should not pose new security risks for two
   reasons: a) the state has been allowed to be created in the first
   place; and b) this is on voluntary basis and a SigComp endpoint can
   choose not to offer it.



7.  Normative References

   [RFC-2119]  Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC-3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
               A., Peterson, J., Sparks, R., Handley, M. and E.
               Schooler, "SIP: Session Initiation Protocol", RFC 3261,
               June 2002.

   [RFC-3320]  Price, R., Bormann, C., Christoffersson, J., Hannu, H.,
               Liu, Z. and J. Rosenberg, "Signaling Compression



Liu & Price                                                     [Page 6]


INTERNET-DRAFT           Applying SigComp to SIP           June 17, 2003


               (SigComp)", RFC 3320, January 2003.

   [RFC-3485]  Garcia-Martin, M., Bormann, C., Ott, J., Price, R., and
               A. Adam, "The Session Initiation Protocol (SIP) and
               Session Description Protocol (SDP) Static Dictionary for
               Signaling Compression (SigComp)", RFC 3485, February
               2003.

   [RFC-3486]  Camarillo, G., "Compressing the Session Initiation
               Protocol (SIP)", RFC 3486, February 2003.


8.  Authors' Addresses

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

   Phone:  +1 972 894-5935
   E-mail: zhigang.c.liu@nokia.com


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

   Phone: +44 1794 833681
   Email: richard.price@roke.co.uk




9.  Full copyright statement

   Copyright (C) The Internet Society (2003). All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of



Liu & Price                                                     [Page 7]


INTERNET-DRAFT           Applying SigComp to SIP           June 17, 2003


   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.



This Internet-Draft will expire on December 17, 2003.

































Liu & Price                                                     [Page 8]