Internet Indirection Infrastructure i 3 Ion Stoica Daniel

  • Slides: 28
Download presentation
Internet Indirection Infrastructure (i 3 ) Ion Stoica, Daniel Adkins, Shelley Zhuang, Scott Shenker,

Internet Indirection Infrastructure (i 3 ) Ion Stoica, Daniel Adkins, Shelley Zhuang, Scott Shenker, Sonesh Surana UC Berkeley SIGCOMM 2002 Presented by: Ao-Jan Su

Motivations n Today’s Internet is built around a unicast point-to-point communication abstraction: n n

Motivations n Today’s Internet is built around a unicast point-to-point communication abstraction: n n Send packet “p” from host “A” to host “B” Point-to-point communication n n Implicitly assumes there is one sender and one receiver, and that they are placed at fixed and well -known locations Example: a host identified by the IP address 165. 124. 180. xxx is located in NU

Motivations n n This abstraction allows Internet to be highly scalable and efficient, but…

Motivations n n This abstraction allows Internet to be highly scalable and efficient, but… … not appropriate for applications that require other communications primitives: n n n Multicast Anycast Mobility … More general abstraction is needed

Solution n Use an overlay network to implement this layer n Incrementally deployable; don’t

Solution n Use an overlay network to implement this layer n Incrementally deployable; don’t need to change IP

Solution Multicast Anycast Mobility Service Composition An indirection layer based on overlay network (decouples

Solution Multicast Anycast Mobility Service Composition An indirection layer based on overlay network (decouples sending and receiving) IP Layer

Internet Indirection Infrastructure (i 3) n n Each packet is associated an identifier id

Internet Indirection Infrastructure (i 3) n n Each packet is associated an identifier id To receive a packet with identifier id, receiver R maintains a trigger(id, R) into the overlay network Sender trigger id R Receiver (R)

Service Model n API n n n send. Packet(p); insert. Trigger(t); remove. Trigger(t) //

Service Model n API n n n send. Packet(p); insert. Trigger(t); remove. Trigger(t) // optional Best-effort service model (like IP) Triggers periodically refreshed by end-hosts ID length: 256 bits

Mobility n Host just needs to update its trigger as it moves from one

Mobility n Host just needs to update its trigger as it moves from one subnet to another Sender id R 2 R 1 Receiver (R 1) Receiver (R 2)

Multicast n n Receivers insert triggers with same identifier Can dynamically switch between multicast

Multicast n n Receivers insert triggers with same identifier Can dynamically switch between multicast and unicast Sender trigger id R 1 id R 2 Receiver (R 1) trigger Receiver (R 2)

Anycast n Use longest prefix matching instead of exact matching n n Prefix p:

Anycast n Use longest prefix matching instead of exact matching n n Prefix p: anycast group identifier Suffix si: encode application semantics, e. g. , location

Stack of Identifiers n idstack: (id 1, id 2, id 3, …, idk) n

Stack of Identifiers n idstack: (id 1, id 2, id 3, …, idk) n n n idi is either identifier or an address Packet p = (idstack, data) Trigger t = (id, idstack)

Using i 3 n Service Composition n Server initiated Receiver initiated Large Scale Multicast

Using i 3 n Service Composition n Server initiated Receiver initiated Large Scale Multicast

Service Composition: Sender Initiated n Use a stack of IDs to encode sequence of

Service Composition: Sender Initiated n Use a stack of IDs to encode sequence of operations to be performed on data path S_MPEG/JPEG send((ID_MPEG/JPEG, ID), data) Sender (MPEG) send(R, data) send(ID, data) ID_MPEG/JPEGS_MPEG/JPEG ID R Receiver R (JPEG)

Service Composition: Receiver Initiated n Receiver can also specify the operations to be performed

Service Composition: Receiver Initiated n Receiver can also specify the operations to be performed on data S_MPEG/JPEG send(R, data) send(ID, data) Sender (MPEG) ID_MPEG/JPEGS_MPEG/JPEG send((ID_MPEG/JPEG, R), data) ID ID_MPEG/JPEG, R Receiver R (JPEG)

Large Scale Multicast n Can create a multicast tree for scalability (g, data) g

Large Scale Multicast n Can create a multicast tree for scalability (g, data) g x x R 3 g g R 1 R 2 x R 4 R 1 R 4

Implementation Overview n ID space is partitioned across infrastructure nodes n n n Each

Implementation Overview n ID space is partitioned across infrastructure nodes n n n Each node responsible for a region of ID space Each trigger (id, R) is stored at the node responsible for id Use Chord to route triggers and packets to nodes responsible for their IDs n O(log N) hops

Properties n Robustness, Efficiency, Scalability, Stability n n Robustness: refresh triggers , trigger replication,

Properties n Robustness, Efficiency, Scalability, Stability n n Robustness: refresh triggers , trigger replication, back-up triggers Efficiency: Routing optimizations Incremental deployment possible Legacy applications can be supported by proxy which inserts triggers on behalf of client

Example n n n ID space [0. . 63] partitioned across five i 3

Example n n n ID space [0. . 63] partitioned across five i 3 nodes Each host knows one i 3 node R inserts trigger (37, R); S sends packet (37, data)

Example n n n ID space [0. . 63] partitioned across five i 3

Example n n n ID space [0. . 63] partitioned across five i 3 nodes Each host knows one i 3 node R inserts trigger (37, R); S sends packet (37, data)

Optimization: Path Length n n Sender/receiver caches i 3 node mapping a specific ID

Optimization: Path Length n n Sender/receiver caches i 3 node mapping a specific ID Subsequent packets are sent via one i 3 node

Optimization: Location-aware Triggers n n n Well-known (public) trigger for initial rendezvous Exchange a

Optimization: Location-aware Triggers n n n Well-known (public) trigger for initial rendezvous Exchange a pair of (private) triggers well-located Use private triggers to send data traffic Private Triggers: - S can insert a trigger [1, S] that is stored at server 3 - R can chose a trigger [30, R] that is stored at server 35

Security n i 3 end-points also store routing information n n New opportunities for

Security n i 3 end-points also store routing information n n New opportunities for malicious users Goal: make i 3 not worse than today’s Internet

Some Attacks

Some Attacks

Solutions n n n Eavesdropping: Use private triggers, periodically change them, multiple private triggers

Solutions n n n Eavesdropping: Use private triggers, periodically change them, multiple private triggers Do. S Attacks: Challenges, Fair Queueing for resource allocation, loop detection Dead-End: Use push-back

Experimental Results n Simulation over two topologies n n Power-law random graph topology Transit-stub

Experimental Results n Simulation over two topologies n n Power-law random graph topology Transit-stub topology n Latency Stretch = (i 3 latency)/(IP latency) n First Packet Latency, End-to-end Latency

First Packet Latency Heuristics • Closest Finger Replica: Store r successors of each finger

First Packet Latency Heuristics • Closest Finger Replica: Store r successors of each finger • Closest Finger Set: Use base b < 2 to find fingers, but consider only log 2 N closest fingers when routing 90 th percentile latency stretch vs. no of i 3 servers for Transit-stub topology

End-to-end Latency 90 th percentile latency stretch vs. no of samples (16384 i 3

End-to-end Latency 90 th percentile latency stretch vs. no of samples (16384 i 3 servers) i 3 latency = (sender to i 3 server)+(i 3 server to receiver)

Conclusions n Indirection – key technique to implement basic communication abstractions n n Multicast,

Conclusions n Indirection – key technique to implement basic communication abstractions n n Multicast, Anycast, Mobility, … This research n n Advocates for building an efficient Indirection Layer on top of IP Explores the implications of changing the communication abstraction