1 Enhancements to CRTP draft-koren-avt-crtp-enhance-01.txt T. Koren, S. Casner, P. Ruddy, B....

39
1 Enhancements to CRTP Enhancements to CRTP draft-koren-avt-crtp-enhance-01.txt draft-koren-avt-crtp-enhance-01.txt T. Koren, S. Casner, P. Ruddy, T. Koren, S. Casner, P. Ruddy, B. Thompson, A. Tweedly, D. Wing B. Thompson, A. Tweedly, D. Wing Cisco Systems Cisco Systems John Geevarghese John Geevarghese Motorola India Motorola India
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    220
  • download

    0

Transcript of 1 Enhancements to CRTP draft-koren-avt-crtp-enhance-01.txt T. Koren, S. Casner, P. Ruddy, B....

1

Enhancements to CRTPEnhancements to CRTP

draft-koren-avt-crtp-enhance-01.txtdraft-koren-avt-crtp-enhance-01.txt

T. Koren, S. Casner, P. Ruddy,T. Koren, S. Casner, P. Ruddy,B. Thompson, A. Tweedly, D. WingB. Thompson, A. Tweedly, D. Wing

Cisco SystemsCisco SystemsJohn GeevargheseJohn Geevarghese

Motorola IndiaMotorola India

2

Why Enhance CRTPWhy Enhance CRTP

• CRTP does not perform well on links with packet CRTP does not perform well on links with packet loss and long round trip delaysloss and long round trip delays– Packet loss causes context invalidationPacket loss causes context invalidation

– CRTP error recovery mechanism using CONTEXT_STATE CRTP error recovery mechanism using CONTEXT_STATE messages is not efficient due to the long round trip messages is not efficient due to the long round trip delay.delay.

• The suggested enhancements make CRTP more The suggested enhancements make CRTP more robust and resilient to packet loss, which in turn robust and resilient to packet loss, which in turn will reduce context invalidation.will reduce context invalidation.

3

Packet Loss andPacket Loss andContext InvalidationContext Invalidation

• When will a lost packet cause context When will a lost packet cause context invalidation?invalidation?– Packet includes changes to context state fieldsPacket includes changes to context state fields

• New delta valueNew delta value

– Significant packet: its loss causes context invalidationSignificant packet: its loss causes context invalidation

4

Example Audio StreamExample Audio Stream

• Sample sent every 10 msSample sent every 10 ms

• The first talk spurt is 1 second long. The first talk spurt is 1 second long.

• Then there are 2 seconds silenceThen there are 2 seconds silence

• Then another talk spurt.Then another talk spurt.

5

ShortcutsShortcutsFH - FULL_HEADERFH - FULL_HEADER

CR - COMPRESSED_RTPCR - COMPRESSED_RTP

CU - COMPRESSED_UDPCU - COMPRESSED_UDP

CS - CONTEXT_STATECS - CONTEXT_STATE

T, dT - RTP timestamp (absolute and delta)T, dT - RTP timestamp (absolute and delta)

S, dS - RTP seq# (absolute and delta)S, dS - RTP seq# (absolute and delta)

I, dI - IP ID (absolute and delta)I, dI - IP ID (absolute and delta)

pt - RTP payload typept - RTP payload type

CC - Number of CSRC identifiersCC - Number of CSRC identifiers

6

‘‘Classic’ CRTP SequenceClassic’ CRTP Sequenceseq# Time pkt typeseq# Time pkt type

1 10 FH x1 10 FH x

2 20 CR+ dI dT=10 x2 20 CR+ dI dT=10 x

3 30 CR 3 30 CR

4 40 CR 4 40 CR

......

100 1000 CR 100 1000 CR

101 3010 CR+ dT=2010 x101 3010 CR+ dT=2010 x

102 3020 CR+ dT=10 x102 3020 CR+ dT=10 x

103 3030 CR 103 3030 CR

104 3040 CR 104 3040 CR

......

7

