Flooded Queries (Gnutella) Centralized Lookup (Napster) Routed Queries (Freenet, Chord, etc.) Overview N 2 N 1 N 3 N 4 N 8 N 9 N N 7 N 6 N 9

Similar documents
EE 122: Peer-to-Peer (P2P) Networks. Ion Stoica November 27, 2002

15-744: Computer Networking P2P/DHT

EE 122: Peer-to-Peer Networks

Page 1. How Did it Start?" Model" Main Challenge" CS162 Operating Systems and Systems Programming Lecture 24. Peer-to-Peer Networks"

Goals. EECS 122: Introduction to Computer Networks Overlay Networks and P2P Networks. Solution. Overlay Networks: Motivations.

EECS 122: Introduction to Computer Networks Overlay Networks and P2P Networks. Overlay Networks: Motivations

Overlay Networks: Motivations. EECS 122: Introduction to Computer Networks Overlay Networks and P2P Networks. Motivations (cont d) Goals.

Main Challenge. Other Challenges. How Did it Start? Napster. Model. EE 122: Peer-to-Peer Networks. Find where a particular file is stored

Lecture 21 P2P. Napster. Centralized Index. Napster. Gnutella. Peer-to-Peer Model March 16, Overview:

Scalable overlay Networks

416 Distributed Systems. Mar 3, Peer-to-Peer Part 2

Telematics Chapter 9: Peer-to-Peer Networks

CS 640 Introduction to Computer Networks. Today s lecture. What is P2P? Lecture30. Peer to peer applications

Page 1. P2P Traffic" P2P Traffic" Today, around 18-20% (North America)! Big chunk now is video entertainment (e.g., Netflix, itunes)!

Advanced Computer Networks

Overview Computer Networking Lecture 16: Delivering Content: Peer to Peer and CDNs Peter Steenkiste

Content Overlays. Nick Feamster CS 7260 March 12, 2007

CIS 700/005 Networking Meets Databases

Peer-to-Peer Protocols and Systems. TA: David Murray Spring /19/2006

Peer-to-Peer (P2P) Systems

CSE 124 Finding objects in distributed systems: Distributed hash tables and consistent hashing. March 8, 2016 Prof. George Porter

Distributed Hash Tables: Chord

Peer-to-Peer Systems. Chapter General Characteristics

Department of Computer Science Institute for System Architecture, Chair for Computer Networks. File Sharing

Architectures for Distributed Systems

Introduction to P2P Computing

A Survey of Peer-to-Peer Content Distribution Technologies

Lecture 6: Overlay Networks. CS 598: Advanced Internetworking Matthew Caesar February 15, 2011

Scaling Problem Millions of clients! server and network meltdown. Peer-to-Peer. P2P System Why p2p?

Peer-to-Peer Internet Applications: A Review

Overlay and P2P Networks. Unstructured networks. Prof. Sasu Tarkoma

Scaling Problem Millions of clients! server and network meltdown. Peer-to-Peer. P2P System Why p2p?

Overlay and P2P Networks. Unstructured networks. PhD. Samu Varjonen

Distributed Systems. 17. Distributed Lookup. Paul Krzyzanowski. Rutgers University. Fall 2016

CompSci 356: Computer Network Architectures Lecture 21: Overlay Networks Chap 9.4. Xiaowei Yang

PEER-TO-PEER NETWORKS, DHTS, AND CHORD

CPSC 426/526. P2P Lookup Service. Ennan Zhai. Computer Science Department Yale University

Peer to Peer I II 1 CS 138. Copyright 2015 Thomas W. Doeppner, Rodrigo Fonseca. All rights reserved.

Overlay and P2P Networks. Unstructured networks. Prof. Sasu Tarkoma

Outline. Peer-to-Peer. P2p file-sharing. Wither p2p? What s out there? The p2p challenge C1: Search(human s goals) -> file

Scaling Problem Computer Networking. Lecture 23: Peer-Peer Systems. Fall P2P System. Why p2p?

Early Measurements of a Cluster-based Architecture for P2P Systems

Badri Nath Rutgers University

Peer-to-Peer Systems and Distributed Hash Tables

*Adapted from slides provided by Stefan Götz and Klaus Wehrle (University of Tübingen)

Peer-peer and Application-level Networking. CS 218 Fall 2003

