view Side-By-Side changes
Network Working Group H. Hannu (Editor), Ericsson INTERNET-DRAFT J. Christoffersson, Ericsson Expires:MayJuly 2002 C. Clanton, Nokia S. Forsgren. Ericsson K. Le, Nokia K. Leung, Nokia Z. Liu, Nokia R. Price, Siemens/Roke Manor J. Rosenberg, Dynamicsoft K. Svanbro, EricssonNovember 21, 2001January 28, 2002 Signaling Compression (SigComp)draft-ietf-rohc-sigcomp-02.txt<draft-ietf-rohc-sigcomp-03.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 cite them other than as "work in progress". The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/lid-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@cdt.luth.se.Hannu, et al. [Page 1] INTERNET-DRAFT SigComp November 21 , 2001AbstractThe Session Initiation Protocol (SIP), along with many other protocols usedThis document defines one out of two parts formultimedia communications, such as RTSP, are textual protocols engineereda basic solution forbandwidth rich links. With the planned usage of these protocols in wireless handsetscompressing messages generated by protocols, such aspart of 2.5GSIP, called SigComp. The architecture and3G cellular networks, the large sizepre-requisites oftheir messages andSigComp is outlined, along with thechatty natureformat of theprotocols are problematic. This document provides a modular, robust and efficient message compression scheme, suitable for compression of ASCII based protocols' messages.SigComp message. Hannu, et al. [Page 1] INTERNET-DRAFT SigComp January 28 , 2002 0. Document History - October 19, 2001, version 00 First version. The draft describes the current ideas, from people involved in the ROHC WG, of how to perform compression of application signaling messages. - October 31, 2001, version 01 Second version. Additional section, 5.2.1, which describes when a message identifier can be reused. - November 21, 2001, version 02 Third version. Section 6 has been moved to a separate draft. The third version describes a modular solution, providing flexibility for implementers to decide which functions they want to integrate. - January 28, 2002, version 03 Fourth version. SigComp version 02 is divided into this draft, a UDVM draft and a extended operation mechanisms draft. Compressor/decompressor (UDVM) state approach has been introduced for security reasons. Table of contents 1. Introduction..................................................3 2. Terminology...................................................3 3.High-level description of SigComp.............................4 4.The SigCompprotocol..........................................5Architecture......................................5 4. Applicability of SigComp......................................6 5. SigComp operation.............................................6 5.1. Pre-requisites..............................................6 5.2. CompressionFramework Component...............................9states..........................................7 5.3. Saving and deleting states..................................7 6.Capability exchange...........................................13SigComp message...............................................8 7.Security considerations.......................................14Capability exchange...........................................8 8.IANA considerations...........................................14Security considerations......................................10 9.Authors' addresses............................................14IANA considerations..........................................10 10.Intellectual Property Right Considerations....................16Acknowledgements.............................................10 11.References....................................................16AuthorsĘ addresses...........................................10 12. References...................................................12 Hannu, et al. [Page 2] INTERNET-DRAFT SigCompNovember 21January 28 ,20012002 1. Introduction The Session Initiation Protocol (SIP) [SIP], along with many other application protocols used for multimedia communications, such as RTSP [RTSP], are textual protocols engineered for bandwidth rich links. As a result, these messages have not been optimized for message size. Typical SIP messages are from a few hundred bytes to as high as 2000. To date, this has not been a significant problem. With the planned usage of these protocols in wireless handsets as part of 2.5G and 3G cellular networks, the large size of these messages is problematic.The problem is not bandwidth efficiency (the media stream still consumes the majority of the bandwidth), but rather latency.With low-rate IP connectivity,store-and-forwardstore-and- forward delays are significant.For CDMA2000, for example, the basic channel will support only 9.6 kbps. At this rate, transmission of each byte requires 0.8ms. A 500 byte SIP message requires nearly half a second to transmit.Taking into account retransmits, and the multiplicity of messages that are required in some flows, call setup and feature invocation are adversely affected. Therefore, we believe there is a merit ininvestigating ways to reducereducing these message sizes.This document defines SigComp, a modular, robust and efficient message compression scheme, even when the transport path between the compressor and decompressor is unreliable, i.e. prone to errors, losses and misordering.From the view of external users, SigComp is only to provide compression service.What you get is theThe service provided is that of the underlying transport+plus compression.Nothing more. Nothing less. SigComp consists of a compression componentThis document outline the architecture anda protocol component. The protocol component should not be "extracted" outpre-requisites of SigComp, along with thecontentsformat ofthis document for other purpose.the SigComp message. This document does not specify a negotiation or capability exchange mechanism. The application thatwould like to applyapplies SigComp should also negotiate the usage ofSigComp.SigComp including capability exchange. Compression/decompression algorithms functionality for SigComp is provided by [UDVM]. 2. Terminology 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 [RFC-2119].Byte bufferUniversal Decompressor Virtual Machine (UDVM) Thedecompressorvirtual machine described in [UDVM]. The UDVM is usedbyfor decompression of SigCompmaintainsmessages. The UDVM is capable of interoperating with abyte buffer, which depending on the implementation choice, contain any previously received text strings that might be usefulwide range of compression algorithms. Decompressor The decompressor invokes the UDVM. It is responsible forfuture compression.supplying the UDVM with compressed data and make decompressed data available for the application. Hannu, et al. [Page 3] INTERNET-DRAFT SigCompNovember 21January 28 ,2001 Context The context of SigComp is the necessary information2002 Encoder Encodes data according toperform compression and decompression.a (compression) algorithm into UDVM readable code. Thecorrect context to use is identifiedencoded data can be decoded bythe IP Source and Destination addresses. 3. High-level description of SigComp Compression and decompression is performed at two communicating end- points, A and B, see Figure 1. Whenamessage is to be compressedUDVM provided with thecompressing entity looks upneeded instructions. Compressor The compressor invokes theIP source and destination addressesencoder, andidentifieskeeps track of states that can be used for compression. Responsible for supplying UDVM instructions to thecorrect contextpeer decompressor in order for compressed data touse. If no context exists, one is created. Depending onbe decompressed. State Data saved either by a compressor or a decompressor. The data reflects theimplementationcontents ofthe SigComp compressing entity the protocol might addaheaderUDVM memory. State index Reference to a state saved either by a compressor or a decompressor. Application Invokes theoutput of the compressor. The finalSigComp compressor and decompressor. SigComp messageis then passed on to underlying layers for transport to the decompressing entity. Upon the arrivalIn case of aSigCompmessagethe SigComp decompressing entity will, if no context exists create one. If theoriented transport mechanism, such as UDP, a SigComp messagecarriescorresponds to exactly one (UDP) packet. For aheader it removes the header and takes the appropriate actions (which depends on the implementation of the decompressing entity), then it gives the remainingstream oriented transport, such as TCP, each SigComp message is separated by a 0xFFFF delimiter, see [UDVM]. Application data (message) Data, also referred to asinputmessage, which is to be compressed by thedecompressor. After a correct decompressioncompressor. When delivered from theuncompressed message will bedecompressor the data has passedon tothrough thereceiver. original +------------------+decompression process and is referred to as decompressed data or decompressed message. Hannu, et al. [Page 4] INTERNET-DRAFT SigComp January 28 , 2002 3. The SigComp Architecture Compression and decompression is performed at two communicating end- points, see Figure 1. +--------------------+ +--------------------+message|+----------+Compressor 1 |message|+------------+Decompressor 1 |------------+>|Compressor|-- - + - - - - - -+>|Decompressor|-----+->|+-----|----++---------+ | | +---------+ |+----|-------+| |+---|---+Encoder | |+---|---+| ||Context|UDVM | ||Context|| +---------+ |+---+---+| +---------+ |+---+---++--------------------+ +--------------------+ ^ App. ^ | ^ |+---+---+App. ^ | data |+---+---+| ||Context|v data | +----|-------------|-+ +-|-------------|----+ ||Context||decompressed|+---|---+| SigComp |+---|---+| | | | | Application v | message |+-----|--------+| Application | | | v +---------->----------+ v | | +-------+ | | +-------+ | | | State | | Data transport | | State | | | +-------+ | | +-------+ | | ^ +----------<----------+ ^ | | | | | SigComp | ^ | | | | | | message |+----|-----------+|<------------+-|| | +----|-------------|-+ +-|-------------|----+ | App. ^ | | | App. | v data | v | v data v +--------------------+ +--------------------+ | Decompressor|<+- - - - - - +-|2 | | Compressor|<+--2 | | +---------+ | | +---------+ | | | UDVM | | |+--------------+| Encoder |+----------------+|+------------------+| +---------+ | | +---------+ | +--------------------+ +--------------------+A BFigure 1. SigComp High-level view.Note: ThereThe different components in the SigComp architecture are described below. The application isno needresponsible forone uncompressed message to correspond to exactly one compressed message. Two or more compressed messages can be sent to reconstruct a single uncompressed message, whichinvoking the SigComp compressor and decompressor, and establish the applicability of SigComp between two communicating end points. The compressor isusefulresponsible forsegmenting compressed messages that are larger thanproviding its peer decompressor with theMTUUDVM instructions for decompression of messages. For thetransport protocol, see [ALG].actual compression it invokes the encoder. The compressor also keeps track of available states, that may contain useful information for the compression process. The decompressor contains the UDVM, and is responsible for providing it with input. Hannu, et al. [Page4]5] INTERNET-DRAFT SigCompNovember 21January 28 ,2001 4. The SigComp protocol The main task of the SigComp protocol2002 A state isto provide feedback from the decompressor to its peer compressor. The amount of feedback information and how thedata saved either by a compressorreact toor a decompressor. The data reflects thefeedback are choicescontents ofthe implementation. An implementationa UDVM memory. The saved state mayalso choose not to implement any feedback mechanisms. For the purpose of feedback, SigComp hasbe used for decompression/compression between aset of headers, as definedcompressor and its peer decompressor, e.g. compressor 1 and decompressor 1 inSection 4.1.Figure 1. Theuse of headerssame state information isestablished at the capability exchange phase, see Section 6. The acknowledgment procedure in Section 4.2 together with the headers MAY beusedby a decompressing entity to provide knowledgeboth for compression and decompression. In order to retrieve a certain state its reference must be given, denoted state index. State parameters and retrieval of states are further described in [UDVM]. 4. Applicability of SigComp The application is responsible for establishing thecompressing entity about whatapplicability of SigCompmessages it has received.between the communicating end points. Thiswould allowinvolves finding out thecompressortransport (e.g. UDP or TCP) and port to usepreviously sent messagesfor SigComp messages. [Editors note: This should be further described in draft XXXX] The parameters for thecompression process, even whenUDVM operation should be exchanged/negotiated together with theunderlying transport protocol is unreliable, seeparameters in Section 7. [Editors note: This should be further described in draft XXXX] 5.4.1. TheSigCompheadersoperation TheSigComp headers consist ofapplication provides thefollowing fields: Message IDentification (MID) numbercompressor with data to be compressed. TheMID numberdata isused to keep track of sent and received messages, andcompressed by the encoder in such away that the peer decompressor with the UDVM can decompress the data correctly if the compressed data isuseful for detectingnot tampered with during the transportation. When a messageloss and/or misordering. CRC-verification of messages (CRC-M) This CRCiscalculated overto be compressed theuncompressed message, e.g.compressor identifies theSIP INVITE message, andstate to use. If no state exists, one is created. An indication of the used state MUST be sent along with the compressed message toverifythecorrectness of a decompressed SigComp message. Acknowledgement A SigComp acknowledgement can either be carried within apeer decompressor. The SigComp message(Piggybacked) or be sent by itself (Standalone). Note: Itisassumed thatthen passed on to underlying layers for transport to thetotal lengthpeer decompressor. Upon the arrival of a SigComp messageis provided bytheunderlying transport layer. Sincedecompressor will load thelength ofUDVM with theheader partindicated state. The message isself-containedthen decompressed by thelength of the compressed information can be derived by subtracting the header length from the total SigComp message length. The compressed information length could be zero in the case of a Standalone acknowledgement. Header formats are described in the following sub-sections. Hannu, et al. [Page 5] INTERNET-DRAFT SigComp November 21 , 2001 4.1.1. Normal header formats These are the normal header formats to use. Format 1 SHOULD be used when there has been no gap in the received MID numbers up to the generation of this SigComp message. To acknowledge received SigComp messages after a gap in the received MID numbers, Format 2 MUST be used Format 1 0 1 2 3 4 5 6 7 +---+---+---+---+---+---+---+---+ | MID | Cumulative ACK| +---+---+---+---+---+---+---+---+ | CRC-M | +---+---+---+---+---+---+---+---+ / Compressed information / / according to Section 5 / +---+---+---+---+---+---+---+---+ Format 2 0 1 2 3 4 5 6 7 +---+---+---+---+---+---+---+---+ | 1 1 1 0 | MID | +---+---+---+---+---+---+---+---+ | CRC-M | +---+---+---+---+---+---+---+---+ | AC | RMID (1) | +---+---+---+---+---+---+---+---+ | RMID (2) | RMID (3) | +---+---+---+---+---+---+---+---+ : : / / : : +---+---+---+---+---+---+---+---+ | RMID (C-1) | RMID (C) | +---+---+---+---+---+---+---+---+ / Compressed information / / according to Section 5 / +---+---+---+---+---+---+---+---+ MID: "0000" to "1101". The Message IDentification (MID) number is commonly increased with one for each sent message. However, there is the exception when the next MID to be assigned is not "free", see Section 4.2.1. Hannu, et al. [Page 6] INTERNET-DRAFT SigComp November 21 , 2001 Cumulative ACK Acknowledges all SigComp messages with MID number equal to or less than the value of this field. The value of this field MUST NOT be set to a value so that non-received SigComp messages are acknowledged. A received acknowledgement with higher value than the maximum MID MUST be ignored and MUST NOT be considered as an acknowledgement for SigComp messages. CRC-M TBW RMID Received MID of a SigComp message, which is being acknowledged. AC Number of received SigComp message being acknowledged (RMID), which are included in the List. If AC is an even number the last RMID, RMID(C), is only padding, in order to get octet aligned. 4.1.2. Extended message formats Format 3 0 1 2 3 4 5 6 7 +---+---+---+---+---+---+---+---+ | 1 1 1 1 | TBD | +---+---+---+---+ + / TBD / : : / / +---+---+---+---+---+---+---+---+ Note: The usage of this format is yet to be determined. (Decompressing failure etc.) 4.2. Acknowledgement procedure The acknowledgement procedure is dependent on the information carried in the SigComp headers. It is RECOMMENDED that all SigComp messages are acknowledged. Three functions are needed: - A function that holds the received MID-numbers which should be acknowledged. Hannu, et al. [Page 7] INTERNET-DRAFT SigComp November 21 , 2001 - A function that keeps a mapping between sent MID numbers and acknowledged MID numbers. - A function that controls which MID numbers that an entity is allowed to use. It is up to the implementation to realize these functions The acknowledgement procedure is best described using an example, see Figure 3. A B | | Step (0) |<----------- MID 1B ----------| | | Step (1) |-------- MID 1A, ACK 1B ---->| | | Step (2) |<--------MID 2B, ACK 1A ------| | | Figure 3. Example of the acknowledgement procedure. Step (0): A SigComp message with Message IDenitifcation number 1 is sent from B to A, denoted MID 1B in Figure 3. MID 1B MUST be acknowledged by A until A is confident that B knows that MID 1B is received. Step (1): Entity A acknowledges MID 1B with SigComp message MID 1A. A mapping between MID 1A and MID 1B is stored at A. Note that MID 1A do not have to carry compressed information, it can be a Standalone Acknowledgement. Step (2): Entity B acknowledges MID 1A and stores a mapping between MID 2B and MID 1A. When Entity A receives MID 2B it uses the mapping to find out which SigComp message(s) from B was acknowledged by MID 1A. The mapping is removed and MID 1B MUST NOT be acknowledged anymore. 4.2.1. Reuse of Message IDentification numbers This section describe when a MID can be reused to avoid misinterpretations in case of wraparound of MID numbers combined with message loss and/or misordering. A MID number MUST NOT be reused until the SigComp message with that particular MID number has been acknowledged and stopped being acknowledged, or that the message can be regarded as lost. Hannu, et al. [Page 8] INTERNET-DRAFT SigComp November 21 , 2001 Figure 4, is a continuation of the example given in Figure 3. The Figure depicts an example when it is allowed to reuse a MID number that has been acknowledged and stopped being acknowledged. A B | | Step (3) |-------- MID 2A, ACK 2B ---->| | | Figure 4. Continuation of Figure 3. Step (3): When Entity B receives an acknowledgement for MID 2B it knows that the mapping for MID 1B is removed at A. Therefore it is safe for entity B to reuse MID 1B. A message can be regarded as lost, if the SigComp entity has received acknowledgments for higher MID numbers than the MID number the entity wishes to reuse. However, as SigComp must stand against moderate misordering according to [REQ], a MID number X MUST NOT be regarded as lost until an acknowledgement for message(s) with MID numbers > (X+2) has been received. 5. Compression Framework Component SigComp uses the "Universal Decompression Algorithm" described in [ALG] for the actual compression. The "universal decompressor" is capable of interoperating with a wide range of compression algorithms. It is the compressor which decides what information that is stored in the dictionary of the decompressor. The compressor also controls how the decompressor performs the decompression. This section describes various features that a SigComp implementation may use to improve the compression efficiency. Some of these feature requires additional entries in the byte buffer of the "universal decompressor". 5.1. Pre-population A compressor MAY pre-populate the dictionary with well-known information (text-strings), in order to increase the compression efficiency. This is a rather simple approach with the "universal decompressor", see [ALG]. 5.2. Per-message compression Compressing a message without any relation to any other message is referred to as per-message compression. Per-message compression can be used regardless of the reliability of the underlying transport and Hannu, et al. [Page 9] INTERNET-DRAFT SigComp November 21 , 2001 the usage of the SigComp headers, as it is not dependent on any previously transmitted messages. To get compression of messages at all, this is the approach which all implementations of SigComp MUST support. Implementation support for the features in the following sections is optional. 5.3. Dynamic compression A compressing entity MAY choose to use previously sent messages in the compression process in an attempt to improve the compression efficiency. This is referred to as dynamic compression. To ensure reliable operation of the compression algorithm a compressor MUST NOT use dynamic compression, unless it is certain of that the message it is about to compress can be decompressed by the decompressor. If SigComp is used over reliable transport, such as TCP, dynamic compression does not introduce any robustness problem. To withhold robustness over unreliable transport, such as UDP, the SigComp acknowledgement procedure MUST be used when dynamic compression is applied. Thus, a previously sent message MUST NOT be used in the compression process until it has been acknowledged. Referring to Figure 3, B MAY use information in 1B to improve the compression efficiency of the message corresponding to 2B. 5.4. Shared compression Shared compression is referred to the case when a compressor 'A' make use of decompressed messages received by the decompressor located at the same SigComp entity. These decompressed messages MUST originate from the corresponding SigComp entity, which decompressor is controlled by compressor 'A'. Shared compression is OPTIONAL and its support is established in the capability exchange. To allow shared compression it is REQUIRED to use the SigComp acknowledgment procedure regardless of the reliability of the underlying transport. Referring to Figure 3, B MAY use information in 1A to improve the compression efficiency of the message corresponding to 2B. For shared compression to be applicable with the "universal decompressor" a SigComp entity supporting shared compression MUST implement two additional entries in the byte buffer of the decompressor: shared_start This is the start address in the byte buffer where original Hannu, et al. [Page 10] INTERNET-DRAFT SigComp November 21 , 2001 messages (not compressed) from this entity, which are being acknowledged, are to be placed into the byte buffer of the decompressor. By setting shared_start = 0, a compressor can avoid that any acknowledged message is written to the byte buffer. shared_length This is used by the protocol part to inform the decompressor algorithm if there was any new information,UDVM, andthe length of it, writtenpossible passed on to theshared compression part of the byte buffer. To avoid that same message information is processed twice, in case of multiple acknowledges for one message, the protocol MUST set shared_length = 0. Figure 5. depicts a logical view of the decompressor byte buffer at a SigComp entity which supports shared compression. +----A----------------------B---------------------+ | | Circular buffer for | Circular buffer for | | | received messages | shared compression | +----A----------------------B---------------------+ Figure 5. Logical view of the decompressor byte buffer.receiving application. 5.1. Pre-requisites Aand B are the addresses which circular_buffer and shared_start point to. The received circular buffer willcompressor MUST bebetween circular_buffer and shared_start-1. When the decompressing SigComp entity receives a SigComp message containing acknowledgements for e.g. MID-2 and MID-3 it will copy the original messages corresponding to MID-2 and MID-3 to the decompressor buffer at the address specified in shared_start. 5.4.1. Specification of ordering constraints Inconsistency in the dynamic context data can happen if the context is shared and messages, which will update the dynamic context data, are sent concurrently by both entities. The approach to deal with this problem is to specify ordering constraints of all update messages sent by both entities so that the order is total and the same at both entities, at least for the eligible updates. Three rules are defined; local, causality and concurrent rule. With the first two rules and the use of the 3-way handshake, it is possible to ensure consistency during updates of dynamic context data, but there is one case that these do not resolve; dynamic context data updates issued concurrently by both entities. With an update request in the description of the rules below means; Every message that carries informationcertain thatis used to update the dynamic context data. Hannu, et al. [Page 11] INTERNET-DRAFT SigComp November 21 , 2001 Local Rule When a dynamic contextcompressed dataupdate request R' is sentcan be decompressed beforeR" atthesame entity, R'data isscheduled to perform an update before R" at both entities. A sending entity schedules its own update requests according to their sequence numbers, whereas a receiving entity schedules these requests accordingto be sent, i.e. therequest sequence numbers, which canUDVM instructions for decompression MUST beinferred fromavailable at thesequence numbers of thosepeer decompressor. Some options exists: Hannu, et al. [Page 6] INTERNET-DRAFT SigCompmessages containing these requests. Causality rule When aJanuary 28 , 2002 1. Each SigComp messagecontaining a dynamic context data update request R' piggybacks with acknowledgements, R' is scheduled to perform an update after all the updates corresponding tosent from theacknowledged update requests. Concurrent rule The problem explained above can be eliminated by requiringcompressor contains themaintenance of a total order relationshipnecessary UDVM instructions for decompression. 2. By setting up asequence of all known context update requests at each entity. This requires that one entity isreliable connection, such as a TCP connection, between a compressor and its peer decompressor themasterUDVM instructions can be transferred, andonean initial state isthe slave. An example showing how the scheme with the totalestablished. In orderrelationship solves the inconsistent context update problem is shown in Figure 6. Suppose all messages exchanged between Entity X (a master entity) and Entity Y (a slave entity) are employedto save delay forsubsequent compression/decompression, and all received messages are acknowledged and piggybacked in all subsequent messages"time-critical" sessions, the UDVM instructions should be sentbyprior to any initiation of "time- critical" sessions. 5.2. Compression states The UDVM may request thereceiver. Whenever concurrent dictionary updates are happened, update requests initiated fromdecompressor to save themaster entity are ordered first. For example,contents of its memory, i.e. request that a state is created based on theupdate requests for Messages 1, 2, and 3 are ordered before those for Messages 101, 102, and 103 respectivelyinformation in thelist ofUDVM memory. If a UDVM will perform such a request depends on thetotal order relationshipinstructions sent from its peer compressor. See [UDVM] for details on how a request to save asequencestate is performed. The kind ofdictionary updates (TOL). DDinformation, which is included in alogical representation of the Dynamic Context Data, TSSstate, is up to thelogical representationimplementation ofsent SigComp messagesthe compressor andTRS isthelogical representation storage of received SigComp messages. Sincedownloaded instructions to theupdate request for Message 1 is ordered beforepeer decompressor's UDVM. However, as said in Section 5.1. a compressor MUST not use a state thatfor Message 101 accordingis not known to be established at thetotal order relationship, the update requestpeer decompressor. 5.3. Saving and deleting states Saving states If there already exists a state forMessage 101 at Entity Ya state index, then this state MUST not be replaced with the requested state to be saved. This is to avoid that a compressed message cannot be decompressed because its state has been replaced. Deleting states A decompressor SHOULD NOT delete a state before it isblocked untilenough confident thatfor Message 1 becomes ready to be moved, as indicated bythereceptionstate is not used by a peer compressor anymore. [Editors note: I think some rules are needed to handle deletion ofthe acknowledgement piggybacked with Message 3. | | DD = {} | | DD = {} TSS = {1} | | TSS = {101} TRS = {} | | TRS = {} TOL = {1} | | TOL = {} | [1] [101] |states] Hannu, et al. [Page12]7] INTERNET-DRAFT SigCompNovember 21January 28 ,2001 |-----------\ /-----------| | \/ | | /\ | |<----------/ \---------->| | | DD = {} | | DD = {} TSS = {1, 2} | | TSS = {101, 102} TRS = {101} | | TRS = {1} TOL = {1, 101, 2} | | TOL = {1} | [2] [102] | |-----------\ /-----------| | \/ | | /\ | |<----------/ \---------->| | | DD = {1} | | DD = {} TSS = {2, 3} | | TSS = {101 - 103} TRS = {101, 102} | | TRS = {1, 2} TOL = {101,2002 6. SigComp message The basic SigComp message consist of compressed data, a reference to the state the decompressor should initialize its UDVM with, and possible also a CRC. Figure 2, shows a basic SigComp message. A decompressor must be able to separate two SigComp messages, in case of UDP a SigComp message corresponds exactly to one UDP packet. For TCP each 0xFFFF delimiter, see [UDVM] is followed by a new SigComp message. 0 1 2 3 4 5 6 7 +---+---+---+---+---+---+---+---+ | i |TOL = {1, 101, 2} 102, 3} | | | [3] [103] | |-----------\ /-----------| | \/ |c |/\Reserved ||<----------/ \---------->|+---+---+---+---+---+---+---+---+ | |DD = {1, 101, 2}: state_index (n-bytes) : Present if 'i' is set | |DD = {1, 101} TSS = {3}+---+---+---+---+---+---+---+---+ | |TSS = {102, 103} TRS = {102, 103}: CRC : Present if 'c' is set | |TRS = {2, 3} TOL = {102,3,103}+---+---+---+---+---+---+---+---+ | Possible |TOL = {2, 102, 3}: Compressed data that should : | be given as input to the UDVM |CD Entity X CD Entity Y+---+---+---+---+---+---+---+---+ Figure6. An Example2. Basic SigComp message The CRC is calculated over the uncompressed message. The reserved bits are set to zero by the compressor. In case a decompressor encounters that the Reserved bits are not all zeros, it should remove m-bytes from the SigComp message following the CRC according to: m-bytes = (bit(2) + bit(3)) * n. For the value ofProposed Scheme with Total Order Relationship for Dynamic Context Data Updates. 6.n see Section 7. 7. Capability exchangeBefore twoApplications that use SigCompentities start to send compressed messages between them, theyMUST agree on the capabilities theywillintend to use. Thissection does not specify how to performinvolves exchange/negotiation of theexchange, but preferably it should be conducted atparameters below, see also [UDVM]. Preferably thenegotiationexchange ofapplying SigComp. Buffer size The available byte buffer sizeparameters is done simultaneously with the negotiation of thedecompressor MUST be exchanged.applicability of SigComp. Consider also Section 5.1. Hannu, et al. [Page13]8] INTERNET-DRAFT SigCompNovember 21January 28 ,2001 SigComp headers Only2002 CRC Two CRCs are available to use with SigComp. CRC_1: C(x) = 1 + x + x^2 + x^8 CRC_2: C(x) = 1 + x^5 + x^12 + x^16 [Editors note: is it feasible (for implementation) to provide two CRCs in thecase when both SigComp entities indicatespec?] For theuseparameters below consult also [UDVM]. maximum_compressed_size The maximum_compressed_size parameter limits the size ofheaders,one compressed message. maximum_uncompressed_size The maximum_uncompressed_size parameter limits theSigComp protocol MUST add a SigComp headersize of one uncompressed message. minimum_hash_size (n-bytes) The minimum_hash_size parameter specifies the minimum size of the state index that can be used to reference state. This corresponds to thecompressor output. In any other casen in n-bytes. overall_memory_size The overall_memory_size parameter specifies theprotocol MUST NOT addtotal number of bytes in the UDVM memory. working_memory_start The working_memory_start parameter specifies the start of the UDVM memory area that can be modified. Memory addresses below this value are considered read-only by the UDVM. working_memory_end The working_memory_end parameter specifies the end of the UDVM memory area that can be modified. Memory addresses above this value are considered read-only by the UDVM. cycles_per_bit The cycles_per_bit parameter specifies the number of "CPU cycles" that can be used to decompress aheader. Shared compression Ifsingle bit of data. One CPU cycle typically corresponds to a single UDVM instruction, although some of the high-level instructions may require additional cycles. Hannu, et al. [Page 9] INTERNET-DRAFT SigCompentity supports shared compression it MAY indicate that. However, shared compressionJanuary 28 , 2002 cycles_per_message The cycles_per_message parameter specifies the number of additional CPU cycles made available at the start of a compressed message. These cycles canonlybeused in combinationuseful when decompressing algorithms that download additional data on a per-message basis, for example a new set of Huffman codes as withSigComp headers. A SigComp entity is not required to use shared compression even if it[DEFLATE]. The total number of "CPU cycles" available for each compressed message issupportedspecified by thecorresponding entity. CPU power TBW 7.following formula: total_cycles = message_size * cycles_per_bit + cycles_per_message first_instruction The first_instruction parameter specifies the memory address of the first instruction to be executed when the UDVM is initialized. 8. Security considerationsTBW 8.[Editors note: TBW] 9. IANA considerationsTBW 9. Authors'[Editors note: TBW] 10. Acknowledgements [Editors note: TBW] 11. AuthorsĘ addresses Hans Hannu, EditorBox 920 Ericsson Erisoft AB SE-971 28 Lulea, SwedenPhone: +46 920 20 21 84 Fax: +46 920 20 20 99EMail:E-Mail: hans.hannu@epl.ericsson.se Jan ChristofferssonBox 920 Ericsson Erisoft AB SE-971 28 Lulea, SwedenPhone: +46 920 20 28 40 Fax: +46 920 20 20 99EMail: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. [Page14]10] INTERNET-DRAFT SigCompNovember 21January 28 ,2001 Christopher Clanton Nokia Research Center 6000 Connection Drive Irving, TX 75039 USA2002 Krister Svanbro Phone:+1 972 894-4886+46 920 20 20 77 Fax:+1 972 894-4589 E-mail: christopher.clanton@nokia.com Stefan Forsgren+46 920 20 20 99 E-Mail: krister.svanbro@epl.ericsson.se Box 920 Ericsson Erisoft AB SE-971 28 Lulea, Sweden Christopher Clanton Phone:+46 920 20 23 39+1 972 894-4886 Fax:+46 920 20 20 99 EMail: stefan.forsgren@epl.ericsson.se+1 972 894-4589 E-mail: christopher.clanton@nokia.com Khiem LeNokia Research Center 6000 Connection Drive Irving, TX 75039 USAPhone: +1 972 894-4882 Fax: +1 972 894-4589 E-mail: khiem.le@nokia.com Ka Cheong LeungNokia Research Center 6000 Connection Drive Irving, TX 75039 USAPhone: +1 972 374-0630 Fax: +1 972 894-4589 E-mail: kacheong.leung@nokia.com Zhigang Liu2-700 Mobile Networks LaboratoryPhone: +1 972 894-5935 Fax: +1 972 894-4589 E-Mail: zhigang.liu@nokia.com Nokia Research Center 6000 Connection Drive Irving, TX 75039, USAPhone: +1 972 894-5935 Fax: +1 972 894-4589 Hannu, et al. [Page 15] INTERNET-DRAFT SigComp November 21 , 2001 EMail: zhigang.liu@nokia.comRichard Price Phone: +44 1794 833681 E-mail: richard.price@roke.co.uk Roke Manor Research Ltd Romsey, Hants, SO51 0ZN United KingdomPhone: +44 1794 833681 Email: richard.price@roke.co.ukJonathan Rosenberg E-mail: jdrosen@dynamicsoft.com dynamicsoft 72 Eagle Rock Avenue First Floor East Hanover, NJ 07936Email: jdrosen@dynamicsoft.com Krister Svanbro Box 920 Ericsson Erisoft AB SE-971Hannu, et al. [Page 11] INTERNET-DRAFT SigComp January 28Lulea, Sweden Phone: +46 920 20 20 77 Fax: +46 920 20 20 99 EMail: krister.svanbro@epl.ericsson.se 10. 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 rights. 11., 2002 12. References[ALG] R. Price et. al., Universal Decompression Algorithm, Internet Draft (work in progress), November 2001. <draft-ietf-rohc-sigcomp-algorithm-00.txt>[DEFLATE] "DEFLATE Compressed Data Format Specification version 1.3", RFC 1951, P. Deutsch, May19961996. [UDVM] R. Price et. al., Universal Decompressor Virtual Machine (UDVM), Internet Draft (work in progress), January 2002. <draft-ietf-rohc-sigcomp-udvm-00.txt> [RTSP] H. Schulzrinne, A. Rao and R. Lanphier, Real Time Streaming Protocol (RTSP), RFC 2326, April 1998.Hannu, et al. [Page 16] INTERNET-DRAFT SigComp November 21 , 2001 [REQ] H. Hannu (Editor), Signaling Compression Requirements & Assumptions, Internet Draft (work in progress),November 2001. <draft-ietf-rohc-signaling-req-assump-03.txt>[SIP] M. Handley, H. Schulzrinne, E. Schooler and J. Rosenberg, SIP: Session Initiation Protocol, RFC 2543, August 2000. This Internet-Draft expires inMayJuly 2002. Hannu, et al. [Page17]12] ----