Addressing: Indirection

advertisement
Indirection
Jennifer Rexford
Advanced Computer Networks
http://www.cs.princeton.edu/courses/archive/fall08/cos561/
Tuesdays/Thursdays 1:30pm-2:50pm
Slides borrowed liberally from Ion Stoica’s CS 268 class at UC Berkeley
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
–…
Why?
• Point-to-point communication
– Implicitly assumes there is one sender
– … and one receiver,
– … and that they are placed at fixed and wellknown locations
• Network location tied to network layer
identifier
– E.g., a host identified by the IP address
128.32.xxx.xxx is located in Berkeley
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
Application-Level Solutions
• Implement the required functionality at the
application level, e.g.,
– Application-level multicast
– Application-level mobility
• Disadvantages:
– Inefficiency: hard to achieve good performance
– Redundancy: Each application implements the
same functionality over and over again
– No synergy: each application implements usually
only one service, services hard to combine
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
“Any problem in computer science can
be solved by adding a layer of indirection”
I3 Solution
Build an efficient indirection layer
on top of IP
• Use overlay network to implement this layer
– Incrementally deployable; don’t need to change IP
Application
Indir.
TCP/UDP
layer
IP
Internet Indirection Infrastructure (i3)
• Each packet is associated an identifier id
• To receive packet with identifier id, receiver R
inserts trigger (id, R) into overlay network
data id
Sender
Receiver (R)
data R
id R
trigger
Service Model
• API
– sendPacket(p);
– insertTrigger(t);
– removeTrigger(t) // optional
• Best-effort service model (like IP)
• Triggers periodically refreshed by end hosts
• ID length: 256 bits
Mobility
• Host just needs to update its trigger as it
moves from one subnet to another
Sender
id R2
R1
Receiver
(R1)
Receiver
(R2)
Multicast
• Receivers insert triggers with same identifier
• Dynamically switch between multicast and
unicast
data id
Sender
data R1
id R1
Receiver (R1)
id R2
data R2
Receiver (R2)
Anycast
• Use longest prefix matching instead of exact
matching
– Prefix p: anycast group identifier
– Suffix si: encode application semantics, e.g.,
location
data p|a
Sender
data R1
p|s1 R1
p|s2 R2
Receiver (R1)
Receiver (R2)
p|s3 R3
Receiver (R3)
Service Composition: Sender Initiated
• Use a stack of IDs to encode sequence of
operations to be performed on data path
• Advantages
– Don’t need to configure path
– Load balancing and robustness easy to achieve
Transcoder (T)
data idT,id
Sender
data id
data T,id
idT T
data R
id R
Receiver (R)
Service Composition: Receiver Initiated
• Receiver can also specify the operations to be
performed on data
data id
Sender
Firewall (F)
data R
data F,R
idF F
data idF,R
id idF,R
Receiver (R)
Quick Implementation Overview
• ID space is partitioned across infrastructure
nodes
– 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
– O(log N) hops
Example
• IDs[0..63] partitioned across five i3 nodes
• Each host knows one i3 node
• R inserts trigger (37, R); S sends packet (37,
data)
[8..20]
[4..7]
data 37
Sender (S)
[42..3]
[21..35]
[36..41]
data R
37 R
Receiver (R)
Optimization: Path Length
• Sender/receiver caches i3 node mapping a
specific ID
• Subsequent packets are sent via one i3 node
[8..20]
[4..7]
data 37
[42..3]
Sender (S)
cache node
[21..35]
[36..41]
data R
37 R
Receiver (R)
Optimization: Triangular Routing
• Use well-known trigger for initial rendezvous
• Exchange a pair of (private) triggers welllocated
• Use private triggers to send data traffic
[8..20]
[4..7]
37
data
[2] 30
2 S
Sender (S)
[42..3]
S
[30]
[21..35]
[36..41]
[2] R
37 R
data
R
2
[30]
30 R
Receiver (R)
Outline
• Overview
Security
• Discussion
Some Attacks
Eavesdropping
Loop
id1 id2
id R
id A
S
R
id4 id1
Attacker (A)
id2 id3
id3 id4
Attacker
Confluence
Dead-End
id2 id3
Attacker id1 id2
id2 id3
id2 id3
id3 V
Victim
(V)
Attacker
id1 id2
id2 id3
Constrained Triggers
• hl(), hr(): well-known one-way hash functions
• Use hl(), hr() to constrain trigger (x, y)
Right constrained
must match
ID: prefix
64
key
128
y.key = hr(x)
suffix
64
x
y
Left constrained
x.key = hl(y.key)
x.key = hl(y)
x
y
x
y
end-host address
Attacks & Defenses
Attack
Defense
Eavesdropping&
Impersonation
Loops &
Confluences
Dead-ends
Reflection &
Malicious
trigger-removal
Confluences
Trigger
Pushbac
constraint k
s
Trigger
Public i3
challenge node
s
constraint
s
Design Principles
• Give hosts control on routing
– A trigger is like an entry in a routing table!
– Flexibility, customization
– End-hosts can
• Source route
• Set-up acyclic communication graphs
• Route packets through desired service points
• Stop flows in infrastructure
•…
• Implement data forwarding in infrastructure
– Efficiency, scalability
Design Principles (cont’d)
Host
Infrastructure
Data plane
Internet
Control plane
p2p &
End-host overlays
i3
Data plane
Control plane
Control plane
Data plane
Conclusions
• Indirection – key technique to implement
basic communication abstractions
– Multicast, Anycast, Mobility, …
• Building efficient indirection layer on IP
– Triggers, and DHTs to map to the location
Discussion
• Value of composition?
– Middlebox functionality
– E.g., transcoding, firewall, caching, etc.
• Efficiency cost?
– Stretch by traversing intermediate node
– Processing and storing of triggers
• Complexity?
– When trying to reduce stretch
– When trying to cache information
–…
• Should indirection be part of future Internet?
Next Two Weeks
• Guest lectures
– 11/18: Mike Freedman
– 11/20: Sharon Goldberg
– 11/25: Mung Chiang
• No class on 11/27 due to Thanksgiving
• I’ll be in Thailand
– Co-chairing Asia Internet Engineering Conference
• After Thanksgiving
– Programmability and virtualization…
Download