March 10, Distributed Hash-based Lookup. for Peer-to-Peer Systems. Sandeep Shelke Shrirang Shirodkar MTech I CSE

Searching for Shared Resources: DHT in General

Overview. Background: Sybil Attack. Background: Defending Against Sybil Attack. Social Networks. Multiplayer Games. Class Feedback Discussion

Advanced Distributed Systems. Peer to peer systems. Reference. Reference. What is P2P? Unstructured P2P Systems Structured P2P Systems

INF5070 media storage and distribution systems. to-peer Systems 10/

Kademlia: A peer-to peer information system based on XOR. based on XOR Metric,by P. Maymounkov and D. Mazieres

Searching for Shared Resources: DHT in General

Today. Why might P2P be a win? What is a Peer-to-Peer (P2P) system? Peer-to-Peer Systems and Distributed Hash Tables

Peer-to-Peer Systems. Winter semester 2014 Jun.-Prof. Dr.-Ing. Kalman Graffi Heinrich Heine University Düsseldorf

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University

Distributed Systems. 16. Distributed Lookup. Paul Krzyzanowski. Rutgers University. Fall 2017

Peer-to-Peer Networks

L3S Research Center, University of Hannover

Distributed lookup services

Special Topics: CSci 8980 Edge History

Hierarchical peer-to-peer look-up service. Prototype implementation

Internet Services & Protocols

Information Retrieval in Peer to Peer Systems. Sharif University of Technology. Fall Dr Hassan Abolhassani. Author: Seyyed Mohsen Jamali

Small-World Overlay P2P Networks: Construction and Handling Dynamic Flash Crowd

CPSC 426/526. P2P Lookup Service. Ennan Zhai. Computer Science Department Yale University

DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES

Peer- to- Peer and Social Networks. An overview of Gnutella

Simulations of Chord and Freenet Peer-to-Peer Networking Protocols Mid-Term Report

Peer-to-Peer Applications Reading: 9.4

Peer to Peer Systems and Probabilistic Protocols

Chord : A Scalable Peer-to-Peer Lookup Protocol for Internet Applications

CSCI-1680 P2P Rodrigo Fonseca

0!1. Overlaying mechanism is called tunneling. Overlay Network Nodes. ATM links can be the physical layer for IP

Making Gnutella-like P2P Systems Scalable

DISTRIBUTED SYSTEMS CSCI 4963/ /4/2015

Lecture 2: January 24

CS 3516: Advanced Computer Networks

A Framework for Peer-To-Peer Lookup Services based on k-ary search

Distributed File Systems: An Overview of Peer-to-Peer Architectures. Distributed File Systems

Peer-to-Peer Architectures and Signaling. Agenda

CS 268: DHTs. Page 1. How Did it Start? Model. Main Challenge. Napster. Other Challenges

Ossification of the Internet

Scalability In Peer-to-Peer Systems. Presented by Stavros Nikolaou

INF5071 Performance in distributed systems: Distribution Part III

Distributed Hash Tables

Peer-To-Peer Techniques

Overlay networks. To do. Overlay networks. P2P evolution DHTs in general, Chord and Kademlia. Turtles all the way down. q q q

Distributed Systems Final Exam

Design and Implementation of a Distributed Object Storage System on Peer Nodes. Roger Kilchenmann. Diplomarbeit Von. aus Zürich

CS 347 Parallel and Distributed Data Processing

Handling Churn in a DHT

Peer-to-peer computing research a fad?

Lecture-2 Content Sharing in P2P Networks Different P2P Protocols

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

Today s Objec2ves. Kerberos. Kerberos Peer To Peer Overlay Networks Final Projects

An Expresway over Chord in Peer-to-Peer Systems

Peer-to-peer systems and overlay networks

Introduction to Peer-to-Peer Systems

Web caches (proxy server) Applications (part 3) Applications (part 3) Caching example (1) More about Web caching

Transcription:

Peer-to-Peer Networks -: Computer Networking L-: PP Typically each member stores/provides access to content Has quickly grown in popularity Bulk of traffic from/to CMU is Kazaa! Basically a replication system for files Always a tradeoff between possible location of files and searching difficulty Peer-to-peer allow files to be anywhere searching is the challenge Dynamic member list makes it more difficult What other systems have similar goals? Routing, DNS Lecture : --00 Overview The Lookup Problem PP Lookup Overview N N N Centralized/Flooded Lookups Routing-based Lookups Key= title Value=MP data Publisher Internet? Client Lookup( title ) CMU Research in PP N N N Lecture : --00 Lecture : --00

