Audio/Video Transport Working Group Steve Casner Internet Draft Tmima Koren October 22, 1999 Patrick Ruddy Expires April 2000 Bruce Thompson draft-koren-avt-crtp-enhance-00.txt Alex Tweedly Dan Wing Cisco Systems Extensions to CRTP Status of this memo This document is an Internet Draft and is in full conformance with all provisions of Section 10 of RFC 2026. 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. Internet Drafts may be updated, replaced, or obsolete by other documents at any time. It is not appropriate 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.txt This draft is being submitted as a possible work item to the IETF Audio/Video Transport working group. To subscribe to the mailing list send a message to rem-conf-request@es.net with the line "subscribe" in the body of the message. Archives are available from ftp://ftp.es.net/pub/mail-archive/rem-conf Copyright Notice Copyright (C) The Internet Society (1999). All Rights Reserved. Abstract This document describes 3 different extensions to CRTP, the compression algorithm for RTP streams described in [RFC2508]. Each extension addresses issues with RFC 2508 in different deployment scenarios. Each section below provides an introduction that includes the scenario where the proposed extension is useful and the justification for its use. Each of these extensions should be evaluated separately as each one addresses issues associated with RFC 2508 under different deployment scenarios. 1. COMPRESSED_UDP packet "T bit" As RTP header compression becomes more widely deployed, it is being used in scenarios where a compressed link could both extend over a long physical distance and experience significant packet loss. An example of this is RTP transport over ATM AAL-5. In situations such as this, the "link" would actually traverse through multiple layer 2 switching points on the path from the CRTP transmitter to the CRTP receiver. Links such as this could have a significant amount of packet loss and also have round trip transmission delays well beyond what would be considered acceptable for the use of CONTEXT_STATE messages. In scenarios such as this, it is useful for the CRTP compressor to periodically refresh the state of the CRTP decompressor to avoid having the decompressor send CONTEXT_STATE messages in the case of unrecoverable packet loss. There are currently 2 packet types that can be used to periodically refresh the context of an IPV4 CRTP decompressor. They are a FULL_HEADER packet and a COMPRESSED_UDP packet. While sending FULL_HEADER packets will fully synchronize compressor and decompressor state, it is more effective to simply refresh those portions of the state which are likely to change. The COMPRESSED_UDP packet currently always sets the deltaT value of the decompressor to 0. This means that a COMPRESSED_UDP packet refreshes some of the state of a decompressor and resets the deltaT value. The makes the COMPRESSED_UDP packet ineffective for fully synchronizing the states of the compressor and decompressor. The extension proposed is to allow the T bit to be set in the COMPRESSED_UDP packet. This allows the deltaT in the CRTP header of the COMPRESSED_UDP packet to specify the new deltaT to be used. This eliminates the need to include the deltaT in the COMPRESSED_RTP packet that follows the COMPRESSED_UDP packet. A COMPRESSED_UDP packet that includes the deltaT restores all RTP related parameters at the decompressor since it includes the full RTP header and the new deltaT to be used for subsequent packets. If a COMPRESSED_UDP packet is received without the T bit set, the decompressor MUST set the deltaT to 0. If a COMPRESSED_UDP packet is received with the T bit set, the deltaT specified in the packet becomes the new deltaT for this stream. The new COMPRESSED_UDP packet format: 0 1 2 3 4 5 6 7 +...............................+ : msb of session context ID : (if 16-bit CID) +-------------------------------+ | lsb of session context ID | +---+---+---+---+---+---+---+---+ | 0 | 0 | T | I | link sequence | +---+---+---+---+---+---+---+---+ : : + UDP checksum + (if nonzero in context) : : +...............................+ : : + "RANDOM" fields + (if encapsulated) : : +...............................+ : delta IPv4 ID : (if I = 1) +...............................+ : delta RTP timestamp : (if T = 1) +...............................+ | UDP data | : (uncompressed RTP header) : Multiple COMPRESSED_UDP packets may be sent by the compressor when changes in the compressor state need to be synchronized. Sending multiple packets will increase the probability of delivery of the synchronized state in the event of packet loss. 2. The NON-RTP stream flag Some compressor implementations may be able to discern if a compressed stream is, in fact, an RTP stream or a non-RTP stream. If they can make this distinction, they MAY set a flag in the FULL_HEADER packet to indicate that the stream is a non-RTP stream. We suggest setting the right next to the CRTP sequence number. Here is the new FULL_HEADER length fields format: For 8-bit context ID: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|1| Generation| CID | First length field +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 |U| seq | Second length field +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ U=1 indicates a non-RTP stream For 16-bit context ID: +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|1| Generation| 0 |U| seq | First length field +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ U=1 indicates a non-RTP stream +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | CID | Second length field +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3. Acknowledgement to a new compressed stream In a point to point link the two hosts can agree on the number of compressed sessions they dedicate for this link. In an end-to-end scheme a host may have compressed sessions with many hosts and eventually may run out of resources. An ACCEPT reassures the compressor that the stream is being decompressed successfully at the moment. A REJECT tells the compressor to stop compressing this stream. The compressor may decide to wait for a while before attempting to compress additional streams destined to that host. The compressor starts a compression of a stream by sending a FULL_HEADER packet. If the decompressor has insufficient resources to decompress the new stream, the decompressor can send a CONTEXT_STATE packet to invalidate the newly compressed stream. The compressor does not know the reason for the invalidation: usually this happens when the decompressor gets out of synchronization due to packet loss. The compressor will most likely reattempt to compress this stream by sending another FULL_HEADER. We propose that the decompressor MAY ACCEPT or REJECT the compression of a stream by sending a message to the compressor. The format of the message packet can be similar to the CONTEXT_STATE packet. The first byte will indicate that this is an ACCEPT/REJECT message. We suggest using the following opcodes: 3: accept/reject new 8-bit CID 4: accept/reject new 16-bit CID Here is the packet format for the new CONTEXT_STATE options: 0 1 2 3 4 5 6 7 +---+---+---+---+---+---+---+---+ |3=Accept/Reject new 8-bit CID | +---+---+---+---+---+---+---+---+ | context count | +---+---+---+---+---+---+---+---+ | session context ID | +---+---+---+---+---+---+---+---+ | A | 0 | 0 | 0 | sequence | A - acknowledgement bit +---+---+---+---+---+---+---+---+ | 0 | 0 | generation | +---+---+---+---+---+---+---+---+ . . . 0 1 2 3 4 5 6 7 +---+---+---+---+---+---+---+---+ |4=Accept/Reject new 16-bit CID | +---+---+---+---+---+---+---+---+ | context count | +---+---+---+---+---+---+---+---+ | | + session context ID + | | +---+---+---+---+---+---+---+---+ | A | 0 | 0 | 0 | sequence | A - acknowledgement bit +---+---+---+---+---+---+---+---+ | 0 | 0 | generation | +---+---+---+---+---+---+---+---+ . . . A is the acknowledgement bit: A = 1 : ACCEPT 0 : REJECT It is up to the compressor to decide whether to reattempt to compress this stream and how long to wait. The session CID, sequence and generation are taken from the FULL_HEADER. 4. Acknowledgements The authors would like to thank the authors of RFC2508, Stephen Casner and Van Jacobson, and the authors of RFC2507, Mikael Degermark, Bjorn Nordgren, and Stephen Pink. The authors would also like to thank Dana Blair, Francois Le Faucheur, Tim Gleeson, Matt Madison, Hussein Salama, Mallik Tatipamula, Mike Thomas, and Herb Wildfeuer. 5. References [CRTP] S. Casner, V. Jacobson, "Compressing IP/UDP/RTP Headers for Low-Speed Serial Links", RFC2508, February 1999. [H.245] ITU-T Recommendation H.245 (1998), "Control of communications between Visual Telephone Systems and Terminal Equipment". [IPHCOMP] M. Degermark, B. Nordgren, S. Pink, "IP Header Compression", RFC2507, February 1999. [KEYW] S. Bradner, "Key words for use in RFCs to Indicate Requirement Levels", RFC2119, BCP 14, March 1997. [RTP] H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", RFC1889, January 1996. 6. Authors' Addresses Stephen L. Casner Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 United States of America EMail: casner@cisco.com Tmima Koren Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 United States of America Email: tmima@cisco.com Patrick Ruddy Cisco Systems, Inc. 3rd Floor, 96 Commercial Street Edinburgh EH6 6LX Scotland Email: pruddy@cisco.com Bruce Thompson Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 United States of America Email: brucet@cisco.com Alex Tweedly Cisco Systems, Inc. 3 The Square, Stockley Park Uxbridge, Middlesex UB11 1BN United Kingdom Email: agt@cisco.com Dan Wing Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 United States of America Email: dwing@cisco.com 11. Copyright Copyright (C) The Internet Society 1999. 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 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 Casner, Koren, Ruddy, Thompson, Tweedly, Wing Expires Apr 2000