Remove Dependency Remove Dependency seq# Time pkt typeseq# Time pkt type

100 1000 CR 100 1000 CR

101 3010 CR+ dT=2010 x101 3010 CR+ dT=2010 x

102 3020 CR+ dT=10 x102 3020 CR+ dT=10 x

103 3030 CR 103 3030 CR

Replace 101, 102Replace 101, 102

100 1000 CR 100 1000 CR

101 3010 101 3010 ???? T=3010 dT=2010T=3010 dT=2010

102 3020 102 3020 ???? T=3020 dT=10T=3020 dT=10 x x

103 3030 CR 103 3030 CR

8

Express change in one Express change in one packetpacket

seq# Time pkt typeseq# Time pkt type

100 1000 CR 100 1000 CR

101 3010 CR+ dT=2010 x101 3010 CR+ dT=2010 x

102 3020 CR+ dT=10 x102 3020 CR+ dT=10 x

103 3030 CR 103 3030 CR

Replace 101, 102Replace 101, 102

100 1000 CR 100 1000 CR

101 3010 101 3010 ???? T=3010T=3010 x x

102 3020 CR 102 3020 CR

9

Enhanced CU: CU+Enhanced CU: CU+

lsb of context ID

Delta IPv4 IDUDP data

(uncompressed RTP header)

CRTP seq # dI0 0 0 lsb of context ID

UDP Checksum

“RANDOM” fieldsDelta IPv4 ID

UDP data(uncompressed RTP header)

Delta RTP timestamp

CRTP seq # dI0 dT

msb of context ID msb of context ID

IP ID

CU

CU+

UDP Checksum

“RANDOM” fields

I

10

Enhanced CU: CU* (CR Enhanced CU: CU* (CR style)style)

CC ptM S T

lsb of context ID

UDP Checksum

“RANDOM” fieldsDelta IPv4 ID

Delta RTP timestamp

CRTP seq # dI1 dT

msb of context ID

IP ID

RTP Seq#

RTP Timestamp

RTP Payload Type

CSRC List

RTP Header Extension

RTP Data

I

11

Using CU* with ‘T’ and Using CU* with ‘T’ and ‘dT’‘dT’

seq# Time pkt typeseq# Time pkt type

100 1000 CR 100 1000 CR

101 3010 CR+ dT=2010 x101 3010 CR+ dT=2010 x

102 3020 CR+ dT=10 x102 3020 CR+ dT=10 x

103 3030 CR 103 3030 CR

Replace 101, 102Replace 101, 102

100 1000 CR 100 1000 CR

101 3010 101 3010 CU*CU* T=3010 dT=2010T=3010 dT=2010

102 3020 102 3020 CU*CU* T=3020 dT=10T=3020 dT=10 x x

103 3030 CR 103 3030 CR

12

Using CU* with flag ‘T’Using CU* with flag ‘T’

seq# Time pkt typeseq# Time pkt type

100 1000 CR 100 1000 CR

101 3010 CR+ dT=2010 x101 3010 CR+ dT=2010 x

102 3020 CR+ dT=10 x102 3020 CR+ dT=10 x

103 3030 CR 103 3030 CR

Replace 101, 102Replace 101, 102

100 1000 CR 100 1000 CR

101 3010 101 3010 CU* T=3010CU* T=3010 x x

102 3020 CR 102 3020 CR

13

The The N N Scheme:Scheme:RepeatRepeat

• When to use:When to use:– At most At most NN adjacent packets may get lost adjacent packets may get lost

• How to useHow to use– Repeat change Repeat change NN+1 times+1 times

14

Using the Using the NN scheme (T, scheme (T, dT)dT)seq# Time pkt typeseq# Time pkt type

100 1000 CR 100 1000 CR

101 3010 101 3010 CU*CU* T=3010 dT=2010T=3010 dT=2010

102 3020 102 3020 CU*CU* T=3020 dT=10T=3020 dT=10 x x

103 3030 CR103 3030 CR

N=1N=1

100 1000 CR 100 1000 CR

