Application Layer Overlays
description
Transcript of Application Layer Overlays
Application Layer Overlays
IS250Spring 2010
John Chuang
John Chuang 2
The Internet infrastructure, based on TCP/IP, provides:- Global reachability- Reliable end-to-end transport
Highly successful in supporting one-to-one (unicast) communication
But there are some limitations:- Difficult to deploy new network services (e.g., IP multicast, IP anycast, QoS, IPv6)
- Lack of support for one-to-many (multicast) or even many-to-many (“peer-to-peer”) communication
- End hosts have no control over what goes on in the network (e.g., no source routing or user-directed routing)
Application Layer Overlay
John Chuang 3
Application Layer Overlay
One strategy: build an overlay network at the application layer
End hosts gain control over topology formation, routing, to meet specific application needs
New applications and services can be deployed without changes to the TCP/IP infrastructure
John Chuang 4
Overlay Networks Logical topology Self-organized
Dynamic Application specific
Application layer overlay
Network layer
John Chuang 5
Early Examples Domain Name Service (DNS) 6bone: IPv6 over IPv4 Mbone: multicast over unicast IP X-Bone
http://www.mbone.cl.cam.ac.uk/mbone/mbone-small.gifhttp://graphics.stanford.edu/papers/mbone/morepix/world-6bone.jpeg
John Chuang 6
Some Overlay Networks
Web Caching and Content Distribution Networks (CDNs)
Application Layer Multicast (ALM) User Directed Routing
- Anonymous Routing- Resilient overlay network
Peer-to-Peer (P2P)- Unstructured P2P: gnutella, FreeNet, kazaa,…- Structured P2P: Distributed Hash Tables (DHTs)
John Chuang 7
Web Caching Improves download latency, content availability by storing local copy of popular web objects
Web caches are L7 boxes
web serverclient
proxycache
networkcaches
reverse proxycache
John Chuang 8
Content Delivery Networks Clients are intelligently redirected to nearest CDN server to download
publisher content IP anycast (if it exists) could accomplish this easily… In the absence of IP anycast, companies like Akamai constructs CDNs as
application layer overlay networks
web serverclient
CDN servers
John Chuang 9
publisher DNS
publisher
client
Nearestreplica
Method 1: DNS Redirect
Local DNS
Step 1: client queries DNS for IP address of www.publisher.com; based on client’s IP address, reconfigured publisher DNSreturns IP address of replica closest to client
John Chuang 10
publisher DNS
publisher
client
Nearestreplica
Method 1: DNS Redirect
Local DNS
Step 2: client contacts replica for object
John Chuang 11
Local DNS
publisher
client
CDN server
Method 2: URL Redirect
CDN DNS
Step 1: client queries DNS for IP address of www.publisher.com
John Chuang 12
Local DNS
publisher
client
CDN server
Method 2: URL Redirect
CDN DNS
Step 2: client contacts publisher;publisher returns HTML with embedded objects’ URLs pointing to best CDN server
John Chuang 13
Local DNS
publisher
client
CDN server
Method 2: URL Redirect
CDN DNS
Step 3: client queries DNS for IP address of CDN server
John Chuang 14
Local DNS
publisher
client
CDN server
Method 2: URL Redirect
CDN DNS
Step 4: client contacts CDN server;CDN server returns embedded objs
John Chuang 15
Some Overlay Networks
Web Caching and Content Distribution Networks (CDNs)
Application Layer Multicast (ALM) User Directed Routing
- Anonymous Routing- Resilient overlay network
Peer-to-Peer (P2P)- Unstructured P2P: gnutella, FreeNet, kazaa,…- Structured P2P: Distributed Hash Tables (DHTs)
John Chuang 16
IP Multicast Network routers must implement IP Multicast to construct delivery tree and forward packets to multicast group receivers
serverclient
routers
John Chuang 17
Application Layer Multicast End hosts self-organize to construct multicast delivery tree;
messages sent using IP unicast Sacrifice some efficiency (latency stretch) for deployability Various systems: ESM, Overcast, Promise, Scattercast, SplitStream,
Yoid, …
serverclient
routers
John Chuang 18
Some Overlay Networks
Web Caching and Content Distribution Networks (CDNs)
Application Layer Multicast (ALM) User Directed Routing
- Anonymous Routing- Resilient overlay network
Peer-to-Peer (P2P)- Unstructured P2P: gnutella, FreeNet, kazaa,…- Structured P2P: Distributed Hash Tables (DHTs)
John Chuang 19
IP Source Route IP source route allows end hosts to exercise some
degree of route control However, many ISPs turned off IP source routing
option for security reasons
serverclient
routers
default route
IP sourc
e
route
John Chuang 20
User Directed Routing Some applications would benefit from having some
degree of control over route selection- Resiliency: e.g., resilient overlay network (RON), Detour- Anonymity: onion routing, MIX-nets, …
serverclient
routers
John Chuang 21
Onion Routing
Application layer overlay for anonymous routing- Existence of communication between Alice and Bob not revealed to any 3rd party
Alice constructs onion where message is successively encrypted with keys of intermediate routing nodes
Each intermediate node ‘peels’ one layer of onion and forward to next node
Example system: Tor
http://tor.eff.org/overview.html.en
John Chuang 22
Some Overlay Networks
Web Caching and Content Distribution Networks (CDNs)
Application Layer Multicast (ALM) User Directed Routing
- Anonymous Routing- Resilient overlay network
Peer-to-Peer (P2P)- Unstructured P2P: gnutella, FreeNet, kazaa,…- Structured P2P: Distributed Hash Tables (DHTs)
John Chuang 23
P2P Self-organized overlay network to support distributed storage, search and retrieval of content- The killer-app: free music and movies
Individual peers contribute resources- Content- Network management (e.g., forwarding query messages)
Desirable properties: - Scalability- Performance (latency, recall)- Robustness- Anonymity, censorship-resistance
Design challenges: - Dynamic membership- Various forms of attacks- Free-riding behavior
John Chuang 24
P2P File-Sharing Networks
1st generation: centralized index- e.g., Napster
2nd generation: decentralized indices- e.g., Gnutella v0.4, Freenet
3rd generation: hierarchical- e.g., FastTrack (KaZaA, Grokster, Morpheus), eDonkey2000, Gnutella v0.6
4th generation:- Structured topologies using DHTs, e.g., eMule, Overnet, BitTorrent
- Parallel downloads, e.g., BitTorrent, Avalanche
- Darknets, e.g., WASTE for small-scale “F2F” networks
John Chuang 25
Napster Maintains a centralized index that maps files to machines
How to find a file- Query the index system return a list of peers that store the requested file
- Transfer the file directly from peer(s)
Advantage: - Simplicity: easy to implement sophisticated search engines on top of the index system
Disadvantage:- Single point of failure
AB
C
D
E
F
m1m2
m3
m4
m5
m6
m1 Am2 Bm3 Cm4 Dm5 Em6 F
E?
m5
E?E
Slide adapted from Ion Stoica, Nicolas Christin
John Chuang 26
Gnutella (v0.4) Flood the request How to find a file:
- Send request to all neighbors- Neighbors recursively propagate the request
- Eventually a machine that has
the file receives the request, and it sends back the answer
Advantages:- Totally decentralized, highly robust
Disadvantages:- The entire network can be swamped with a request
- Can be alleviated using TTLs, but can then fail to locate files (and still high resource usage)
AB
C
D
E
F
m1m2
m3
m4
m5
m6
E?
E?
E?E?
E
Assume: m1’s neighbors are m2 and m3; m3’s neighbors are m4 and m5;…
Slide adapted from Ion Stoica, Nicolas Christin
John Chuang 27
Hierarchical Networks
Use two-level hierarchy- Some nodes are elected as
“super nodes” or “ultra-peers”
- Each ultra-peer serves as centralized index for a portion of the network
- If an ultra-peer does not know where to find an item, query is forwarded to other ultra-peers
Advantage:- Reduce the amount of
network traffic compared to “naïve” flooding
Disadvantage:- Ultra-peers vulnerable to
attacks- Potential convergence
problems when ultra-peers leave abruptly
Used in FastTrack (KaZaA, Grokster, Morpheus), eDonkey2000, Gnutella v0.6
A B
C
D
EF
m1 m2
m3
m4
F?
F?
F?F
Assume red nodes are ultra-peers
Slide adapted from Ion Stoica, Nicolas Christin
John Chuang 28
Structured Topologies
Gnutella and KaZaA topologies are unstructured- Neighbor selection largely random- No guarantee that a file can be located, even if it exists in the network
Distributed hash tables (DHTs) offer to solve this problem by constructing highly structured topologies
John Chuang 29
Distributed Hash Table (DHT)
Applications: distributed search (e.g., p2p, CDNs, cooperative caching), application layer overlays for multicast, anycast, etc.
Similar to traditional hash table data structure, except data is stored in distributed peer nodes- Each node is analogous to a bucket in a hash table - Put(), Get() interface like a regular hash table:
- put(id, item);- item = get(id);
Designed to scale to large numbers of nodes and to handle continual node arrivals, departures, or failures.
Various DHT designs: - CAN, Chord, Kademlia, Pastry, Tapestry, Viceroy, etc.
John Chuang 30
DHT Example: Chord
Associate each node and item to a unique identifier in a one-dimensional space (0..2m)
Each node x maintains a finger table- Fingers are neighbors- i-th entry in finger table is the first node that succeeds or equals x + 2i
An item identified by id is stored on the successor node of id
Properties - Routing table size O(log(N)) , where N is the total number of nodes
- Guarantees that a file (if it exists) is found in O(log(N)) steps
Slide adapted from Ion Stoica, Nicolas Christin
John Chuang 31
Chord Example Assume m = 3, i.e., an identifier space 0..7
Node n1:(1) joins
01
2
34
5
6
7
i id+2i succ0 2 11 3 12 5 1
Finger Table
Slide adapted from Ion Stoica, Nicolas Christin
John Chuang 32
Chord Example
01
2
34
5
6
7
i id+2i succ0 2 21 3 12 5 1
Finger Table
i id+2i succ0 3 11 4 12 6 1
Finger Table
Assume m = 3, i.e., an identifier space 0..7
Node n1:(1) joins Node n2:(2) joins
Slide adapted from Ion Stoica, Nicolas Christin
John Chuang 33
Chord Example
01
2
34
5
6
7
i id+2i succ0 2 21 3 62 5 6
Finger Table
i id+2i succ0 3 61 4 62 6 6
Finger Table
i id+2i succ0 1 11 2 22 4 6
Finger Table
i id+2i succ0 7 01 0 02 2 2
Finger Table
Assume m = 3, i.e., an identifier space 0..7
Node n1:(1) joins Node n2:(2) joins Nodes n3:(0), n4:(6) join
Slide adapted from Ion Stoica, Nicolas Christin
John Chuang 34
Insertion
Items inserted: f1:(7), f2:(1)
01
2
34
5
6
7 i id+2i succ0 2 21 3 62 5 6
Finger Table
i id+2i succ0 3 61 4 62 6 6
Finger Table
i id+2i succ0 1 11 2 22 4 6
Finger Table
7
Items 1
Items
i id+2i succ0 7 01 0 02 2 2
Finger Table
Slide adapted from Ion Stoica, Nicolas Christin
John Chuang 35
Query Upon receiving a query for item id, a node
- Checks if item is cached locally- If not, forwards the query to the largest node in its successor table that does not exceed id
01
2
34
5
6
7 i id+2i succ0 2 21 3 62 5 6
Finger Table
i id+2i succ0 3 61 4 62 6 6
Finger Table
i id+2i succ0 1 11 2 22 4 6
Finger Table
7
Items 1
Items
i id+2i succ0 7 01 0 02 2 2
Finger Table
query(7)
Slide adapted from Ion Stoica, Nicolas Christin
John Chuang 36
Summary
Difficult to deploy new network services at network layer
Response: build overlay network at the application layer- End hosts gain control over topology formation, routing,
to meet specific application needs- New applications and services can be deployed without
changes to the TCP/IP infrastructure Many flavors of application layer overlay networks:
- Web Caching and Content Distribution Networks (CDNs)- Application Layer Multicast (ALM)- Anonymous Routing (Tor)- Resilient overlay network (RON)- P2P file-sharing networks- Distributed Hash Tables (DHTs)- …