1 / 19

RSVP Refresh Overhead Reduction by State Compression

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. Goals. Reduce the refresh overhead of RSVP

agalia
Download Presentation

RSVP Refresh Overhead Reduction by State Compression

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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.

  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

  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

  5. Limitations Lost 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 Original Route B S A D Non-RSVP Cloud C New Route

  6. Neighbor Data Structure Neighbor 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 | +----------------+

  7. Session Signature Computation • Objects included in computation

  8. Digest Computation (simple version) digest M Entries Hash Table • 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

  9. Digest Computation (high compression version) • Digest Tree: digest Level-2 signatures Level-1 signatures M Entries Hash Table • 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

  10. MESSAGE_ID Object 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |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

  11. DIGEST Object 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

  12. New Messages 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

  13. PATH New Neighbor ! Set Digest Timer ACK(d) RSVP Msgs Digest Refresh timer times out Digest Received digest matches with local InDigest ACK Normal Case Example

  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

  15. Digest(t1) ACK(t1) PATH ACK More RSVP Msgs Digest(t2) DigestErr(t2) Lower-level Digest DigestErr More lower-level Digest and DigestErr msgs Raw RSVP msgs ACK msgs Digest(t3) ACK(t3) Recovery Example Sync! Start recovery Synchronized!

  16. Digest Computation Costs • 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)

  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

  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

  19. 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 PATH(Ad’) PATH(Ad) Ad Ad’

More Related