Internet Indirection Infrastructure (i3) Ion Stoica

advertisement
Internet Indirection
Infrastructure
(i3)
Ion Stoica
Daniel Adkins
Shelley Zhuang
Scott Sheker
Sonesh Surana
Presented by Kiran Komaravolu
Motivation
With the Internet’s point to point
communication abstraction,
implementation of some services like
mobility, multicast, anycast etc. has
become difficult.
Solution: Indirection  Instead of sending
packet to receiver, associate a packet with
an id, receiver picks up all packets with the
ids’ its interested in.
How i3 works
Receiver inserts a “trigger” into i3
“Send all pkts with identifier id to
address R.”
When a pkt with id is sent into i3,
matching triggers are looked up and
Pkts sent to those receivers.
A packet may match a trigger both their ids have the same prefix of k bits
And no other trigger has a longer prefix that matches the packet.
How i3 works
I3 is an overlay network with a bunch of
servers.
In the basic form
– Packets are of the form (id, data)
– Triggers are of the form (id, addr)
Each server has a unique identifier.
How i3 works
When a trigger (id, addr)is inserted, it is
stored in server responsible for id.
When Packet (idt , data) is inserted into i3, it
is routed to server responsible for id.
All Ids with same initial k bits are stored in
same server .
When packet reaches the server,
appropriate trigger is fired or the packet is
dropped if it doesn’t match any trigger.
Communication with i3.
Mobility
– Packet redirection can be made just by changing
client’s trigger from (id,R) to (id, R’).
Multicast
– A bunch of clients insert triggers in the form
(id, R1), (id, R2), (id, R3). Pkt with id is sent to R1, R2,
R3
Anycast
– Pkts should be sent to only one receiver in a group.
– All receivers in the group insert triggers with same k
bit prefix.
– The last m-k bits are used to encode differences
between the receivers. The receiver whose id
matches the longest prefix gets the packet.
ID Stacks.
Triggers or Packets could specify identifier
stacks or address stacks.
Packet p = (idstack, data)
Trigger t = (id , idstack)
Useful in redirecting traffic.
Using ID stacks
Packet p = (id1-id2-id3 ,data)
I3 has a trigger t = (id2, x-y) [x,y are addrs]
– Packet is sent to id1
– No trigger match. id1 popped out of stack.
– Packet sent to id2.
– Trigger found. id2 popped out and x-y
prepended to identifier list.
– This trigger is fired.
This allows for end parties to determine the routing of the packets.
Using i3
Service composition
– Packets may be sent to a 3rd party server for
preprocessing before being sent to the client.
Heterogeneous multicast.
– Two receivers receiving same data but in
different application formats.
Server Selection
– Last m-k bits of identifiers may be used for
server selection.
Simulation Results
Packets sent from Sender to “server” to Receiver
Sender caches “server” address.
Latency stretch for the 1st packet
Per Data Packet forwarding overhead
Q’s
?
Download