CSC 630: Information Centric Networking

thoughtlessskytopNetworking and Communications

Oct 29, 2013 (3 years and 9 months ago)

82 views

1

CSC
630
:

Information Centric Networking

Spring 2012

2

Names


Applications use names to identify contents.

-
Hierarchical names

-
Flat names



Names should be independent from network locations

-
Same names after switching ISPs.

-
Same names when moving around.

-
Enable efficient content caching, management, security, etc.



Routing is topology
-
dependent

-
Find the content somewhere in the topology



Question: how to route on names in a scalable way?

3

Routing on Names


Routing on
topology
-
independent
names/addresses

-
Ethernet switching (flood data and remember ports)

-
OSPF/BGP etc. routing protocols (flood prefix announcements,
build the routing table)


-
Doesn’t scale. O(N) table size, O(L) messages.



Scalable routing requires congruency between names
(or addresses) and topology

-
E.g., in IP routing, addressing follows topology; in overlay, topology
follows addressing.







-

Addressing can follow topology or topology can
follow addressing
.
Choose one
.

-

Yakov

Rekhter


4

Conventional Wisdom


S
calable
routing on topology
-
independent
names (or
addresses) requires

-
Map topology
-
independent names to topology
-
dependent
labels
;

-
Then route on such labels.

-
True for IP routing (addresses) too.



Mapping is another system designed to handle very large
number of entries outside of the routing system.

-
E.g., centralized database servers, DNS, or other distributed
systems.

-
The downside is the need to run yet another large distributed
system. Can we avoid this?


5

DHT come to rescue (?)


Distributed Hash Table scales

-
Use topology
-
independent IDs

-
Scalable routing: O(
logN
) table size, O(
logN
) hops.



How about apply the DHT mechanism to make the
underlay routing scalable?



Routing on Flat Labels (ROFL)

-
Use flat, self
-
certifying IDs. No separate mapping system needed.

-
Route directly on these flat IDs.

-
Use DHT techniques to scale the routing.

-
Try to support inter
-
domain policies.



Question: is DHT an exception to
Rekhter’s

Law?

6

Distributed Hash Table (DHT)


Abstraction: a hash
-
table data structure implemented over a
distributed system.

-
insert(key, value);

-
value = query(key); or lookup(key)

-
key can be a
any content name, such as file
name, the title of a song,
etc
.

-
value can be anything: a data object, file, IP address of the node that
stores the file, etc.

-
Only exact match, very limited expressiveness of queries.
Applications are expected to build more functionality on top of DHT
.



Many different designs.

-
CAN,
Chord
, Pastry, Tapestry, and
others
.


7

Chord


Use a
uni
-
dimensional id space
0..2
m
-
1


Use the same hash function to hash keys to ids.


Use the same hash function to hash
nodes’
IP addresses
to ids.


Organize the nodes into a structure to facilitate fast search
of an id/key.



Properties

-
Routing table size O(
log
N
) , where
N

is the total number of nodes

-
Guarantees that a
key is
found in O(
log
N
) steps

8

The Ring


Model the ID space as a ring.

-
Each node has an id = hash(
ip
).


A node maintains its

-
Successor

-
Predecessor

-
Finger table


A key is stored at the node with
next highest ID
.

9

Basic Lookup


Linear search

-
Search the ring clockwise one node at a step.

-
O(N) hops, with only one routing entry (successor) per node.


Direct search

-
If every node maintains a list of every other nodes, the search can be done in
1

step, but the
routing table size is N.


Anything in the middle?

10

Finger Table


Some
direct overlay links to
speed up the lookup


Finger[k]: successor to (n+2^(k
-
1)) mod 2^m

11

Scalable Lookup


Binary search using

-
Route to the node
that’s closest to the destination according
to
local
finger
table, but don’t overshoot.

-
Each hop cuts the distance to target by
half.

-
O(
logN
) hops with O(
logN
) routing table entries
.

12

Join Operation


Each node A periodically sends a
stabilize()

message to its
successor B


Upon receiving a
stabilize()

message, node B

-
returns its predecessor
B’=
pred
(B) to A by sending a
notify(
B’)

message


Upon receiving
notify
(
B’)

from B,

-
if
B’
is between A and B
, A updates its successor to B



-
Otherwise (
B’
== A), A
doesn’t
do anything.


13

Joining Operation

4

20

32

35

8

15

44

58

50


Node with id=50 joins the ring


Node 50 needs to know at least one
node already in the system

-
Assume known node is 15





succ=4

pred=44

succ=nil

pred=nil

succ=58

pred=35

14

Joining Operation

4

20

32

35

8

15

44

58

50


Node 50: send
join(50) to node 15


Node 44: returns
node 58


Node 50 updates its
successor to 58

join(50)

succ=58

succ=4

pred=44

pred=nil

succ=58

pred=35

58

15

Joining Operation

4

20

32

35

8

15

44

58

50


Node 50: send
stabilize() to
node 58


Node 58:

-
update
predecessor
to 50

-
send notify()
back

succ=58

pred=nil

succ=58

pred=35

stabilize()

pred=50

succ=4

16

Joining Operation (cont

d)

4

20

32

35

8

15

44

58

50


Node 44 sends a stabilize
message to its successor,
node 58


Node 58 reply with a notify
message


Node 44 updates its
successor to 50

succ=58

stabilize()

succ=50

pred=50

succ=4

pred=nil

pred=35

17

Joining Operation (cont

d)

4

20

32

35

8

15

44

58

50


Node 44 sends a stabilize
message to its new
successor, node 50


