35
Internet Indirection Infrastructure Slides thanks to Ion Stoica

Internet Indirection Infrastructure

Embed Size (px)

DESCRIPTION

Internet Indirection Infrastructure. Slides thanks to Ion Stoica. Motivations. Today’s Internet is built around a unicast point-to-point communication abstraction: Send packet “p” from host “A” to host “B” This abstraction allows Internet to be highly scalable and efficient, but… - PowerPoint PPT Presentation

Citation preview

Page 1: Internet Indirection Infrastructure

Internet Indirection Infrastructure

Slides thanks to

Ion Stoica

Page 2: Internet Indirection Infrastructure

Motivations

• Today’s Internet is built around a unicast point-to-point communication abstraction:– Send packet “p” from host “A” to host “B”

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

• … not appropriate for applications that require other communications primitives:– Multicast – Anycast – Mobility– …

Page 3: Internet Indirection Infrastructure

Why?

• Point-to-point communication abstraction implicitly assumes that there is one sender and one receiver, and that they are placed at fixed and well-known locations– E.g., a host identified by the IP address

128.32.xxx.xxx is located in Berkeley

• Network location tied to network layer identifier

Page 4: Internet Indirection Infrastructure

IP Solutions

• Extend IP to support new communication primitives, e.g., – Mobile IP – IP multicast– IP anycast

• Disadvantages:– Difficult to implement while maintaining Internet’s

scalability (e.g., multicast)– Require community wide consensus -- hard to

achieve in practice

Page 5: Internet Indirection Infrastructure

Application Level Solutions

• Implement the required functionality at the application level, e.g., – Application level multicast – Application level mobility

• Disadvantages:– Efficiency hard to achieve– Redundancy: Each application implements the

same functionality over and over again– No synergy: each application implements

usually only one service, services hard to combine

Page 6: Internet Indirection Infrastructure

Key Observation

• All previous solutions use a simple but powerful technique: indirection– Assume a logical or physical indirection point

interposed between sender(s) and receiver(s)

• Examples:– IP multicast assumes a logical indirection

point: the IP multicast address– Mobile IP assumes a physical indirection

point: the home agent

Page 7: Internet Indirection Infrastructure

Our Solution: Internet Indirection Infrastructure (i3)

• Add an efficient indirection layer on top of IP• Use an overlay network to implement it

– Incrementally deployable; no need to change IP

IP router

i3 node

Page 8: Internet Indirection Infrastructure

i3 Communication Abstraction

• Provide a rendezvous based communication abstraction (instead of point-to-point) – 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 Receiver (R)

id R

trigger

send(id, data)send(R, data)

Page 9: Internet Indirection Infrastructure

Service Model

• API– sendPacket(p);– insertTrigger(t);– removeTrigger(t)

• Best-effort service model (like IP)• Triggers are periodically refreshed by end-

hosts• Reliability, congestion control, and flow-

control implemented at end-hosts

Page 10: Internet Indirection Infrastructure

The Promise

• Provide support for– Mobility– Multicast – Anycast– Service composition

Page 11: Internet Indirection Infrastructure

Mobility

• Host just needs to update its trigger as it moves from one subnet to another

SenderReceiver

(R1)id R1

send(id,data) send(R1, data)

Page 12: Internet Indirection Infrastructure

Mobility

• Host just needs to update its trigger as moves from one subnet to another

Sender

Receiver(R2)

id R2

send(id,data)

send(R2, data)

Page 13: Internet Indirection Infrastructure

Multicast

• Unifies multicast and unicast abstractions– Multicast: receivers insert triggers with the same

identifier

• An application can dynamically switch between multicast and unicast

Sender Receiver (R1)id R1

send(id,data) send(R1, data)

Receiver (R2)

id R2

send(R2, data)

Page 14: Internet Indirection Infrastructure

Anycast

• Generalize the matching scheme used to forward a packet– Until now we assumed exact matching

• Next, we assume: – Longest prefix matching (LPM) using a prefix larger

than a predefined constant l to avoid collisions

Page 15: Internet Indirection Infrastructure

Anycast (cont’d)

• Anycast is simply a byproduct of the new matching scheme, e.g., – Each receiver Ri in the anycast group inserts IDs

with the same prefix p and a different suffix si

Sender

Receiver (R1)p|s1 R1send(p|a,data)

Receiver (R2)p|s2 R2

p|s3 R3

Receiver (R3)

send(R1,data)

Page 16: Internet Indirection Infrastructure

Service Composition

• Use a stack of IDs to encode the successions of operations to be performed on data

• Similar to the idea of delegation in DOA

Sender(MPEG)

Receiver R(JPEG)

id_MPEG/JPEG S_MPEG/JPEGid R

send((id_MPEG/JPEG,id), data)

S_MPEG/JPEG

send(id, data) send(R, data)

Page 17: Internet Indirection Infrastructure

Service Composition (cont’d)

• Receiver can also specify the operations to be performed on data

Receiver R(JPEG)

id_MPEG/JPEG S_MPEG/JPEG

id (id_MPEG/JPEG, R)

send(id, data)