Centralized Lookup (Napster) Flooded Queries (Gnutella) SetLoc( title, N) Publisher@ N Key= title Value=MP data N DB N N 9 N N N N 8 Client Lookup( title ) N Publisher@N Key= title Value=MP data N N N 9 N N N 8 Lookup( title ) Client Simple, but O(N) state and a single point of failure Robust, but worst case O(N) messages per lookup Lecture : --00 Lecture : --00 Routed Queries (Freenet, Chord, etc.) Overview Publisher Key= title Value=MP data N N N N N 9 N N N 8 Client Lookup( title ) PP Lookup Overview Centralized/Flooded Lookups Routing-based Lookups CMU Research in PP Lecture : --00 Lecture : --00 8

Centralized: Napster Simple centralized scheme motivated by ability to sell/control How to find a file: On startup, client contacts central server and reports list of files Query the index system return a machine that stores the required file Ideally this is the closest/least-loaded machine Fetch the file directly from peer Centralized: Napster Advantages: Simple Easy to implement sophisticated search engines on top of the index system Disadvantages: Robustness, scalability Easy to sue! Lecture : --00 9 Lecture : --00 0 Flooding: Gnutella Flooding: Gnutella On startup, client contacts any servent (server + client) in network Servent interconnection used to forward control (queries, hits, etc) Idea: broadcast the request How to find a file: Send request to all neighbors Neighbors recursively forward the request Eventually a machine that has the file receives the request, and it sends back the answer Transfers are done with HTTP between peers Advantages: Totally decentralized, highly robust Disadvantages: Not scalable; the entire network can be swamped with request (to alleviate this problem, each request has a TTL) Especially hard on slow clients At some point broadcast traffic on Gnutella exceeded kbps what happened? Modem users were effectively cut off! Lecture : --00 Lecture : --00

Flooding: Gnutella Details Basic message header Unique ID, TTL, Hops Message types Ping probes network for other servents Pong response to ping, contains IP addr, # of files, # of Kbytes shared Query search criteria + speed requirement of servent QueryHit successful response to Query, contains addr + port to transfer from, speed of servent, number of hits, hit results, servent ID Push request to servent ID to initiate connection, used to traverse firewalls Ping, Queries are flooded QueryHit, Pong, Push reverse path of previous message Flooding: Gnutella Example Assume: m s neighbors are m and m; m s neighbors are m and m; m m E F E D E? E? m E? E? C A B m m m Lecture : --00 Lecture : --00 Flooding: FastTrack (aka Kazaa) Overview Modifies the Gnutella protocol into two-level hierarchy Supernodes Nodes that have better connection to Internet Act as temporary indexing servers for other nodes Help improve the stability of the network Standard nodes Connect to supernodes and report list of files Allows slower nodes to participate Search Broadcast (Gnutella-style) search across supernodes Disadvantages Kept a centralized registration allowed for law suits PP Lookup Overview Centralized/Flooded Lookups Routing-based Lookups CMU Research in PP Lecture : --00 Lecture : --00

Routing: Freenet Addition goals to file location: Provide publisher anonymity, security Files are stored according to associated key Core idea: try to cluster information about similar keys Messages Random bit ID used for loop detection Each node maintains the list of query IDs that have traversed it help to avoid looping messages TTL TTL is decremented each time the query message is forwarded Routing: Freenet Routing Tables id file identifier next_hop another node that stores the file id file file identified by id being stored on the local node Forwarding of query for file id If file id stored locally, then stop Forward data back to upstream requestor Requestor adds file to cache, adds entry in routing table If not, search for the closest id in the stack, and forward the message to the corresponding next_hop If data is not found, failure is reported back Requestor then tries next closest match in routing table id next_hop file Lecture : --00 Lecture : --00 8 Routing: Freenet Example Routing: Structured Approaches n query(0) n f n f n n n 9 n f9 n f n f n n f n f n Note: doesn t show file caching on the reverse path n n n f 0 n f0 8 n Goal: make sure that an item (file) identified is always found in a reasonable # of steps Abstraction: a distributed hash-table (DHT) data structure insert(id, item); item = query(id); Note: item can be anything: a data object, document, file, pointer to a file Proposals CAN (ICIR/Berkeley) Chord (MIT/Berkeley) Pastry (Rice) Tapestry (Berkeley) Lecture : --00 9 Lecture : --00 0