Node 50 sets its predecessor
to node 44

succ=58

succ=50

Stabilize()

pred=44

pred=50

pred=35

succ=4

18

Joining Operation (
cont’d
)

4

20

32

35

8

15

44

58

50


This completes the joining
operation!

succ=58

succ=50

pred=44

pred=50

19

Achieving Robustness


To improve robustness each node maintains
k
(> 1)
immediate successors instead of only one successor


In the notify() message, node A can send its k
-
1 successors
to its predecessor B


Upon receiving notify() message, B can update its
successor list by concatenating the successor list received
from A with A itself

20

Improve Performance


Overlay hops


Network Latency

-
Chose finger that reduces expected time to reach destination

-
Chose the closest node from range [N+2
i
-
1
,N+2
i
) as successor



Accommodate heterogeneous systems

-
Multiple virtual nodes per physical node

-
Better load balancing, but more complex.


21

J

K

Q

F

V

A

S

Network

topology

X

Apply DHT to routers (1) :
Know Your Neighbors

A

F

J

K

Q

S

V

X

J

K

F

1. Write down
sorted list of IDs

2. Build paths
between
neighbors in list

Virtual

topology

F

A

J

K

Q

V

S

X

22

J

K

Q

F

V

A

S

Network

topology

X

Apply DHT to
routers (II) :
Forwarding Packets

Virtual

topology

F

A

J

K

Q

V

S

X

Send(K,F)

Q

J

K

F

23

J

K

Q

F

V

A

S

Network

topology

X

Apply DHT to
routers (III) :
Stretch Problem

Virtual

topology

F

A

J

K

Q

V

S

X

Send(J,V)

J

F

A

X

V

Resulting path length:

10 hops

Shortest path length:

3 hops

24

J

K

Q

F

V

A

S

Network

topology

X

Apply DHT to
routers (IV): short
-
cutting

Virtual

topology

F

A

J

K

Q

V

S

X

Send(J,V)

Resulting path length:

4 hops

Shortest path length:

3 hops

J

F

X

V

A

X

25

ROFL intra
-
domain routing


Run a link
-
state protocol to disseminate the topology



All the routers self
-
organized into Chord ring.



A packet contains the source route from the sender router
to the next
-
overlay
-
hop router

-
An intermediate router that doesn’t have a route to the destination
will forward the packet according to the source route.

-
An intermediate router that does have a route to the destination will
compare the source route it has and the one carried in the packet,
pick the better source route and put it the packet, then forward
accordingly.


The overlay ring is topology
-
agnostic, but hopefully the
short
-
cuts can reduce the stretch.

26


How to do inter
-
domain routing using DHT?


I
dea
: Recursive
structure (borrowed from Cannon)

-
Construct bottom
-
up; merge smaller DHTs

-
Lowest level: Chord

26

ROFL inter
-
domain routing

CS

EE

Stanford

27

27

Merging two Chord
rings (Cannon)

0

12

10

5

2

13

8

3

2

13

8

3

Black node x
: Connect to y iff



y closer than any other black
node



y =
succ(x + 2^i)

28

Packet Forwarding (Cannon)


Greedy clockwise routing!

0

12

10

5

2

13

3

8



Path locality by greedy routing!



Path convergence at closest node to
destination of same color



Local DHTs by construction!

29


Economic relationships:

peer, provider/customer


Isolation:

routing contained within hierarchy

hierarchy #1

hierarchy #2

hierarchy #3

peer link

Internet Policies Today






Economic relationships:

peer, provider/customer


Isolation:

routing contained within hierarchy

prefer customer

over peer routes

provider routes must not

be exported to peers

Source

Destination

30

Isolation in ROFL (Canon)


Traffic between two hosts traverses no higher
than their lowest common provider in the AS
hierarchy


Accomplished by carefully merging the rings


Joining

host


Internal

Successor


External

Successor

External

Successor

Source

Destination

31

Policy support in
ROFL

B

C

Peering link

Mechanism:

Convert peering

relationships to

Virtual ASes

Source

Destination

A

Source

Destination

VirtAS

A

C

B

Goal: prefer peer


route over

provider route

32

32

Scalability in ROFL


Two extensions to improve locality:

-
Maintain proximity
-
based fingers in a policy
-
safe fashion

-
Pointer caching strategies: prefer nearby, popular pointers






0x3B57

0x3BAC

0x3B57

0xA153

0xF64B

0x3BAC



0xA153



0xF64B

pc: 0xA153

pc: 0x3BAC 0xF64B

33

How ROFL Works

ISP

ISP

0xFA291

0x3B57E

(joining

host)

0x3F6C0

0x3BAC8

0x3B57E

0x3F6C0


Successor list:
0x3F6C0


Pointer list:


0x3F6C0


0x3BAC8


Pointer cache:
0x3B57E

2.
hosting routers

participate in ROFL on
behalf of hosts

3. hosting routers maintain
pointers

with
source
-
routes

to attached hosts


successors/fingers

4. intermediate
routers may
cache
pointers

5.
external pointers

provide reachability
across domains

1. hosts are assigned
topology
-
independent

flat


identifiers

0x3BAC8

34

Summary


Performance is not good

-
Stretch, message, complexity, …



Lessons learned

-
Routing on flat labels doesn’t scale. (old news)


-
DHT scales because its (overlay) topology follows its addressing.
That’s why applying DHT to network layer doesn’t work.


-
Maybe instead of trying hard on new routing schemes, we should try
hard on a more scalable and resilient mapping system? Which is
the other
essential piece to
scalable routing.