diff options
Diffstat (limited to 'doc/rfc/rfc4077.txt')
| -rw-r--r-- | doc/rfc/rfc4077.txt | 899 | 
1 files changed, 899 insertions, 0 deletions
| diff --git a/doc/rfc/rfc4077.txt b/doc/rfc/rfc4077.txt new file mode 100644 index 0000000..a6f1bf9 --- /dev/null +++ b/doc/rfc/rfc4077.txt @@ -0,0 +1,899 @@ + + + + + + +Network Working Group                                         A.B. Roach +Request for Comments: 4077                              Estacado Systems +Category: Standards Track                                       May 2005 + + +     A Negative Acknowledgement Mechanism for Signaling Compression + +Status of This Memo + +   This document specifies an Internet standards track protocol for the +   Internet community, and requests discussion and suggestions for +   improvements.  Please refer to the current edition of the "Internet +   Official Protocol Standards" (STD 1) for the standardization state +   and status of this protocol.  Distribution of this memo is unlimited. + +Copyright Notice + +   Copyright (C) The Internet Society (2005). + +Abstract + +   This document describes a mechanism that allows Signaling Compression +   (SigComp) implementations to report precise error information upon +   receipt of a message which cannot be decompressed.  This negative +   feedback can be used by the recipient to make fine-grained +   adjustments to the compressed message before retransmitting it, +   allowing for rapid and efficient recovery from error situations. + + + + + + + + + + + + + + + + + + + + + + + + +Roach                       Standards Track                     [Page 1] + +RFC 4077                      SigComp NACK                      May 2005 + + +Table of Contents + +   1. Introduction ....................................................2 +      1.1. The Problem ................................................2 +           1.1.1. Compartment Disposal ................................3 +           1.1.2. Client Restart ......................................3 +           1.1.3. Server Failover .....................................3 +      1.2. The Solution ...............................................4 +   2. Node Behavior ...................................................4 +      2.1. Normal SigComp Message Transmission ........................4 +      2.2. Receiving a "Bad" SigComp Message ..........................5 +      2.3. Receiving a SigComp NACK ...................................6 +           2.3.1. Unreliable Transport ................................6 +           2.3.2. Reliable Transport ..................................6 +      2.4. Detecting Support for NACK .................................7 +   3. Message Format ..................................................7 +      3.1. Message Fields .............................................8 +      3.2. Reason Codes ...............................................9 +   4. Security Considerations ........................................13 +      4.1. Reflector Attacks .........................................13 +      4.2. NACK Spoofing .............................................13 +   5. IANA Considerations ............................................14 +   6. Acknowledgements ...............................................14 +   7. References .....................................................14 +      7.1. Normative References ......................................14 +      7.2. Informative References ....................................14 + +1.  Introduction + +   Signaling Compression [1], often called "SigComp", defines a protocol +   for transportation of compressed messages between two network +   elements.  One of the key features of SigComp is the ability of the +   sending node to request that the receiving node store state objects +   for later retrieval. + +1.1.  The Problem + +   While the "SigComp - Extended Operations" document [2] defines a +   mechanism that allows for confirmation of state creation, operational +   experience with the SigComp protocol has demonstrated that there are +   still several circumstances in which a sender's view of the shared +   state differs from the receiver's view.  A non-exhaustive list +   detailing the circumstances in which such failures may occur is +   below. + + + + + + + +Roach                       Standards Track                     [Page 2] + +RFC 4077                      SigComp NACK                      May 2005 + + +1.1.1.  Compartment Disposal + +   In SigComp, stored states are associated with compartments. +   Conceptually, the compartments represent one instance of a remote +   application.  These compartments are used to limit the amount of +   state that each remote application is allowed to store.  Compartments +   are created upon receipt of a valid SigComp message from a remote +   application.  In the current protocol, applications are expected to +   signal when they are finished with a compartment so that it can be +   deleted (by using the S-bit in requested feedback data). + +   Unfortunately, expecting the applications to be well-behaved is not +   sufficient to prevent state from piling up.  Unexpected client +   failures, reboots, and loss of connectivity can cause compartments to +   become "stuck" and never removed.  To prevent this situation, it +   becomes necessary to implement a scheme by which compartments that +   appear disused may eventually be discarded. + +   While the preceding facts make such a practice necessary, discarding +   compartments without explicit signaling can have the unfortunate side +   effect that active compartments are sometimes discarded.  This leads +   to a different view of state between the server and the client. + +1.1.2.  Client Restart + +   The prime motivation for SigComp was compression of messages to be +   sent over a radio interface.  Consequently, most deployments of +   SigComp will involve a mobile unit as one of the endpoints.  Mobile +   terminals are generally not guaranteed to be available for extended +   durations of time.  Node restarts (due to, for example, a battery +   running out) will induce situations in which the network-based server +   believes that the client contains several states that are no longer +   actually available. + +1.1.3.  Server Failover + +   Many applications for which SigComp will be used (e.g., SIP [3]) use +   DNS SRV records for server lookup.  One of the important features of +   DNS SRV records is the ability to specify multiple servers from which +   clients will select at random, with probabilities determined by the +   q-value weighting.  The reason for defining this behavior for SRV +   records is to allow load distribution through a set of equivalent +   servers, and to permit clients to continue to function even if the +   server with which they are communicating fails.  When using protocols +   that use SRV for such distribution, the traffic to a failed server is +   typically sent by the client to an equivalent server that can serve + + + + + +Roach                       Standards Track                     [Page 3] + +RFC 4077                      SigComp NACK                      May 2005 + + +   the same purpose.  From an application perspective, this new server +   often appears to be the same endpoint as the failed server, and will +   consequently resolve to the same compartment. + +   Although SigComp state can be replicated amongst such a cluster of +   servers, maintaining integrity of such states requires a two-phase +   commit process that adds a great deal of complexity to the server and +   can degrade performance significantly. + +1.2.  The Solution + +   Although SigComp allows returned SigComp parameters to signal that +   all states have been lost (by setting "state_memory_size" to 0 for +   one message in the reverse direction), such an approach provides an +   incomplete solution to the problem.  In addition to wiping out an +   entire compartment when only one state is corrupt or missing, this +   approach suffers from the unfortunate behavior that it requires a +   message in the reverse direction that the remote application will +   authorize.  Unless a lower-layer security mechanism is employed +   (e.g., TLS), this would typically mean that a compressed +   application-level message in the reverse direction must be sent +   before recovery can occur.  In many cases (such as SIP-based mobile +   terminals), these messages won't be sent often; in others (pure +   client/server deployments), they won't ever be sent. + +   The proposed solution to this problem is a simple Negative +   Acknowledgement (NACK) mechanism which allows the recipient to +   communicate to the sender that a failure has occurred.  This NACK +   contains a reason code that communicates the nature of the failure. +   For certain types of failures, the NACK will also contain additional +   details that might be useful in recovering from the failure. + +2.  Node Behavior + +   The following sections detail the behavior of nodes sending and +   receiving SigComp NACKs.  The actual format and values are described +   in Section 3. + +2.1.  Normal SigComp Message Transmission + +   Although normal in all other respects, SigComp implementations that +   use the NACK mechanism need to calculate and store a SHA-1 hash for +   each SigComp message that they send.  This must be stored in such a +   way that, given the SHA-1 hash, the implementation is able to locate +   the compartment with which the sent message was associated. + + + + + + +Roach                       Standards Track                     [Page 4] + +RFC 4077                      SigComp NACK                      May 2005 + + +   In other words, if someone hands the SHA-1 hash back to the +   compressor, it needs to be able to find the compartment with which it +   was working when it sent the message with that hash.  This only +   requires that the compressor knows with which compartment it is +   working when it sends a message (which is always the case), and that +   the SHA-1 hash, when stored, points to that compartment in some way. + +2.2.  Receiving a "Bad" SigComp Message + +   When a received SigComp message causes a decompression failure, the +   recipient forms and sends a SigComp NACK message.  This NACK message +   contains a SHA-1 hash of the received SigComp message that could not +   be decompressed.  It also contains the exact reason decompression +   failed, as well as any additional details that might assist the NACK +   recipient to correct any problems.  See Section 3 for more +   information about formatting the NACK message and its fields. + +   For a connection-oriented transport, such as TCP, the NACK message is +   sent back to the originator of the failed message over that same +   connection. + +   For a stream-based transport, such as TCP, the standard SigComp +   delimiter of 0xFFFF is used to terminate the NACK message. + +   For a connectionless transport, such as UDP, the NACK message is sent +   back to the originator of the failed message at the port and IP +   address from which the message was sent.  Note that this may or may +   not be the same port on which the application would typically receive +   messages.  To accommodate implementations that use connect() or +   similar constructs, the NACK will be sent from the IP address and +   port to which the uninterpretable message was sent.  From a practical +   perspective, this is probably easiest to determine by binding +   listening sockets to a specific interface; however, other mechanisms +   may also be employed. + +   The behavior specified above is strictly necessary for any generally +   useful form of a NACK mechanism.  In the most general case, when an +   implementation receives a message that it cannot decompress, it has +   exactly three useful pieces of information: (1) the contents of the +   message, (2) an indication of why the message cannot be decoded, and +   (3) the IP address and port from which the message originated.  Note +   that none of these contains any indication of where the remote +   application is listening for messages, if it differs from the sending +   port. + + + + + + + +Roach                       Standards Track                     [Page 5] + +RFC 4077                      SigComp NACK                      May 2005 + + +2.3.  Receiving a SigComp NACK + +   The first action taken upon receipt of a NACK is an attempt to find +   the message to which the NACK corresponds.  This search is performed +   using the 20-byte SHA-1 hash contained in the NACK.  Once the +   matching message is located, further operations are performed based +   on the compartment that was associated with the sent message. + +   Further behavior of a node upon receiving a SigComp NACK depends on +   whether a reliable or unreliable transport is being used. + +2.3.1.  Unreliable Transport + +   When SigComp is used over an unreliable transport, the application +   has no reasonable expectation that the transport layer will deliver +   any particular message.  It then becomes the application layer's +   responsibility to ensure that data is retransmitted as necessary.  In +   these circumstances, the NACK mechanism relies on such behavior to +   ensure delivery of the message, and never performs retransmissions on +   the application's behalf. + +   When a NACK is received for a message sent over an unreliable +   transport, the NACK recipient uses the contained information to make +   appropriate adjustments to the compressor associated with the proper +   compartment.  The exact nature of these adjustments are specific to +   the compression scheme being used, and will vary from implementation +   to implementation.  The only requirement on these adjustments is that +   they must have the effect of compensating for the error that has been +   indicated (e.g., by removing the state that the remote node indicates +   it cannot retrieve). + +   In particular, when an unreliable transport is used, the original +   message must not be retransmitted by the SigComp layer upon receipt +   of a NACK.  Instead, the next application-initiated transmission of a +   message will take advantage of the adjustments made as a result of +   processing the NACK. + +2.3.2.  Reliable Transport + +   When a reliable transport is employed, the application makes a basic +   assumption that any message passed down the stack will be +   retransmitted as necessary to ensure that the remote node receives +   it, unless a failure is indicated by the transport layer.  Because +   SigComp acts as a shim between the transport-layer and the +   application, it becomes the responsibility of the SigComp +   implementation to ensure that any failure to transmit a message is +   communicated to the application. + + + + +Roach                       Standards Track                     [Page 6] + +RFC 4077                      SigComp NACK                      May 2005 + + +   When a NACK is received for a message sent over a reliable transport, +   the SigComp layer must indicate to the application that an error has +   occurred.  In general, the application should react in the same way +   as it does for any other transport layer error, such as a TCP +   connection reset.  For most applications, this reaction will +   initially be an attempt to reset and re-establish the connection, and +   re-initiate the failed transaction.  The SigComp layer should also +   use the information contained in the NACK to make appropriate +   adjustments to the compressor associated with the proper compartment +   (similar to the adjustments made for unreliable transport).  Thus, if +   the compartment is not reset by resetting the TCP connection, the +   next message will take advantage of the adjustments. + +2.4.  Detecting Support for NACK + +   Detection of support for the NACK mechanism may be beneficial in +   certain circumstances.  For example, with the current definition of +   SigComp, acknowledgment of state receipt is required before a sender +   can reference such state.  When multiple messages are sent before a +   response is received, the need to wait for such responses can cause +   significant decreases in message compression efficiency.  If it is +   known that the receiver supports the NACK mechanism, the sender can +   instead optimistically assume that the state created by a sent +   message has been created, and is allowed to be referenced.  If such +   an assumption turns out to be false (due to, for example, packet loss +   or packet reordering), the sender can recover upon receipt of a NACK. + +   In order to facilitate such detection, any implementation that will +   send NACK messages upon decompression failure will indicate a SigComp +   version number of 0x02 in its Universal Decompressor Virtual Machine +   (UDVM).  The bytecodes sent to such an endpoint can check the version +   number, and send appropriate indication back to their compressor as +   requested feedback.  Except for the NACK mechanism described in this +   document, implementations advertising a version of 0x02 behave +   exactly like those advertising a version number of 0x01. + +3.  Message Format + +   SigComp NACK packets are syntactically valid SigComp messages which +   have been specifically designed to be safely ignored by +   implementations that do not support the NACK mechanism. + +   In particular, NACK messages are formatted as the second variant of a +   SigComp message (typically used for code upload) with a "code_len" +   field of zero.  The NACK information (message identifier, reason for +   failure, and error details) is encoded in the "remaining SigComp + + + + + +Roach                       Standards Track                     [Page 7] + +RFC 4077                      SigComp NACK                      May 2005 + + +   message" area, typically used for input data.  Further, the +   "destination" field is used as a version identifier to indicate which +   version of NACK is being employed. + +3.1.  Message Fields + +   The format of the NACK message and the use of the fields within it +   are shown in Figure 1. + +                      0   1   2   3   4   5   6   7 +                    +---+---+---+---+---+---+---+---+ +                    | 1   1   1   1   1 | T |   0   | +                    +---+---+---+---+---+---+---+---+ +                    |                               | +                    :    returned feedback item     : +                    |                               | +                    +---+---+---+---+---+---+---+---+ +                    |         code_len = 0          | +                    +---+---+---+---+---+---+---+---+ +                    | code_len = 0  |  version = 1  | +                    +---+---+---+---+---+---+---+---+ +                    |          Reason Code          | +                    +---+---+---+---+---+---+---+---+ +                    |  OPCODE of failed instruction | +                    +---+---+---+---+---+---+---+---+ +                    |   PC of failed instruction    | +                    |                               | +                    +---+---+---+---+---+---+---+---+ +                    |                               | +                    : SHA-1 Hash of failed message  : +                    |                               | +                    +---+---+---+---+---+---+---+---+ +                    |                               | +                    :         Error Details         : +                    |                               | +                    +---+---+---+---+---+---+---+---+ + +                  Figure 1: SigComp NACK Message Format + +   o  "Reason Code" is a one-byte value that indicates the nature of the +      decompression failure.  The specific codes are given in +      Section 3.2. + +   o  "OPCODE of failed instruction" is a one-byte field that includes +      the opcode to which the PC was pointing when the failure occurred. +      If failure occurred before the UDVM began executing any code, this +      field is set to 0. + + + + +Roach                       Standards Track                     [Page 8] + +RFC 4077                      SigComp NACK                      May 2005 + + +   o  "PC of failed instruction" is a two-byte field containing the +      value of the program counter when failure occurred (i.e., the +      memory address of the failed UDVM instruction).  The field is +      encoded with the most significant byte of the PC first (i.e., in +      network or big endian order).  If failure occurred before the UDVM +      began executing any code, this field is set to 0. + +   o  "SHA-1 Hash of failed message" contains the full 20-byte SHA-1 +      hash of the SigComp message that could not be decompressed.  This +      information allows the NACK recipient to locate the message that +      failed to decompress so that adjustments to the correct +      compartment can be performed.  When performing this hash, the +      entire SigComp message is used, from the header byte (binary +      11111xxx) to the end of the input.  Any lower-level protocol +      headers (such as UDP or IP) and message delimiters (the 0xFFFF +      that marks message boundaries in stream protocols) are not +      included in the hash.  When used over a stream based protocol, any +      0xFFxx escape sequences are un-escaped before performing the hash +      operation. + +   o  "Error Details" provides additional information that might be +      useful in correcting the problem that caused decompression +      failure.  Its meaning is specific to the "Reason Code".  See +      Section 3.2 for specific information on what appears in this +      field. + +   o  "Code_len" is the "code_len" field from a standard SigComp +      message.  It is always set to "0" for NACK messages. + +   o  "Version" gives the version of the NACK mechanism being employed. +      This document defines version 1. + +3.2.  Reason Codes + +   Note that many of the status codes are more useful in debugging +   interoperability problems than with on-the-fly correction of errors. +   The "STATE_NOT_FOUND" error is a notable exception: it will generally +   cause the NACK recipient to encode future messages so as to not use +   the indicated state. + +   Upon receiving the other status messages, an implementation would +   typically be expected either to use a different set of bytecodes or, +   if that is not an option, to send that specific message uncompressed. + + + + + + + + +Roach                       Standards Track                     [Page 9] + +RFC 4077                      SigComp NACK                      May 2005 + + +       Error                      Code Details +       -------------------------- ---- --------------------------- +       STATE_NOT_FOUND              1  State ID (6 - 20 bytes) +       CYCLES_EXHAUSTED             2  Cycles Per Bit (1 byte) +       USER_REQUESTED               3 +       SEGFAULT                     4 +       TOO_MANY_STATE_REQUESTS      5 +       INVALID_STATE_ID_LENGTH      6 +       INVALID_STATE_PRIORITY       7 +       OUTPUT_OVERFLOW              8 +       STACK_UNDERFLOW              9 +       BAD_INPUT_BITORDER          10 +       DIV_BY_ZERO                 11 +       SWITCH_VALUE_TOO_HIGH       12 +       TOO_MANY_BITS_REQUESTED     13 +       INVALID_OPERAND             14 +       HUFFMAN_NO_MATCH            15 +       MESSAGE_TOO_SHORT           16 +       INVALID_CODE_LOCATION       17 +       BYTECODES_TOO_LARGE         18  Memory size (2 bytes) +       INVALID_OPCODE              19 +       INVALID_STATE_PROBE         20 +       ID_NOT_UNIQUE               21  State ID (6 - 20 bytes) +       MULTILOAD_OVERWRITTEN       22 +       STATE_TOO_SHORT             23  State ID (6 - 20 bytes) +       INTERNAL_ERROR              24 +       FRAMING_ERROR               25 + +   Only the five errors "STATE_NOT_FOUND", "CYCLES_EXHAUSTED", +   "BYTECODES_TOO_LARGE", "ID_NOT_UNIQUE", and "STATE_TOO_SHORT" contain +   details; for all other error codes, the "Error Details" field has +   zero length. + +                    Figure 2: SigComp NACK Reason Codes + +   1.   STATE_NOT_FOUND +        A state that was referenced cannot be found.  The state may have +        been referenced by the UDVM executing a STATE-ACCESS +        instruction; it also may have been referenced by the "partial +        state identifier" field in a SigComp message.  The "details" +        field contains the state identifier for the state that could not +        be found.  This is also the proper error to return in the case +        that a unique state item was matched but fewer bytes of state ID +        were sent than required by the minimum_access_length. + + + + + + + +Roach                       Standards Track                    [Page 10] + +RFC 4077                      SigComp NACK                      May 2005 + + +   2.   CYCLES_EXHAUSTED +        Decompression of the message has taken more cycles than were +        allocated to it.  The "details" field contains a one-byte value +        that communicates the number of cycles per bit.  The cycles per +        bit is represented as an unsigned 8-bit integer (i.e., not +        encoded). + +   3.   USER_REQUESTED +        The DECOMPRESSION-FAILURE opcode has been executed. + +   4.   SEGFAULT +        An attempt to read from or write to memory that is outside of +        the UDVM's memory space has been attempted. + +   5.   TOO_MANY_STATE_REQUESTS +        More than four requests to store or delete state objects have +        been requested. + +   6.   INVALID_STATE_ID_LENGTH +        A state id length less than 6 or greater than 20 has been +        specified. + +   7.   INVALID_STATE_PRIORITY +        A state priority of 65535 has been specified when attempting to +        store a state. + +   8.   OUTPUT_OVERFLOW +        The decompressed message is too large to be decoded by the +        receiving node. + +   9.   STACK_UNDERFLOW +        An attempt to pop a value off the UDVM stack was made with a +        stack_fill value of 0. + +   10.  BAD_INPUT_BITORDER +        An INPUT-BITS or INPUT-HUFFMAN instruction was encountered with +        the "input_bit_order" register set to an invalid value (i.e., +        one of the upper 13 bits is set). + +   11.  DIV_BY_ZERO +        A DIVIDE or REMAINDER opcode was encountered with a divisor of +        0. + +   12.  SWITCH_VALUE_TOO_HIGH +        The input to a SWITCH opcode exceeds the number of branches +        defined. + + + + + +Roach                       Standards Track                    [Page 11] + +RFC 4077                      SigComp NACK                      May 2005 + + +   13.  TOO_MANY_BITS_REQUESTED +        An INPUT-BITS or INPUT-HUFFMAN instruction was encountered that +        attempted to input more than 16 bits. + +   14.  INVALID_OPERAND +        An operand for an instruction could not be resolved to an +        integer value (e.g., a literal or reference operand beginning +        with 11111111). + +   15.  HUFFMAN_NO_MATCH +        The input string does not match any of the bitcodes in the +        INPUT-HUFFMAN opcode. + +   16.  MESSAGE_TOO_SHORT +        When attempting to decode a SigComp message, the recipient +        determined that there were not enough bytes in the message for +        it to be valid. + +   17.  INVALID_CODE_LOCATION +        The "code location" field in the SigComp message was set to the +        invalid value of 0. + +   18.  BYTECODES_TOO_LARGE +        The bytecodes that a SigComp message attempted to upload exceed +        the amount of memory available in the receiving UDVM.  The +        details field is a two-byte expression of the +        DECOMPRESSION_MEMORY_SIZE of the receiving UDVM.  This value is +        communicated most-significant-byte first. + +   19.  INVALID_OPCODE +        The UDVM attempted to identify an undefined byte value as an +        instruction. + +   20.  INVALID_STATE_PROBE +        When attempting to retrieve state, the state_length operand is +        set to 0 but the state_begin operand is non-zero. + +   21.  ID_NOT_UNIQUE +        A partial state identifier that was used to access state matched +        more than one state item.  Note that this error might be +        returned as the result of executing a STATE-ACCESS instruction +        or attempting to locate a unique piece of state as identified by +        the "partial state identifier" in a SigComp message.  The +        "details" field contains the partial state identifier that was +        requested. + +   22.  MULTILOAD_OVERWRITTEN +        A MULTILOAD instruction attempted to overwrite itself. + + + +Roach                       Standards Track                    [Page 12] + +RFC 4077                      SigComp NACK                      May 2005 + + +   23.  STATE_TOO_SHORT +        A STATE-ACCESS instruction has attempted to copy more bytes from +        a state item than the state item actually contains.  The +        "details" field contains the partial state identifier that was +        requested.  Implementors are cautioned to return only the +        partial state identifier that was requested; if the NACK +        contains any state identifier in addition to what was requested, +        attackers may be able to use that additional information to +        access the state. + +   24.  INTERNAL_ERROR +        The UDVM encountered an unexpected condition that prevented it +        from decompressing the message. + +   25.  FRAMING_ERROR +        The UDVM encountered a framing error (unquoted 0xFF 80 .. 0xFF +        FE in an input stream.)  This error is applicable only to +        messages received on a stream transport.  In the case of a +        framing error, a SHA-1 hash for a unique message cannot be +        determined.  Consequently, when a FRAMING_ERROR NACK is sent, +        the "SHA-1 Hash of failed message" field should be set to all +        zeros. + +4.  Security Considerations + +4.1.  Reflector Attacks + +   Because SigComp NACK messages are by necessity sent in response to +   other messages, it is possible to trigger them by intentionally +   sending malformed messages to a SigComp implementation with a spoofed +   IP address.  However, because such actions can only generate one +   message for each message sent, they don't serve as amplifier attacks. +   Further, due to the reasonably small size of NACK packets, there +   cannot be a significant increase in the size of the packet generated. + +   It is worth noting that nearly all deployed protocols exhibit this +   same behavior. + +4.2.  NACK Spoofing + +   Although it is possible to forge NACK messages as if they were +   generated by a different node, the damage that can be caused is +   minimal.  Reporting a loss of state will typically result in nothing +   more than the re-transmission of that state in a subsequent message. +   Other failure codes would result in the next message being sent using +   an alternate compression mechanism, or possibly uncompressed. + + + + + +Roach                       Standards Track                    [Page 13] + +RFC 4077                      SigComp NACK                      May 2005 + + +   Although all of the above consequences result in slightly larger +   messages, none of them have particularly catastrophic implications +   for security. + +5.  IANA Considerations + +   This document defines a new value for the IANA registered attribute +   SigComp_version. + +   Value (in hex): 02 + +   Description: SigComp version 2 (NACK support) + +   Reference: [RFC4077] + +6.  Acknowledgements + +   Thanks to Carsten Bormann, Zhigang Liu, Pekka Pessi, and Robert Sugar +   for their comments and suggestions.  Special thanks to Abigail +   Surtees and Richard Price for several very detailed reviews and +   suggestions. + +7.  References + +7.1.  Normative References + +   [1]  Price, R., Bormann, C., Christoffersson, J., Hannu, H., Liu, Z., +        and J. Rosenberg, "Signaling Compression (SigComp)", RFC 3320, +        January 2003. + +   [2]  Hannu, H., Christoffersson, J., Forsgren, S., Leung, K.-C., Liu, +        Z., and R. Price, "Signaling Compression (SigComp) - Extended +        Operations", RFC 3321, January 2003. + +7.2.  Informative References + +   [3]  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. + + + + + + + + + + + + +Roach                       Standards Track                    [Page 14] + +RFC 4077                      SigComp NACK                      May 2005 + + +Author's Address + +   Adam Roach +   Estacado Systems +   17210 Campbell Road +   Suite 250 +   Dallas, TX 75252 +   US + +   EMail: adam@estacado.net + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Roach                       Standards Track                    [Page 15] + +RFC 4077                      SigComp NACK                      May 2005 + + +Full Copyright Statement + +   Copyright (C) The Internet Society (2005). + +   This document is subject to the rights, licenses and restrictions +   contained in BCP 78, and except as set forth therein, the authors +   retain all their rights. + +   This document and the information contained herein are provided on an +   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS +   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET +   ENGINEERING TASK FORCE DISCLAIM 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. + +Intellectual Property + +   The IETF takes no position regarding the validity or scope of any +   Intellectual Property Rights or other rights that might be claimed to +   pertain to the implementation or use of the technology described in +   this document or the extent to which any license under such rights +   might or might not be available; nor does it represent that it has +   made any independent effort to identify any such rights.  Information +   on the procedures with respect to rights in RFC documents can be +   found in BCP 78 and BCP 79. + +   Copies of IPR disclosures made to the IETF Secretariat and any +   assurances of licenses to be made available, or the result of an +   attempt made to obtain a general license or permission for the use of +   such proprietary rights by implementers or users of this +   specification can be obtained from the IETF on-line IPR repository at +   http://www.ietf.org/ipr. + +   The IETF invites any interested party to bring to its attention any +   copyrights, patents or patent applications, or other proprietary +   rights that may cover technology that may be required to implement +   this standard.  Please address the information to the IETF at ietf- +   ipr@ietf.org. + +Acknowledgement + +   Funding for the RFC Editor function is currently provided by the +   Internet Society. + + + + + + + +Roach                       Standards Track                    [Page 16] + |