Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Napster and Gnutella: Peer-to-Peer File Sharing Systems, Study notes of Computer Science

An overview of napster and gnutella, two popular peer-to-peer file sharing systems. It covers their history, structure, operations, and problems. Napster, released in 1999, was the first successful peer-to-peer file sharing service, but it faced legal issues due to copyright infringement. Gnutella, released in 2000, aimed to eliminate central servers and improve security, but it also had its challenges. Both systems have influenced the development of modern peer-to-peer networks.

Typology: Study notes

Pre 2010

Uploaded on 03/16/2009

koofers-user-z1k
koofers-user-z1k 🇺🇸

10 documents

1 / 6

Toggle sidebar

Related documents


Partial preview of the text

Download Napster and Gnutella: Peer-to-Peer File Sharing Systems and more Study notes Computer Science in PDF only on Docsity! 1 CS 598IG: Adv. Topics in Dist. Sys Spring 06 Indranil Gupta Lecture 2 January 19, 2006 D.S. Theory Peer to peer systems Sensor Networks Peer to peer systems Sensor Networks (This week) (Next week) D.S. Theory (Next-next week) Basics Some Questions • Why do people get together? – to share information – to share and exchange resources they have • books, class notes, experiences, music cd’s • How can computers help people – find information – find resources – exchange and share resources • Existing technologies: The Web! – Search engines – Forums: chat rooms, blogs, ebay – Online business • But, the web is heavy weight if you want specific resources: say a Beatles’ song “PennyLane” • A google search will give you their bio, lyrics, chords, articles on them, and then perhaps the mp3 • But you want only the song, nothing else! • If you can find a peer who wouldn’t mind exchanging her Beatles songs for your Miles Davis recordings, that would be great! – Napster: a solution light weight that was lighter than the Web 2 A Brief History • [6/99] Shawn Fanning (freshman Northeastern U.) releases Napster online music service • [12/99] RIAA sues Napster, asking $100K per download • [3/00] 25% UWisc traffic Napster, many universities ban it • [00] 60M users • [2/01] US Federal Appeals Court: users violating copyright laws, Napster is abetting this • [9/01] Napster decides to run paid service, pay % to songwriters and music companies • [Today] Napster protocol is open, people free to develop opennap clients and servers http://opennap.sourceforge.net Napster Structure S S S P P PP P P Client machines (“Peers”) napster.com Servers Store their own files Store a directory, i.e., filenames with peer pointers Filename Info about PennyLane.mp3 Beatles, @ 128.84.92.23:1006 ….. Napster Operations Client • Connect to a Napster server • Upload list of music files that you want to share – Server maintains list of <filename, ip_address, portnum> tuples • Search – Send server keywords to search with – (Server searches its list with the keywords) – Server returns a list of hosts - <ip_address, portnum> tuples - to client – Client pings each host in the list to find transfer rates – Client fetches file from best host • All communication uses TCP Napster Search S S S P P PP P P Peers napster.com Servers Store their own files Store peer pointers for all files 3. Response 1. Query 2. All servers search their lists (ternary tree algo.) 4. ping candidates 5. download from best host Problems • Centralized server a source of congestion • Centralized server single point of failure • No security: plaintext messages and passwds • napster.com responsible for users’ copyright violation – “Indirect infringement” Gnutella • Eliminate the servers • Client machines search and retrieve amongst themselves • Clients act as servers too, called servents • [3/00] release by AOL, immediately withdrawn, but 88K users by 3/03 • Original design underwent several modifications http://www.limewire.com 5 Ping-Pong •Peers initiate Ping’s periodically •Ping’s flooded out like Query’s, Pong’s routed along reverse path like QueryHit’s •Pong replies used to update set of neighboring peers Port ip_address Num. files shared Num. KB shared Pong (0x01) Ping (0x00) no payload Gnutella Summary • No servers • Peers/servents maintain “neighbors”, this forms an overlay graph • Peers store their own files • Queries flooded out, ttl restricted • Query Replies reverse path routed • Supports file transfer through firewalls • Periodic Ping-pong to keep neighbor lists fresh in spite of peers joining, leaving and failing – List size specified by user at peer : heterogeneity means some peers may have more neighbors – Gnutella found to follow power law distribution: P(#links = L) ~ (k is a constant) kL− Problems • Ping/Pong constitutes 50% traffic – Solution: Multiplex, cache and reduce frequency of pings/pongs • Repeated searches with same keywords – Solution: Cache Query, QueryHit messages • Modem-connected hosts do not have enough bandwidth for passing Gnutella traffic – Solution: use a central server to act as proxy for such peers – Another solution: FastTrack System (in a few slides) Problems (contd.) • Large number of freeloaders – 70% of users in 2000 were freeloaders • Flooding causes excessive traffic – Is there some way of maintaining meta- information about peers that leads to more intelligent routing?  Structured Peer-to-peer systems e.g., Chord System (next lecture) FastTrack • Hybrid between Gnutella and Napster • Takes advantage of “healthier” participants in the system • Underlying technology in Kazaa, KazaaLite, Grokster • Proprietary protocol, but some details available • Like Gnutella, but with some peers designated as supernodes A FastTrack-like System P P P P Peers S S Supernodes P 6 FastTrack (contd.) • A supernode stores a directory listing (<filename,peer pointer>), similar to Napster servers • Supernode membership changes over time • Any peer can become (and stay) a supernode, provided it has earned enough reputation – Kazaalite: participation level of a user between 0 and 1000, initially 10, then affected by length of periods of connectivity and total number of uploads – More sophisticated Reputation schemes now a major research area • A peer searches by contacting a nearby supernode Wrap-up Notes Applies to all p2p systems • How does a peer join the system – Send an http request to well known url http://www.myp2pservice.com – Message routed (after DNS lookup) to a well known server that then initializes new peers’ neighbor table • Lookups can be speeded up by having each peer cache: – Queries and their results that it sees – All directory entries (filename,host) mappings that it sees – The files from the above Summary • Napster: protocol overview, more details available on webpage • Gnutella protocol • FastTrack protocol • Protocols continually evolving, software for new clients and servers conforming to respective protocols: developer forums at – Napster: http://opennap.sourceforge.net – Gnutella: http://www.limewire.com • Others – Peer to peer working groups: http://www.p2pwg.com DHT=Distributed Hash Table • A hash table allows you to insert, lookup and delete objects with keys • A distributed hash table allows you to do the same in a distributed setting (objects=files) • Napster, Gnutella, FastTrack are all DHTs (sort of) • So is Chord, a structured peer to peer system that we study next As you leave Today’s Lecture… What new design techniques have you learnt during this lecture? Think about at least 3 new techniques you have learnt in this class. For this Weekend • 1/24: Read “Chord” paper from website • 1/26: Browse “Sensor Networks” links from website • Look for prospective presentation sessions – sign up early and you’ll get your top preferences • No reviews required yet
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved