Enhancements to CRTP - PowerPoint PPT Presentation

About This Presentation
Title:

Enhancements to CRTP

Description:

1. Enhancements 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 ... – PowerPoint PPT presentation

Number of Views:64
Avg rating:3.0/5.0
Slides: 40
Provided by: tmi7
Learn more at: https://www.ietf.org
Category:

less

Transcript and Presenter's Notes

Title: Enhancements to CRTP


1
Enhancements 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
2
Why 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.

3
Packet 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

4
Example 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.

5
Shortcuts
  • 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

6
Classic 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
  • ...

7
Remove 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

8
Express 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

9
Enhanced 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)
10
Enhanced 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
11
Using 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

12
Using 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

13
The N SchemeRepeat
  • When to use
  • At most N adjacent packets may get lost
  • How to use
  • Repeat change N1 times

14
Using 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

15
Using 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

16
N Can Be Learned
  • Increase / decrease N according to the number of
    invalidated contexts

17
The ACK SchemeRepeat until ACKd
  • When to use
  • Avoid context invalidation
  • How to use
  • Repeat change until ACKd

18
ACK Packet Format
Type code4 ACK, 8-bit CID
Context Count
Session Context ID
RTP Sequence
...
Session Context ID
RTP Sequence
19
ACK Packet Format
Type code5 ACK, 16-bit CID
Context Count
Session Context ID
RTP Sequence
...
Session Context ID
RTP Sequence
20
Using 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

21
Using 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

22
Bandwidth 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

23
Bandwidth 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

24
Bandwidth 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

25
Refresher 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

26
The 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

27
Sequence 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

28
Including 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

29
Including 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.

30
Headers 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)

31
HDRCKSUM
  • 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

32
HDRCKSUM (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

33
NON-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.

34
NON-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
35
Rejecting 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

36
Reject 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
37
Negotiating 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

38
Negotiating 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

39
END
Write a Comment
User Comments (0)
About PowerShow.com