Title: Overview
 1Overview
- Content Addressable Networks 
 - Intentional Naming System 
 - CAN vs INS
 
  2Resource Discovery  Desirable Features
- Expressiveness 
 - Responsiveness 
 - Robustness 
 - Easy Configuration 
 - Example app.  sending a job to a printer.
 
  3Gnutella Architecture.
- Advantages 
 - No central file server. 
 - Scalable  any number of hosts and any amount of 
content.  - Problems 
 - Flooding. 
 - No guarantee that file will be found if it is in 
the network.  - Every query receiving host has to process query. 
 
  4Motivation for CAN
- Popularity of peer-to-peer networks. 
 - Need for scalability  no central bottleneck. 
 - Need to avoid flooding. 
 - Separate naming scheme from name resolution. 
 - Counter example  DNS, .edu resolved by .edu 
root name server. 
  5Basic Design of CAN
- Use of key-value pair. 
 - D-dimensional space divided amongst nodes. 
 - Key hashed to a point P in D-dimensional space. 
 - Retrieve value for key from the host for point P. 
 - Supported operations on key-value pairs. 
 - Insertion. 
 - Lookup 
 - Deletion.
 
  6How this works.
Neighbour list for 6  2,3 5  1 2  
6,1 4  1 3  6,1 1  2, 3, 4 
,5 
 7How this works.
4.0
5
2
6
3
3
1
5
1
4
2
6
0.0
4.0
4
retrieve (K) 
(2.5,1.5)  hash (K) 
Route request for node for zone (2-3,1-2) 
return value  
 8Routing in CAN
- Nodes have information about their logical 
neighbours.  - Routing is greedy. 
 - CAN messages have the source and destination 
cordinates.  - Average routing path length  (d/4)  (n1/d).
 
  91st step  locate bootstrap node
bootstrap node
4.0
2
6
3
1
5
4
0.0
4.0 
 102nd step  select point.
bootstrap node
4.0
2
6
selected point
3
1
5
p
4
0.0
4.0 
 113rd step  send join request
bootstrap node
4.0
2
6
selected point
3
1
5
p
4
0.0
4.0 
 124th step  split and inform neighbours
4.0
2
6
3
1
5
7
4
0.0
4.0 
 13CAN Construction
- Join affects only O (D) nodes. 
 - Bootstrap mechanism assumes availability of DNS. 
 - Key-value pairs are also split. 
 - Similar mechanism for departure.
 
  14CAN Construction (contd)
- Problem  logically close nodes may be far apart. 
 - Key value pairs periodically refreshed.
 
  15Design Improvements
- Reduce CAN path length 
 - To correspond to IP path length. 
 - Reduce CAN path latency 
 - To correspond to IP path latency. 
 - Improve robustness. 
 - Employ load balancing mechanisms.
 
  16Multi-dimensional Coordinate Space
- Increasing dimensions reduces routing path. 
 - Path length scales as 
 - O (d (n 1/d)). 
 - Improves routing fault tolerance. 
 
  17Realities  Multiple Coordinate Space
- With r realities, each node maintains r zones. 
 - Replication of hash table. 
 - Increased availability. 
 - Consistency? 
 
  18Multiple Cordinate Spaces
6
2
1
5
2
1
4
3
5
6
3
4
6
3
1
1
6
4
5
2
5
2
2
5
3
6
6
3
3
1
1
5
4
2
4
5
6
2
4
5
3
3
1
4
6
2
1 
 19Other Improvements
- RTT weighted algorithms. 
 - Table 1. 
 - Topologically-sensitive construction. 
 - Example follows.
 
  201st step  ping DNS.
Y
DNS 1
4
DNS 2
New
DNS 3
4
X
ping time  2 gt 1 gt 3. 
 21Partition along X.
Y
DNS 1
4
DNS 2
New
1,2 gt 3
1,3 gt 2
2,3 gt 1
DNS 3
4
X
ping time  2 gt 1 gt 3. 
 22Partition along Y.
Y
DNS 1
4
DNS 2
New
DNS 3
4
X
ping time  2 gt 1 gt 3. 
 23Topologically-sensitive construction. 
 24Other Improvements (contd)
- Overloading Coordinate zones. 
 - To me looks like a combination of 
 - Multiple reality  RTT weighted routing. 
 - Multiple hash functions. 
 - Does not improve routing fault tolerance  single 
neighbour list.  - Uniform Partitioning.
 
  25Other Improvements (contd) 
 26Self-configuration/healing