101 3010 101 3010 CU*CU* T=3010 dT=2010T=3010 dT=2010

102 3020 102 3020 CU*CU* T=3020 dT=10 bT=3020 dT=10 b

103 3030 103 3030 CU*CU* T=3030 dT=10 bT=3030 dT=10 b

104 3040 CR 104 3040 CR

15

Using the Using the NN scheme (T) scheme (T)seq# Time pkt typeseq# Time pkt type

100 1000 CR 100 1000 CR

101 3010 101 3010 CU* T=3010CU* T=3010 x x

102 3020 CR102 3020 CR

N=1N=1

100 1000 CR 100 1000 CR

101 3010 101 3010 CU* T=3010 bCU* T=3010 b

102 3020 102 3020 CU* T=3020 bCU* T=3020 b

103 3030 CR 103 3030 CR

16

NN Can Be Learned Can Be Learned

• Increase / decrease Increase / decrease NN according to the according to the number of invalidated contextsnumber of invalidated contexts

17

The ACK Scheme:The ACK Scheme:Repeat until ACK’dRepeat until ACK’d

• When to use:When to use:– Avoid context invalidationAvoid context invalidation

• How to useHow to use– Repeat change until ACK’dRepeat change until ACK’d

18

ACK Packet FormatACK Packet Format

Context Count

RTP Sequence #

Type code=4: ACK, 8-bit CID

Session Context ID

RTP Sequence #

Session Context ID

...

19

ACK Packet FormatACK Packet Format

Context Count

RTP Sequence #

Type code=5: ACK, 16-bit CID

RTP Sequence #

...

Session Context ID

Session Context ID

20

Using the ACK Scheme Using the ACK Scheme (T,dT)(T,dT)seq# Time pkt typeseq# Time pkt type

100 1000 CR 100 1000 CR

101 3010 101 3010 CU*CU* T=3010 dT=2010T=3010 dT=2010

102 3020 102 3020 CU*CU* T=3020 dT=10T=3020 dT=10 x x

103 3030 CR103 3030 CR

ACK SchemeACK Scheme

100 1000 CR 100 1000 CR

101 3010 101 3010 CU* T=3010 dT=2010CU* T=3010 dT=2010

102 3020 102 3020 CU* T=3020 dT=10CU* T=3020 dT=10

Receive: ACK 101Receive: ACK 101

103 3030 103 3030 CU* T=3030 dT=10CU* T=3030 dT=10

Receive: ACK 102Receive: ACK 102

104 3040 CR 104 3040 CR

21

Using the ACK Scheme (T)Using the ACK Scheme (T)seq# Time pkt typeseq# Time pkt type

100 1000 CR 100 1000 CR

101 3010 101 3010 CU* T=3010CU* T=3010 x x

102 3020 CR102 3020 CR

ACK SchemeACK Scheme

100 1000 CR 100 1000 CR

101 3010 101 3010 CU* T=3010CU* T=3010

102 3020 102 3020 CU* T=3020CU* T=3020

Receive: ACK 101Receive: ACK 101

103 3030 CR 103 3030 CR

22

Bandwidth Overhead Bandwidth Overhead when using the when using the NN scheme scheme

‘‘Classic’ : 3Classic’ : 3

101 3010 CR+ dT=2010 x101 3010 CR+ dT=2010 x

102 3020 CR+ dT=10 x102 3020 CR+ dT=10 x

Enhanced with (T, dT) : 2*5 + N*6 overheadEnhanced with (T, dT) : 2*5 + N*6 overhead

101 3010 101 3010 CU*CU* T=3010 dT=2010T=3010 dT=2010

102 3020 102 3020 CU*CU* T=3020 dT=10 bT=3020 dT=10 b

103 3030 103 3030 CU*CU* T=3030 dT=10 bT=3030 dT=10 b

Enhanced with (T) : 5 + N*5 overheadEnhanced with (T) : 5 + N*5 overhead

