RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with...

19
RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting and others

Transcript of RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with...

Page 1: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

RSVP Refresh Overhead Reductionby State Compression

Lan Wang, Andreas Terzis, Lixia ZhangUCLA

with input from Paxson, Braden, Berson, the interim meeting and

others

Page 2: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

2

Goals

• Reduce the refresh overhead of RSVP– one refresh message per session per

refresh period --> one message per RSVP neighbor

• Minimize re-synchronization delay– when sessions added/deleted– when two neighbors discover

inconsistencies in RSVP state

• Keep the soft-state nature of RSVP– Refresh messages are sent periodically.

Page 3: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

3

Approach• Digest

– a compressed version of the RSVP state shared between two nodes (made of a set of signatures)

• Digests sent periodically to neighbor nodes– refresh RSVP state– discover inconsistency

• Raw RSVP messages sent only when– state changes: e.g. Tspec/Rspec changes,

session addition/deletion– re-synchronizing session state

Page 4: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

4

Digest-capable neighbor discovery

• Request ACK when sending raw RSVP msgs – Add a D-bit to MESSAGE_ID object to indicate

compression-capable

• Three cases:– Receive ACK with D-bit set in MESSAGE_ID

•neighbor is compression-capable

– Receive ACK with D-bit off in MESSAGE_ID•neighbor is compression-incapable

– Receive PathErr or ResvErr message: “legacy” RSVP neighbor

Page 5: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

5

LimitationsLost automatic route adaptability in original

RSVP

• Rely on specific notification to adjust to– routing changes– multicast group membership changes

• do not handle non-RSVP cloud case

S AB

CDNon-RSVP Cloud

Original Route

New Route

Page 6: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

6

Neighbor Data StructureNeighbor Struct +--------------- +| IP Address | +--------------- +| OutSession |--> Hash Table for outgoing sessions+--------------- + | OutDigest |--> top level of OutDigest tree +--------------- +|RefreshOutTimer |+----------------+| IDLastSent |+----------------+|OutDigestTimeout|+----------------+| InSession |--> Hash Table of incoming sessions+----------------+| InDigest |--> top level of InDigest tree+----------------+| CleanupInTimer |+----------------+

Page 7: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

7

Session Signature Computation

• Objects included in computation

RSVP Structure Objects to Include

Session Session Object

PSB Sender Template, Sender Tspec,ADSPEC, Policy Data

RSB Filterspec, Flowspec, Style, PolicyData

Page 8: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

8

digest

Hash TableM Entries

• M: number of slots in the hash table• multiple sessions may hash to the same slot• compute a signature for each slot• neighbor nodes send this list of M signatures in place of

raw RSVP refresh msgs

Digest Computation (simple version)

Page 9: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

9

digest

Hash Table

Level-1 signatures

Level-2 signatures

M Entries

• M: number of entries in the hash table• N: number of signatures contained in a digest

(fit into one packet)• neighbors exchange digest msg periodically

Digest Computation (high compression version)

• Digest Tree:

Page 10: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

10

MESSAGE_ID Object0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |A|D| Flags | Epoch |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Message_ID |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

• Object format defined in draft-berger-rsvp-refresh-reduct-03.txt

• We added D-bit in flags field for neighbor discovery

Page 11: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

11

0 1 2 3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Level | Group |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| Reserved | Number of Signatures |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

| |

// signature list //

| |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

• Class in 10bbbbbb range• Level: level of signatures in digest tree• Group: Block of signatures inside level• Number of Signatures: # of signatures in object• Signature list: a list of checksums

DIGEST Object

Page 12: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

12

1. Digest Message (Msg Type 14)<Digest Message> ::= <Common Header> [<INTEGRITY>]<MESSAGE_ID> <DIGEST> [<TIME_VALUES>]

– Digest message must contain a MESSAGE_ID object with Ack_Requested bit set

2. DigestErr Message (Msg Type 16)<DigestErr Message> ::= <Common Header> [<INTEGRITY>]<MESSAGE_ID> <DIGEST>

– Negative ack, contains digest computed at receiver

New Messages

Page 13: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

13

Normal Case ExamplePATH

ACK(d)

Digest

ACK

New Neighbor !Set Digest Timer

RSVP Msgs

Received digest matches with local InDigest

Digest Refresh timer times out

Page 14: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

14

Recovery Procedure• DigestErr contains set of (top level) signatures computed at the receiving

side– Sender finds which of the N signatures differ

• Sends new Digest message(s) of next lower level rooted at mismatched signatures– Follow same procedure until reach

the bottom of the digest tree – Refresh all sessions corresponding to the mismatched signatures

Page 15: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

15

Digest(t1)

ACK(t1)

PATH

DigestErr(t2)

Sync!

Digest(t2)

More RSVP Msgs

DigestErr

ACK msgsDigest(t3)

ACK(t3)Synchronized!

Recovery Example

ACK

Start recoveryLower-level Digest

More lower-level Digest and DigestErr msgsRaw RSVP msgs

Page 16: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

16

• Digest Tree requires O(T+M) space.• Computation cost of signature: depend on the

compression algorithm– MD5 and CRC linear on the size of the message

• Update signature of a hash slot: f(T/M*s)– s is signature size, f() cost to compute

signature– T/M: average number of sessions in a hash slot

• Update tree: (logNM – 1)* f(N*s)

Digest Computation Costs

Page 17: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

17

Summary of Changes Required

• Protocol– 1 new object (DIGEST)– 2 new message types (Digest,

DigestErr)

• State– Neighbor Data Structure per neighbor

•hash table•signature tree

Page 18: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

18

Features

• Efficient state re-synchronization • Allow individual nodes to choose

original RSVP refreshes or the refresh reduction

• Backward compatibility with the current RSVP implementation

• Incremental digest computation when part of the session(s) changes state

Page 19: RSVP Refresh Overhead Reduction by State Compression Lan Wang, Andreas Terzis, Lixia Zhang UCLA with input from Paxson, Braden, Berson, the interim meeting.

19

PATH(Ad)

Ad Ad’

PATH(Ad’)

ADSPEC & POLICY_DATA• POLICY & ADSPEC

– These objects can change locally– Current RSVP spec keeps object received

• Need to keep copy of the forwarded object to calculate digest for that neighbor

• Digest refreshes trigger updates for these objects

• How to detect changes– always assume new– expect explicit notification