Routing: Chord Aside: Consistent Hashing [Karger 9] Associate to each node and item a unique id in an uni-dimensional space Properties Routing table size O(log(N)), where N is the total number of nodes Guarantees that a file is found in O(log(N)) steps Node 0 N0 Key K Circular -bit ID space K0 N N90 K80 A key is stored at its successor: node with next higher ID Lecture : --00 Lecture : --00 Routing: Chord Basic Lookup Routing: Finger table - Faster Lookups N0 N0 N0 Where is key 80? ¼ ½ N90 has K80 N /8 K80 N90 N0 / / / /8 N80 Lecture : --00 Lecture : --00

Routing: Chord Summary Routing: Chord Example Assume identifier space is 0 m Each node maintains Finger table Entry i in the finger table of n is the first node that succeeds or equals n + i Predecessor node An item identified by id is stored on the successor node of id Assume an identifier space 0..8 Node n:() joins all entries in its finger table are initialized to itself 0 0 Lecture : --00 Lecture : --00 Routing: Chord Example Routing: Chord Example Node n:() joins 0 0 0 Nodes n:(0), n:() join 0 0 0 0 0 0 0 0 0 Lecture : --00 Lecture : --00 8

Routing: Chord Examples Routing: Query Nodes: n:(), n(), n(0), n() Items: f:(), f:() 0 0 0 0 0 0 0 0 Items 0 Items Upon receiving a query for item id, a node Check whether stores the item locally If not, forwards the query to the largest node in its successor table that does not exceed id 0 0 0 0 0 0 query() 0 0 Items 0 Items Lecture : --00 9 Lecture : --00 0 Performance Concerns Each hop in a routing-based PP network can be expensive No correlation between neighbors and their location A query can repeatedly jump from Europe to North America, though both the initiator and the node that store the item are in Europe! Summary The key challenge of building wide area PP systems is a scalable and robust location service Solutions covered in this lecture Naptser: centralized location service Gnutella: broadcast-based decentralized location service Freenet: intelligent-routing decentralized solution (but correctness not guaranteed; queries for existing items may fail) CAN, Chord, Tapestry, Pastry: intelligent-routing decentralized solution Guarantee correctness Tapestry (Pastry?) provide efficient routing, but more complex Lecture : --00 Lecture : --00 8

Overview PP Lookup Overview Centralized/Flooded Lookups What Do Games Look Like? Large shared world Composed of map information, textures, etc Populated by active entities: user avatars, computer AI s, etc Only parts of world relevant to particular user/player Game World Routing-based Lookups CMU Research in PP Player Player Lecture : --00 Lecture : --00 Individual Player s View Current Game Architectures Interactive environment (e.g. door, rooms) Live ammo Monsters Players Game state Centralized client-server (e.g., Quake) Every update sent to server who maintains true state Advantages/disadvantages + Reduces client bandwidth requirements + State management, cheat proofing much easier - Server bottleneck for computation and bandwidth current games limited to about 000 players - Single point of failure - Response time limited by client-server latency Doesn t scale well Lecture : --00 Lecture : --00 9

Goal: A PP Multiplayer Game What is Publish-Subscribe? Allow 000 s of people to interact in a single virtual world Key requirements Robustness: node failures Scalability: number of participants & size of virtual world Performance: interaction quality should only be limited by capabilities of nodes and connectivity between them Extensible: should be possible to add to virtual world Subscription Publications Publishers produce events or publications Subscribers register their interests via subscriptions Network performs routing such that Publications meet subscriptions Publications delivered to appropriate subscribers Lecture : --00 Lecture : --00 8 Mercury Modeling a Game A PP publish-subscribe system Query language Type, attribute name, operator, value Example: int x = 00 Attribute-values are sortable Sufficient for modeling games Game arenas Player statistics, etc (0,0) x = 0 x = 0 y = 0 y = 0 (00,00) Player Events x 00 y 00 Arena (0,0) Interests Virtual World Lecture : --00 9 Lecture : --00 0 0