Title: Enhancements to CRTP
1Enhancements to CRTP
draft-koren-avt-crtp-enhance-01.txt T. Koren,
S. Casner, P. Ruddy, B. Thompson, A. Tweedly, D.
Wing Cisco Systems John Geevarghese Motorola India
2Why Enhance CRTP
- CRTP does not perform well on links with packet
loss and long round trip delays - Packet loss causes context invalidation
- CRTP error recovery mechanism using CONTEXT_STATE
messages is not efficient due to the long round
trip delay. - The suggested enhancements make CRTP more robust
and resilient to packet loss, which in turn will
reduce context invalidation.
3Packet Loss andContext Invalidation
- When will a lost packet cause context
invalidation? - Packet includes changes to context state fields
- New delta value
- Significant packet its loss causes context
invalidation
4Example Audio Stream
- Sample sent every 10 ms
- The first talk spurt is 1 second long.
- Then there are 2 seconds silence
- Then another talk spurt.
5Shortcuts
- FH - FULL_HEADER
- CR - COMPRESSED_RTP
- CU - COMPRESSED_UDP
- CS - CONTEXT_STATE
- T, dT - RTP timestamp (absolute and delta)
- S, dS - RTP seq (absolute and delta)
- I, dI - IP ID (absolute and
delta) - pt - RTP payload type
- CC - Number of CSRC identifiers
6Classic CRTP Sequence
- seq Time pkt type
- 1 10 FH
x - 2 20 CR dI dT10
x - 3 30 CR
- 4 40 CR
- ...
- 100 1000 CR
- 101 3010 CR dT2010
x - 102 3020 CR dT10
x - 103 3030 CR
- 104 3040 CR
- ...
7Remove Dependency
- seq Time pkt type
- 100 1000 CR
- 101 3010 CR dT2010
x - 102 3020 CR dT10
x - 103 3030 CR
- Replace 101, 102
- 100 1000 CR
- 101 3010 ?? T3010 dT2010
- 102 3020 ?? T3020 dT10
x - 103 3030 CR
8Express change in one packet
- seq Time pkt type
- 100 1000 CR
- 101 3010 CR dT2010
x - 102 3020 CR dT10
x - 103 3030 CR
- Replace 101, 102
- 100 1000 CR
- 101 3010 ?? T3010
x - 102 3020 CR
9Enhanced CU CU
CU
CU
msb of context ID
msb of context ID
lsb of context ID
lsb of context ID
CRTP seq
dI
0
0
0
CRTP seq
dI
0
dT
I
UDP Checksum
UDP Checksum
RANDOM fields
RANDOM fields
Delta IPv4 ID
Delta IPv4 ID
UDP data (uncompressed RTP header)
Delta RTP timestamp
IP ID
UDP data (uncompressed RTP header)
10Enhanced CU CU (CR style)
msb of context ID
RTP Timestamp
lsb of context ID
CRTP seq
dI
1
dT
I
CC
pt
M
S
T
UDP Checksum
RTP Payload Type
CSRC List
RANDOM fields
Delta IPv4 ID
RTP Header Extension
Delta RTP timestamp
RTP Data
IP ID
RTP Seq
11Using CU with T and dT
- seq Time pkt type
- 100 1000 CR
- 101 3010 CR dT2010
x - 102 3020 CR dT10
x - 103 3030 CR
- Replace 101, 102
- 100 1000 CR
- 101 3010 CU T3010 dT2010
- 102 3020 CU T3020 dT10
x - 103 3030 CR
12Using CU with flag T
- seq Time pkt type
- 100 1000 CR
- 101 3010 CR dT2010
x - 102 3020 CR dT10
x - 103 3030 CR
- Replace 101, 102
- 100 1000 CR
- 101 3010 CU T3010
x - 102 3020 CR
13The N SchemeRepeat
- When to use
- At most N adjacent packets may get lost
- How to use
- Repeat change N1 times
14Using the N scheme (T, dT)
- seq Time pkt type
- 100 1000 CR
- 101 3010 CU T3010 dT2010
- 102 3020 CU T3020 dT10
x - 103 3030 CR
- N1
- 100 1000 CR
- 101 3010 CU T3010 dT2010
- 102 3020 CU T3020 dT10
b - 103 3030 CU T3030 dT10
b - 104 3040 CR
15Using the N scheme (T)
- seq Time pkt type
- 100 1000 CR
- 101 3010 CU T3010
x - 102 3020 CR
- N1
- 100 1000 CR
- 101 3010 CU T3010
b - 102 3020 CU T3020
b - 103 3030 CR
16N Can Be Learned
- Increase / decrease N according to the number of
invalidated contexts
17The ACK SchemeRepeat until ACKd
- When to use
- Avoid context invalidation
- How to use
- Repeat change until ACKd
18ACK Packet Format
Type code4 ACK, 8-bit CID
Context Count
Session Context ID
RTP Sequence
...
Session Context ID
RTP Sequence
19ACK Packet Format
Type code5 ACK, 16-bit CID
Context Count
Session Context ID
RTP Sequence
...
Session Context ID
RTP Sequence
20Using the ACK Scheme (T,dT)
- seq Time pkt type
- 100 1000 CR
- 101 3010 CU T3010 dT2010
- 102 3020 CU T3020 dT10
x - 103 3030 CR
- ACK Scheme
- 100 1000 CR
- 101 3010 CU T3010 dT2010
- 102 3020 CU T3020 dT10
- Receive ACK 101
- 103 3030 CU T3030 dT10
- Receive ACK 102
- 104 3040 CR
21Using the ACK Scheme (T)
- seq Time pkt type
- 100 1000 CR
- 101 3010 CU T3010
x - 102 3020 CR
- ACK Scheme
- 100 1000 CR
- 101 3010 CU T3010
- 102 3020 CU T3020
- Receive ACK 101
- 103 3030 CR
22Bandwidth Overhead when using the N scheme
- Classic 3
- 101 3010 CR dT2010
x - 102 3020 CR dT10
x - Enhanced with (T, dT) 25 N6 overhead
- 101 3010 CU T3010 dT2010
- 102 3020 CU T3020 dT10
b - 103 3030 CU T3030 dT10
b - Enhanced with (T) 5 N5 overhead
- 101 3010 CU T3010
b - 102 3020 CU T3020
b
23Bandwidth Overhead when using the N scheme
- Enhanced CRTP with N scheme
- (T, dT) transition 10 N6 bytes
- (T) transition 5 N5 bytes
- Average talk spurt length 1 second
24Bandwidth Overhead when using the ACK scheme
- Calculate same as in N scheme, selectN round
trip delay (ms) / sample length (ms) - ACK packet size 6 bytes
25Refresher Packet(CU Usage)
- seq Time pkt type
- N1
- 100 1000 CR
- 101 3010 CU T3010 dT2010
- 102 3020 CU T3020 dT10
b - 103 3030 CU T3030 dT10
b - 104 3040 CR
-
- 108 3080 CU I dI dT10 lt-- refresh
all context state parameters
26The Random IP ID(CU Usage)
- dI is not constant
- Either dI or I must be included in each packet
- If dI is included in each packet, each lost
packet invalidates the context - Conclusion its better to include I
- Use CU with I flag instead of CR
27Sequence with changing dI
- seq Time pkt type
- 1 10 FH
x - 2 20 CR dI dT10
x - 3 30 CR dI
x - 4 40 CR dI
x - ...
- Enhanced sequence
- 1 10 FH
x - 2 20 CU I dT10
x - 3 30 CU I
- 4 40 CU I
-
28Including IP ID in the UDP Checksum
- UDP checksum is used to verify validity of
reconstructed packets - Reconstructed IP ID cannot be verified
- Include IP ID in UDP checksum
29Including IP ID in the UDP Checksum (cont.)
- When UDP checksum is present (nonzero)
- The compressor will 1's complement subtract the
IP ID value from the UDP checksum before
compression - The decompressor will 1's complement add the IP
ID value to the UDP checksum after any validation
operations and before delivering the packet
further downstream.
30Headers Checksum
- UDP Checksum used to validate reconstructed
packets, especially when twice was used - When UDP checksum is not present, CRTP may add
Headers Checksum (HDRCKSUM)
31HDRCKSUM
- HDRCKSUM includes
- Pseudo-IP Header
- UDP Header
- Fixed part of RTP Header (first 12 bytes)
- IP ID
- Does not include
- The extended part of the RTP header
- RTP data
32HDRCKSUM (cont.)
- Calculated in the same way as a UDP checksum
- Placed in the COMPRESSED_UDP or COMPRESSED_RTP
packets where a UDP checksum would have been - The decompressor MUST zero out the UDP checksum
field in the reconstructed packets
33NON-RTP stream flag
- 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.
34NON-RTP stream flag in the FULL_HEADER packet
New FULL_HEADER length fields format
For 8-bit context ID
CID
Generation
0
1
0
U
Seq
For 16-bit context ID
Seq
Generation
1
1
U
0
CID
Set U 1 to indicate a non-RTP stream
35Rejecting a new compressed 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
36Reject packet (Using CONTEXT_STATE opcode)
1CS, Reject 8-bit CID
2CS, Reject 16-bit CID
context count
context count
session context ID
session context ID
CRTP seq
0
1
1
0
generation
0
0
CRTP seq
0
1
1
0
generation
0
0
CID, CRTP sequence and generation are taken
from the FULL_HEADER
37Negotiating usage of enhanced-CRTP andACK scheme
- RFC 2509 specifies how the use of CRTP is
negotiated on PPP links using the IP Compression
Protocol option of IPCP - IPCP option 2 IP compression protocol
- protocol 0x61 indicates RFC 2507 header
compression - sub-option 1 enables use of COMPRESSED_RTP,
COMPRESSED_UDP and CONTEXT_STATE as specified in
RFC 2508
38Negotiating usage of enhanced-CRTP andACK scheme
(cont.)
- For the enhancements defined in this document,
two new sub-options are added - sub-option 2 (length2) enables use of all
CRTP enhancements except for the ACK scheme - sub-option 3 (length2) enables use of all
CRTP enhancements including the ACK scheme
39END