S_MPEG/JPEG

Sender(MPEG)

send((id_MPEG/JPEG, R), data)

send(R, data)

Page 18: Internet Indirection Infrastructure

Quick Implementation Overview

• i3 is implemented on top of Chord– But can easily use CAN, Pastry, or Tapestry

• Each trigger t = (id, R) is stored on the node responsible for id

• Use Chord recursive routing to find best matching trigger for packet p = (id, data)

Page 19: Internet Indirection Infrastructure

Routing Example

• R inserts trigger t = (37, R); S sends packet p = (37, data)• An end-host needs to know only one i3 node to use i3

– E.g., S knows node 3, R knows node 35

3

7

20

35

41

37 R

3

7

20

3541

37 R

S

R

trigger(37,R)

send(37, data)

send(R, data)

Chord circle

S

R

02m-1

Page 20: Internet Indirection Infrastructure

Optimizations

• Sender/receiver caches node that maps a specific ID• Subsequent packets are sent via one i3 node

3

7

20

3541

37 R

S

Rsend(R, data)

send(37, data)

cache node “41”

Page 21: Internet Indirection Infrastructure

Optimizations (cont’d)

• Address “triangular routing problem”:• Public triggers for initial rendezvous• Private triggers for efficient routing: • Choose private trigger IDs to map onto nearby

nodes – Sample identifier space (done off-line), or – Assume end-hosts know the ID of a close by node

• Note: only applications are aware of private/public distinction; i3 isn’t

Page 22: Internet Indirection Infrastructure

Optimizations (cont’d)

• H1 wants to contact H2– H1 knows H2’s public trigger (e.g., Hash(cnn.com))

idpublic H2

H1id1private id2private H2

H1 H2send(idpublic, id1private) send(H2, id1private)

send(id1private, id2private)

send(id2private, data)send(H2, data)

Page 23: Internet Indirection Infrastructure

Examples of Using i3

• Heterogeneous multicast• Scalable Multicast• Load balancing• Proximity

Page 24: Internet Indirection Infrastructure

Example 1: Heterogeneous Multicast

• Sender not aware of transformations

Receiver R1(JPEG)

id_MPEG/JPEG S_MPEG/JPEG

id (id_MPEG/JPEG, R1)

send(id, data)

S_MPEG/JPEG

Sender(MPEG)

send((id_MPEG/JPEG, R1), data)

send(R1, data)

id R2

Receiver R2(MPEG)

send(R2, data)

Page 25: Internet Indirection Infrastructure

Example 2: Scalable Multicast

• i3 doesn’t provide direct support for scalable multicast– Triggers with same identifier are mapped onto the same i3 node

• Solution: have end-hosts build an hierarchy of trigger of bounded degree

R2

R1

R4R3

g R2

g R1

gx

x R4

x R3

(g, data)

(x, data)

Page 26: Internet Indirection Infrastructure

Example 3: Load Balancing

• Servers insert triggers with IDs that have random suffixes• Clients send packets with IDs that have random suffixes

S1

1010 0101 S2

1010 1010 S3

1010 1101 S4

S1

S2

S3

S4

A

B

send(1010 0110,data)

send(1010 1110,data)

1010 0010

Page 27: Internet Indirection Infrastructure

Example 4: Proximity

• Suffixes of trigger and packet IDs encode the server and client locations

1000 0010 S1

1000 1010 S21000 1101 S3

S1

S2S3

send(1000 0011,data)

Page 28: Internet Indirection Infrastructure

Security

• i3 does is not “worse” than today’s Internet

• Actually, show that i3 can provide better protection against DoS attacks

Page 29: Internet Indirection Infrastructure

Eavesdropping

SenderReceiver (R)id R

send(id,data) send(R, data)

Attacker (A)

id A

Page 30: Internet Indirection Infrastructure

Solution

• Random private triggers• Periodically change private triggers• Multiple private triggers per flow• Public key cryptography to exchange

private triggers

Page 31: Internet Indirection Infrastructure

Trigger hijacking

• Malicious user can isolate a host by removing its public trigger

• Solution: Another level of indirection• Receiver R can insert two triggers (id, x), (x, R)

instead of (id, R)

Sender (S)

Receiver (R)x R

id x

Page 32: Internet Indirection Infrastructure

DOS attack on end hosts

Victim(V)

id3

id3

id3

V Attacker id2 id2

id2

id2

id1 id3

Page 33: Internet Indirection Infrastructure

Solution 1: Stop the Attack

• If a receiver is attacked via a private trigger just drop that trigger

• In general shutting down a compromised service could save other services that share the same incoming link– Not true in today’s Internet

Page 34: Internet Indirection Infrastructure

Solution 2: Third party firewall

• Use a DoS-filter server A more powerful than S that maintains S’ public trigger on its behalf

• A sends puzzles to client C before establishing connection between C and S

Server (S)t S

id A

DoS-Filter (A)

idc C

Client (C)

Page 35: Internet Indirection Infrastructure

Take-home lessons

• The idea of “indirection”• Rendezvous based communication

abstraction• DHTs and flat name lookups enable new

Internet architectures