101 3010 101 3010 CU* T=3010 bCU* T=3010 b

102 3020 102 3020 CU* T=3020 bCU* T=3020 b

23

Bandwidth Overhead Bandwidth Overhead when using the when using the NN scheme scheme

• Enhanced CRTP with N schemeEnhanced CRTP with N scheme– (T, dT) transition: 10 + N*6 bytes(T, dT) transition: 10 + N*6 bytes

– (T) transition: 5 + N*5 bytes(T) transition: 5 + N*5 bytes

• Average talk spurt length: 1 secondAverage talk spurt length: 1 second

24

Bandwidth Overhead Bandwidth Overhead when using the ACK when using the ACK

schemescheme• Calculate same as in N scheme, select:Calculate same as in N scheme, select:

N = round trip delay (ms) / sample length N = round trip delay (ms) / sample length (ms)(ms)

• ACK packet size: 6 bytesACK packet size: 6 bytes

25

Refresher PacketRefresher Packet(CU+ Usage)(CU+ Usage)

seq# Time pkt typeseq# Time pkt type

N=1N=1

100 1000 CR 100 1000 CR

101 3010 101 3010 CU*CU* T=3010 dT=2010T=3010 dT=2010

102 3020 102 3020 CU*CU* T=3020 dT=10 bT=3020 dT=10 b

103 3030 103 3030 CU*CU* T=3030 dT=10 bT=3030 dT=10 b

104 3040 CR 104 3040 CR

……

108 3080 108 3080 CU+CU+ I dI dT=10 I dI dT=10 <-- refresh all context state <-- refresh all context state parametersparameters

26

The Random IP IDThe Random IP ID(CU* Usage)(CU* Usage)

• dI is not constantdI is not constant

• Either dI or I must be included in each Either dI or I must be included in each packetpacket

– If dI is included in each packet, each lost If dI is included in each packet, each lost packet invalidates the contextpacket invalidates the context

– Conclusion: it’s better to include IConclusion: it’s better to include I

• Use CU* with I flag instead of CR+Use CU* with I flag instead of CR+

27

Sequence with changing Sequence with changing dIdI

seq# Time pkt typeseq# Time pkt type

1 10 FH x1 10 FH x

2 20 CR+ dI dT=10 x2 20 CR+ dI dT=10 x

3 30 CR+ dI x 3 30 CR+ dI x

4 40 CR+ dI x 4 40 CR+ dI x

......

Enhanced sequence:Enhanced sequence:

1 10 FH x1 10 FH x

2 20 CU* I dT=10 x2 20 CU* I dT=10 x

3 30 CU* I3 30 CU* I

4 40 CU* I4 40 CU* I

28

Including IP ID in theIncluding IP ID in the UDP Checksum UDP Checksum

• UDP checksum is used to verify validity UDP checksum is used to verify validity of reconstructed packetsof reconstructed packets

• Reconstructed IP ID cannot be verifiedReconstructed IP ID cannot be verified

• Include IP ID in UDP checksumInclude IP ID in UDP checksum

29

Including IP ID in theIncluding IP ID in the UDP Checksum (cont.) UDP Checksum (cont.)

• When UDP checksum is present When UDP checksum is present (nonzero)(nonzero)– The compressor will 1's complement The compressor will 1's complement

subtract the IP ID value from the UDP subtract the IP ID value from the UDP checksum before compressionchecksum before compression

– The decompressor will 1's complement add The decompressor will 1's complement add the IP ID value to the UDP checksum after the IP ID value to the UDP checksum after any validation operations and before any validation operations and before delivering the packet further downstream.delivering the packet further downstream.

30

Headers ChecksumHeaders Checksum

• UDP Checksum used to validate UDP Checksum used to validate reconstructed packets, especially when reconstructed packets, especially when ‘twice’ was used‘twice’ was used

• When UDP checksum is not present, When UDP checksum is not present, CRTP may add Headers Checksum CRTP may add Headers Checksum (HDRCKSUM)(HDRCKSUM)

