CS 640: Introduction to Computer Networks Aditya Akella Lecture 24 - Peer-to-Peer.

Slides:



Advertisements
Similar presentations
Peer to Peer and Distributed Hash Tables
Advertisements

Course on Computer Communication and Networks Lecture 10 Chapter 2; peer-to-peer applications (and network overlays) EDA344/DIT 420, CTH/GU.
Evaluating scalability Peer-to-Peer File Sharing Networks of Sayantan Mitra Vibhor Goyal.
Clayton Sullivan PEER-TO-PEER NETWORKS. INTRODUCTION What is a Peer-To-Peer Network A Peer Application Overlay Network Network Architecture and System.
CompSci 356: Computer Network Architectures Lecture 21: Content Distribution Chapter 9.4 Xiaowei Yang
An Overview of Peer-to-Peer Networking CPSC 441 (with thanks to Sami Rollins, UCSB)
Peer-to-Peer Networks João Guerreiro Truong Cong Thanh Department of Information Technology Uppsala University.
L-19 P2P. Scaling Problem Millions of clients  server and network meltdown 2.
CMPT 401 Summer 2007 Dr. Alexandra Fedorova Lecture XV: Real P2P Systems.
P2p, Spring 05 1 Topics in Database Systems: Data Management in Peer-to-Peer Systems March 29, 2005.
Peer-to-Peer
Peer-to-Peer Jeff Pang Spring Spring 2004, Jeff Pang2 Intro Quickly grown in popularity –Dozens or hundreds of file sharing applications.
FRIENDS: File Retrieval In a dEcentralized Network Distribution System Steven Huang, Kevin Li Computer Science and Engineering University of California,
Spotlighting Decentralized P2P File Sharing Archie Kuo and Ethan Le Department of Computer Science San Jose State University.
Peer-to-Peer Credits: Slides adapted from J. Pang, B. Richardson, I. Stoica, M. Cuenca, B. Cohen, S. Ramesh, D. Qui, R. Shrikant, Xiaoyan Li and R. Martin.
Responder Anonymity and Anonymous Peer-to-Peer File Sharing. by Vincent Scarlata, Brian Levine and Clay Shields Presentation by Saravanan.
Peer-to-Peer Applications
Chord-over-Chord Overlay Sudhindra Rao Ph.D Qualifier Exam Department of ECECS.
Topics in Reliable Distributed Systems Fall Dr. Idit Keidar.
1 Seminar: Information Management in the Web Gnutella, Freenet and more: an overview of file sharing architectures Thomas Zahn.
1 Peer-to-Peer Applications Reading: 9.4 COS 461: Computer Networks Spring 2008 (MW 1:30-2:50 in COS 105) Jennifer Rexford Teaching Assistants: Sunghwan.
Peer-to-Peer Networking Credit slides from J. Pang, B. Richardson, I. Stoica.
Winter 2008 P2P1 Peer-to-Peer Networks: Unstructured and Structured What is a peer-to-peer network? Unstructured Peer-to-Peer Networks –Napster –Gnutella.
Peer-to-Peer Scaling Problem Millions of clients  server and network meltdown.
Middleware for P2P architecture Jikai Yin, Shuai Zhang, Ziwen Zhang.
Peer-to-Peer Outline p2p file sharing techniques –Downloading: Whole-file vs. chunks –Searching Centralized index (Napster, etc.) Flooding (Gnutella,
CS 640: Introduction to Computer Networks Yu-Chi Lai Lecture 18 - Peer-to-Peer.
Distributed Systems Lecture 21 – CDN & Peer-to-Peer.
Introduction to Peer-to-Peer Networks. What is a P2P network Uses the vast resource of the machines at the edge of the Internet to build a network that.
P2P File Sharing Systems
INTRODUCTION TO PEER TO PEER NETWORKS Z.M. Joseph CSE 6392 – DB Exploration Spring 2006 CSE, UT Arlington.
Freenet. Anonymity  Napster, Gnutella, Kazaa do not provide anonymity  Users know who they are downloading from  Others know who sent a query  Freenet.
1 Napster & Gnutella An Overview. 2 About Napster Distributed application allowing users to search and exchange MP3 files. Written by Shawn Fanning in.
Introduction Widespread unstructured P2P network

Peer-to-Peer Networking. Presentation Introduction Characteristics and Challenges of Peer-to-Peer Peer-to-Peer Applications Classification of Peer-to-Peer.
P2P Web Standard IS3734/19/10 Michael Radzin. What is P2P? Peer to Peer Networking (P2P) is a “direct communications initiations session.” Modern uses.
Peer to Peer Research survey TingYang Chang. Intro. Of P2P Computers of the system was known as peers which sharing data files with each other. Build.
Peer-to-Peer Networks University of Jordan. Server/Client Model What?
Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications Xiaozhou Li COS 461: Computer Networks (precept 04/06/12) Princeton University.
Peer-to-Pee Computing HP Technical Report Chin-Yi Tsai.
1 V1-Filename.ppt / / Jukka K. Nurminen Content Search UnstructuredP2P Content Search Unstructured P2P Jukka K. Nurminen *Partly adapted from.
Peer-to-Peer File Sharing Jennifer Rexford COS 461: Computer Networks Lectures: MW 10-10:50am in Architecture N101
Peer-to-Peer Network Tzu-Wei Kuo. Outline What is Peer-to-Peer(P2P)? P2P Architecture Applications Advantages and Weaknesses Security Controversy.
SIGCOMM 2001 Lecture slides by Dr. Yingwu Zhu Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications.
1 Peer-to-Peer Technologies Seminar by: Kunal Goswami (05IT6006) School of Information Technology Guided by: Prof. C.R.Mandal, School of Information Technology.
PEER TO PEER (P2P) NETWORK By: Linda Rockson 11/28/06.
Computer Networking P2P. Why P2P? Scaling: system scales with number of clients, by definition Eliminate centralization: Eliminate single point.
EE324 DISTRIBUTED SYSTEMS L17 P2P. Scaling Problem 2  Millions of clients  server and network meltdown.
Hui Zhang, Fall Computer Networking CDN and P2P.
6° of Darkness or Using Webs of Trust to Solve the Problem of Global Indexes.
Peer-to-Peer File Sharing
ADVANCED COMPUTER NETWORKS Peer-Peer (P2P) Networks 1.
Algorithms and Techniques in Structured Scalable Peer-to-Peer Networks
CS Spring 2014 CS 414 – Multimedia Systems Design Lecture 37 – Introduction to P2P (Part 1) Klara Nahrstedt.
Two Peer-to-Peer Networking Approaches Ken Calvert Net Seminar, 23 October 2001 Note: Many slides “borrowed” from S. Ratnasamy’s Qualifying Exam talk.
1 Overlay Networks. 2 Routing overlays –Experimental versions of IP (e.g., 6Bone) –Multicast (e.g., MBone and end-system multicast) –Robust routing (e.g.,
INTERNET TECHNOLOGIES Week 10 Peer to Peer Paradigm 1.
P2P Search COP6731 Advanced Database Systems. P2P Computing  Powerful personal computer Share computing resources P2P Computing  Advantages: Shared.
P2P Search COP P2P Search Techniques Centralized P2P systems  e.g. Napster, Decentralized & unstructured P2P systems  e.g. Gnutella.
Distributed Computing Systems Peer-to-Peer. Definition of Peer-to-Peer (P2P) Significant autonomy from central servers Exploits resources at edges of.
Marina Papatriantafilou – Overlays and peer-to-peer applications Based on the book Computer Networking: A Top Down Approach, Jim Kurose, Keith Ross, Addison-Wesley.
CS Spring 2010 CS 414 – Multimedia Systems Design Lecture 24 – Introduction to Peer-to-Peer (P2P) Systems Klara Nahrstedt (presented by Long Vu)
(some slides from D. Anderson, K. Harras and others)
Lecture XV: Real P2P Systems
BitTorrent Vs Gnutella.
Distributed Systems CDN & Peer-to-Peer.
مظفر بگ محمدی دانشگاه ایلام
CPE 401/601 Computer Network Systems
#02 Peer to Peer Networking
Presentation transcript:

CS 640: Introduction to Computer Networks Aditya Akella Lecture 24 - Peer-to-Peer

The Road Ahead p2p file sharing techniques –Downloading: Whole-file vs. chunks –Searching Centralized index (Napster, etc.) Flooding (Gnutella, etc.) Smarter flooding (KaZaA, …) Routing (Freenet, etc.) Uses of p2p - what works well, what doesn’t? –servers vs. arbitrary nodes –Hard state (backups!) vs soft-state (caches) Challenges –Fairness, freeloading, security, …

P2p file-sharing Quickly grown in popularity –Dozens or hundreds of file sharing applications –35 million American adults use P2P networks -- 29% of all Internet users in US! –Audio/Video transfer now dominates traffic on the Internet

What’s out there? CentralFloodSuper-node flood Route Whole File NapsterGnutellaFreenet Chunk Based BitTorrentKaZaA (bytes, not chunks) DHTs eDonkey 2000

Publishing/Searching Internet N1N1 N2N2 N3N3 N6N6 N5N5 N4N4 Publisher Key=“title” Value=MP3 data… Client Lookup(“title”) ?

Searching Needles vs. Haystacks –Searching for top 40, or an obscure punk track from 1981 that nobody’s heard of? Search expressiveness –Whole word? Regular expressions? File names? Attributes? Whole-text search? (e.g., p2p gnutella or p2p google?)

Framework Common Primitives: –Join: how to I begin participating? –Publish: how do I advertise my file? –Search: how to I find a file? –Fetch: how to I retrieve a file?

Napster: Overview History –1999: Sean Fanning launches Napster –Peaked at 1.5 million simultaneous users –Jul 2001: Napster shuts down Centralized Database: –Join: on startup, client contacts central server –Publish: reports list of files to central server –Search: query the server => return someone that stores the requested file –Fetch: get the file directly from peer

Napster: Publish I have X, Y, and Z! Publish insert(X, )

Napster: Search Where is file A? Query Reply search(A) --> Fetch

Napster: Discussion Pros: –Simple –Search scope is O(1) –Controllable (pro or con?) Cons: –Server maintains lot of state –Server does all processing –Single point of failure

Gnutella: Overview History: –In 2000, J. Frankel and T. Pepper from Nullsoft released Gnutella –Soon many other clients: Bearshare, Morpheus, LimeWire… –In 2001, many protocol enhancements including “ultrapeers” Query Flooding: –Join: on startup, client contacts a few other nodes; these become its “neighbors” Ping-Pong protocol –Publish: no need –Search: ask neighbors, who ask their neighbors, and so on... when/if found, reply to sender. TTL limits propagation –Fetch: get the file directly from peer

I have file A. Gnutella: Search Where is file A? Query Reply

Gnutella: Discussion Pros: –Fully de-centralized –Search cost distributed each node permits powerful search semantics Cons: –Search scope is O(N) –Search time is O(???) –Nodes leave often, network unstable TTL-limited search works well for haystacks. –For scalability, does NOT search every node. May have to re-issue query later

KaZaA: Overview Gnutella X Napster –No didicated server –But.. not all peers are equal! “Smart” Query Flooding: –Join: on startup, client contacts a “supernode”... may at some point become one itself –Publish: send list of files to supernode –Search: send query to supernode, supernodes flood query amongst themselves. –Fetch: get the file directly from peer(s); can fetch simultaneously from multiple peers

KaZaA: Network Design “Super Nodes”

KaZaA: File Insert I have X! Publish insert(X, )

KaZaA: File Search Where is file A? Query search(A) --> search(A) --> Replies

KaZaA: Fetching More than one node may have requested file... How to tell? –Must be able to identify similar files with not necessarily same filename –Same filename not necessarily same file... Use Hash of file –KaZaA uses UUHash: fast, but not secure –Alternatives: MD5, SHA-1 How to fetch? –Get bytes [ ] from A, [ ] from B –Alternative: Erasure Codes

Stability and Superpeers Why superpeers? –Query consolidation Many connected nodes may have only a few files Propagating a query to a sub-node would take more b/w than answering it yourself –Caching effect Requires network stability Superpeer selection is time-based –How long you’ve been on is a good predictor of how long you’ll be around.

KaZaA: Discussion Pros: –Tries to take into account node heterogeneity: Bandwidth Host Computational Resources Host Availability (?) –Rumored to take into account network locality Why is this important? Cons: –Mechanisms easy to circumvent Can freeload easily –Still no real guarantees on search scope or search time Similar behavior to Gnutella, but better.

BitTorrent: History Key Motivation: –Popularity exhibits temporal locality (Flash Crowds) –E.g., Slashdot effect, CNN on 9/11, new movie/game release Focused on Efficient Fetching, not Searching: –Distribute the same file to all peers –Single publisher, multiple downloaders Has some “real” publishers

BitTorrent: Overview Swarming: –Publish: Run a tracker server. –Search: Out-of-band. E.g., use Google to find a tracker for the file you want. –Join: contact centralized “tracker” server, get a list of peers. –Fetch: Download chunks of the file from your peers. Upload chunks you have to them. Big differences from Napster: –Chunk based downloading –“few large files” focus –Anti-freeloading mechanisms

BitTorrent: Publish/Join Tracker

BitTorrent: Fetch

BitTorrent: Sharing Strategy Employ “Tit-for-tat” sharing strategy –A is downloading from some other people A will let the fastest N of those download from him –Be optimistic: occasionally let freeloaders download Otherwise no one would ever start! Also allows you to discover better peers to download from when they reciprocate

BitTorrent: Discussion Pros: –Works reasonably well in practice –Gives peers incentive to share resources; avoids freeloaders Cons: –Pareto Efficiency relatively weak condition –Central tracker server needed to bootstrap swarm –(Tracker is a design choice, not a requirement, as you know from your projects. Could easily combine with other approaches.)

P2P: Summary Many different styles; remember pros and cons of each –centralized, flooding, swarming, unstructured and structured routing Lessons learned: –Single points of failure are very bad –Flooding messages to everyone is bad –Underlying network topology is important –Not all nodes are equal –Need incentives to discourage freeloading –Privacy and security are important –Structure can provide theoretical bounds and guarantees