140 likes | 293 Views
Extensions to CRTP RTP Multiplexing using Tunnels. Bruce Thompson Tmima Koren Cisco Systems Inc. RTP Multiplexing using Tunnels draft-wing-avt-tcrtp-00.txt Submitted in Oslo Broken into distinct parts: IP Tunneling, PPP Multiplexing, CRTP enhancements
E N D
Extensions to CRTPRTP Multiplexing using Tunnels Bruce Thompson Tmima Koren Cisco Systems Inc
RTP Multiplexing using Tunnels draft-wing-avt-tcrtp-00.txt Submitted in Oslo Broken into distinct parts: IP Tunneling, PPP Multiplexing, CRTP enhancements Draft to be updated to reflect changes Extensions to CRTP draft-koren-avt-crtp-enhance-00.txt Three enhancements to RFC 2508 Can be considered separately Status
Currently only the I bit may be set A COMPRESSED_UDP packet that includes the deltaT can fully restore the state at the decompressor No need to include the deltaT in the following COMPRESSED_RTP packet Used for decompressor state refresh without CONTEXT_STATE COMPRESSED_UDP "T bit”
COMPRESSED_UDP packet format msb of context ID msb of context ID lsb of context ID lsb of context ID 0 0 0 I CRTP seq # 0 0 T I CRTP seq # UDP Checksum UDP Checksum “RANDOM” fields “RANDOM” fields Delta IPv4 ID Delta IPv4 ID UDP data (uncompressed RTP header) delta RTP timestamp UDP data (uncompressed RTP header)
Notifies the decompressor that this stream is not an RTP stream Decompressor can enter flow in negative cache without RTP compression attempts Less CID thrashing Useful for application nodes where compressor has hints from application layer. NON-RTP stream flag
NON-RTP stream flag in the FULL_HEADER packet New FULL_HEADER length fields format: For 8-bit context ID: 0 1 Generation CID 0 U Seq # For 16-bit context ID: 1 1 Generation 0 U Seq # CID Set U = 1 to indicate a non-RTP stream
Decompressor implementations may share resources across multiple links Decompressor may over commit decompression resources in RFC 2509 negotiation Decompressor may REJECT a compressed steam when out of resources Rejecting a new compressed stream
Reject packet (Using CONTEXT_STATE opcode) 1=Reject 8-bit CID 2=Reject 16-bit CID context count context count session context ID session context ID 1 1 0 0 CRTP seq# 0 0 generation 1 1 0 0 CRTP seq # 0 0 generation CID, CRTP sequence# and generation are taken from the FULL_HEADER
Tunneled CRTP • Encapsulation for end to end multiplexing • Consists of: Compression - RFC 2508 Multiplexing - PPP layer multiplexing IP tunneling for PPP - L2TP CRTP negotiation - RFC 2509 • Application runs with RTP encapsulation CRTP, multiplexing at layer 2 Tunnel adds destination IP header
CRTP - RFC2508 Compressed UDP T-bit extension Allows drops in tunnel without CONTEXT_STATE draft-koren-avt-crtp-enhance-00.txt Multiplexed sessions don’t share context CRTP sessions can be distributed Compression
PPP Multiplexing draft-ietf-pppext-pppmux-00.txt New payload type for multiplexed payloads Payload Type Payload Type 1 Byte 1 Byte 0-2 Byte Length Length Payload Multiplexing 1-2 Byte 1-2 Byte Payload Type MUXED_PPP_FRAME Payload
Efficient tunnel header required L2TP with Header Compression (L2TPHC) draft-ietf-l2tpext-l2tphc-03.txt Removes session ID, tunnel ID from L2TP Removes UDP header Negotiated IP protocol ID Other tunneling encapsulations possible Tunneling L2TPHC encapsulation: 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 +---+---+-+-+---+---+---+-+-+-+-+-+-+-+-+-+-+-+ |T=0|L=0|x|x|S=0|I=0|O=0|P| PPP packet... +---+---+-+-+---+---+---+-+-+-+-+-+-+-+-+-+-+-+
1 Byte 1 Byte 8 Bytes 2 Bytes 10 bytes 20 Bytes 1 Byte 1 Byte IP (L2TP payload type) AAL-5 Trailer Length L2TP Voice Payload VOIP G.729A, AAL-5, IP, Tunneled CRTP, 1 Audio Sample / 1 Cell PAD AAL-5 PPP Mux PPP CRTP 4 Bytes 2 Bytes IP 4 Bytes G.729a, 10 bytes 4 Bytes 20 Bytes 4 Bytes G.729a, 10 bytes G.729a, 10 bytes 3 Bytes CRC HDLC L2TP/ PPP Mux VOIP G.729A, HDLC, IP, Tunneled CRTP, 3 Audio Samples / Packet RTP PPP/ CRTP PPP/ CRTP Voice Payload Voice Payload PPP/ CRTP Voice Payload 5 Bytes Cell Header Payload Tunneled CRTP Encapsulation
TCRTP vs. RTP / CRTP Bandwidth 10 msec packetization