31

HDRCKSUMHDRCKSUM

• HDRCKSUM includes:HDRCKSUM includes:– Pseudo-IP HeaderPseudo-IP Header

– UDP HeaderUDP Header

– Fixed part of RTP Header (first 12 bytes)Fixed part of RTP Header (first 12 bytes)

– IP IDIP ID

• Does not include:Does not include:– The extended part of the RTP headerThe extended part of the RTP header

– RTP dataRTP data

32

HDRCKSUM (cont.)HDRCKSUM (cont.)

• Calculated in the same way as a UDP Calculated in the same way as a UDP checksumchecksum

• Placed in the COMPRESSED_UDP or Placed in the COMPRESSED_UDP or COMPRESSED_RTP packets where a COMPRESSED_RTP packets where a UDP checksum would have beenUDP checksum would have been

• The decompressor MUST zero out the The decompressor MUST zero out the UDP checksum field in the UDP checksum field in the reconstructed packetsreconstructed packets

33

NON-RTP stream flagNON-RTP stream flag

• Notifies the decompressor that this Notifies the decompressor that this stream is not an RTP streamstream is not an RTP stream

• Decompressor can enter flow in negative Decompressor can enter flow in negative cache without RTP compression attemptscache without RTP compression attempts

• Less CID thrashingLess CID thrashing

• Useful for application nodes where Useful for application nodes where compressor has hints from application compressor has hints from application layer.layer.

34

NON-RTP stream flag in NON-RTP stream flag in the FULL_HEADER packetthe FULL_HEADER packet

CID

0

Generation 0 1

U

New FULL_HEADER length fields format:

For 8-bit context ID:

For 16-bit context ID:

Seq #

Seq #CID

Generation 1 1 U0

Set U = 1 to indicate a non-RTP stream

35

Rejecting a new Rejecting a new compressed streamcompressed stream

• Decompressor implementations may Decompressor implementations may share resources across multiple linksshare resources across multiple links

• Decompressor may over commit Decompressor may over commit decompression resources in RFC 2509 decompression resources in RFC 2509 negotiationnegotiation

• Decompressor may REJECT a compressed Decompressor may REJECT a compressed steam when out of resourcessteam when out of resources

36

session context ID

Reject packetReject packet (Using (Using CONTEXT_STATE CONTEXT_STATE

opcodeopcode))

context count

CRTP seq# 011 0

1=CS, Reject 8-bit CID

session context ID

generation 0 0

context count

CRTP seq # 011 0

2=CS, Reject 16-bit CID

generation 0 0

CID, CRTP sequence# and generation

are taken from the FULL_HEADER

37

Negotiating usage of enhanced-CRTP and

ACK scheme• RFC 2509 specifies how the use of CRTP RFC 2509 specifies how the use of CRTP

is negotiated on PPP links using the IP is negotiated on PPP links using the IP Compression Protocol option of IPCP:Compression Protocol option of IPCP:– IPCP option 2: IP compression protocolIPCP option 2: IP compression protocol

– protocol 0x61 indicates RFC 2507 header protocol 0x61 indicates RFC 2507 header compressioncompression

– sub-option 1 enables use of sub-option 1 enables use of COMPRESSED_RTP, COMPRESSED_UDP and COMPRESSED_RTP, COMPRESSED_UDP and CONTEXT_STATE as specified in RFC 2508CONTEXT_STATE as specified in RFC 2508

38

Negotiating usage of enhanced-CRTP andACK scheme (cont.)

• For the enhancements defined in this For the enhancements defined in this document, two new sub-options are document, two new sub-options are added:added:– sub-option 2 (length=2) : enables use of sub-option 2 (length=2) : enables use of

all CRTP enhancements except for the ACK all CRTP enhancements except for the ACK scheme scheme

– sub-option 3 (length=2) : enables use of sub-option 3 (length=2) : enables use of all CRTP enhancements including the ACK all CRTP enhancements including the ACK scheme scheme

39

ENDEND