- Organizes itself as nodes join and leave. 
 - Use of heart-beat to keep track of peers. 
 - In case of node failure 
 - Neighbours take over. 
 - Problem  existing key-value pairs lost. 
 - Rebuild key-value information.
 
  27Self-configuration/healing (contd)
- Possibility of fragmentation. 
 - One node maintaining multiple zones. 
 - To solve this  background zone reassignment.
 
  28Robustness
- Resilient in case of node failure/departure. 
 - However, needs to build key-value pairs. 
 - Use of multiple realities. 
 - Replicated content. 
 - Reaching a coordinate point means reaching in any 
reality.  - Consistency? Weak!
 
  29Robustness (contd)
- Overloaded zones. 
 - Multiple hash functions.
 
  30Scalable?
- self-reconfigurable if large number of nodes? 
 - Yes 
 - Path length? Possibly! 
 - traceroute  30 hops max. IP level! 
 - Num. hops lt 32 if 4 realities (fig. 4.) 
 - Num. Hops lt 32 if 5 dimensions. (fig. 5.)
 
  31Scalable? (contd)
- Latency stretch constant for 4  dimension with 
topologically sensitive construction. (fig. 8) 
  32INS - Design Overview
- Applications specify intention. 
 - Ex. least loaded printer. 
 - Hierarchy of attributes-values (av pair). 
 - Map intention to location. 
 - Ex. Map to the address of a particular printer. 
 
  33Name specifier
- Used for query. 
 - Used for advertising services. 
 - Example  
 -  city  charlottesville 
 -  building  olsson 
 -  service  printer laser  cs-bw1 
 - Is simple and quite expressive! 
 
  34Example  printer
root
services
building
city
olsson
charlottesville
printer
water
projector
camera
laser
ink
cs-ink1
cs-bw1 
 35Resolution and Routing
- Early and late binding options 
 - Integrated resolution and routing (for late 
binding).  - The resolution of a name yields a set of name 
records.  - Services specify application-controlled metric. 
 
  36Early Binding.
data
Service
network location
intentional name
Client
Service
INRs 
 37Late binding  Intentional Anycast.
Service
intentional name  data
Client
Service
INRs 
 38Late binding  Intentional Multicast.
Service
intentional name  data
Client
Service
INRs 
 39INR Join.
ping all
new
DSR
DSR - Domain Space Resolver
INRs 
 40Self-reconfiguration.
- INR-to-INR ping times used to readjust topology. 
 - Each INR designates host with minimum ping time 
as neighbour.  - Thus resolver overlay network organized into 
(minimum ?) spanning tree.  - Spawn instances of INR instances on inactive 
INRs.  - INRs self-terminate if low load. 
 - Exchange soft state to discover/update service.
 
  41Scalability Issues  Problems.
- Join has problems. 
 - Centralized bottleneck  DSR. 
 - Flooding  ping all in list. 
 - Not a minimum spanning tree. 
 - Look ups - may not scale. 
 - Soft state message processing. 
 - CPU bound. 
 
  42Scalability Issues - Problems (contd) 
 43Scalability Issues  Solutions.
- Spawn new instances on inactive INRs. 
 - Partition into virtual spaces (explained later). 
 - One overlay network for each virtual space. 
 - Updates limited to virtual space. 
 - Additional av pair  vspace specified by services.
 
  44Virtual Space
vspace  printer 
vspace  camera
vspace  water
Each INR has a small cache of INRs in diff. 
vspace.
On cache miss contact DSR. 
 45Virtual Space (contd) 
 46DSR Revisited
- Really DNS . 
 - Functions 
 - Entry point for new INRs. 
 - Cache of virtual space partitions. 
 - Is this really scalable? 
 - Robustness? 
 - Single point of failure.
 
  47Robustness
- Resolution via network of replicated resolvers. 
 - Weak consistency 
 - Makes replication possible without much overhead. 
 - Is this sufficient? 
 - Use of spanning tree for resource 
discovery/update has single point of failure.  - DSR vulnerability.
 
  48Name-lookup performance 
 49Name-lookup performance (contd)
- Polynomial in number of attributes in name 
specifiers.  - From graph  max number of lookups decreases 
almost linearly with number of names in tree.  - Google scans 2.5 billion pages. 
 - Will this be able to support 2.5 billion services?
 
  50CAN vs. INS
- Scalability bottlenecks. 
 - CAN  bootstrap mechanism. 
 - INS  DSR. 
 - Consistency 
 - Both have weak consistency if replication. 
 - Self-configuration. 
 - Mechanism  somekind ping discovery.
 
  51CAN vs. INS (contd)