DOC PREVIEW
UW-Madison CS 640 - Lecture 30

This preview shows page 1-2-3-4-5 out of 16 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 16 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

1CS 640CS 640 Introduction to Computer NetworksLecture30CS 640Today’s lecture• Peer to peer applications– Napster– Gnutella– KaZaA– ChordCS 640What is P2P?• Significant autonomy from central servers• Exploits resources at the edges of Internet– Bandwidth–Storage– Processing• Resources at edge have intermittent connectivity• Dynamic joins and leaves2CS 640Applications• P2P file sharing– Napster, Gnutella, KaZaA, etc.• Storage and lookup– Chord, CAN, etc.• P2P communication– Instant messaging• P2P computation– seti@homeCS 640P2P file sharing software• Allows Alice to open up a directory in her file system– Anyone can retrieve a file from directory– Like a Web server• Allows Alice to copy files from other users’ open directories:– Like a Web client• Allows users to search the peers for content based on keyword matches:– Like GoogleCS 640Napster• The most (in)famous file sharing program– 5/99: Shawn Fanning (freshman, Northeasten U.) founds Napster Online music service– 12/99: First lawsuit– 3/00: 25% UW traffic Napster– 2/01: US Circuit Court of Appeals: Napster knew users violating copyright laws– 7/01: Simultaneous online:Napster 160K, Gnutella: 40K, Morpheus (KaZaA): 300K3CS 640Napster• Judge orders Napster to pull plug in July ‘01 • Other file sharing apps take over!gnutellanapsterfastrack (KaZaA)8M6M4M2M0.0bits per secCS 640How Napster worksFile list and IP address is uploaded1.napster.comcentralized directoryCS 640How Napster worksnapster.comcentralized directoryQueryandresultsUser requests search at server.2.4CS 640How Napster workspingspingsUser pings hosts that apparently have data.Looks for besttransfer rate.3.napster.comcentralized directoryCS 640How Napster worksnapster.comcentralized directoryRetrievesfileUser choosesserver4.Napster’s centralized server farm had difficult time keeping up with trafficCS 6402. Unstructured P2P File Sharing• Napster• Gnutella• KaZaA• Chord5CS 640Distributed Search/FloodingQueryCS 640Distributed Search/FloodingResponseCS 640Gnutella• Focus: decentralize search for files– Central directory server no longer the bottleneck– More difficult to “pull plug”• Each application instance serves to:– Store selected files– Route queries from and to its neighboring peers– Respond to queries if file stored locally– Serve files6CS 640Gnutella• Gnutella history:– 3/14/00: release by AOL, almost immediately withdrawn– Became open source– Many iterations to fix poor initial design (poor design turned many people off)• Issues:– How much traffic does one query generate?– How many hosts can it support at once?– What is the latency associated with querying?– Is there a bottleneck?CS 640Gnutella: limited scope querySearching by flooding:• If you don’t have the file you want, query 7 of your neighbors.• If they don’t have it, they contact 7 of their neighbors, for a maximum hop count of 10.• Reverse path forwarding for responses (not files)CS 640Gnutella overlay management• New node uses bootstrap node to get IP addresses of existing Gnutella nodes• New node establishes neighboring relations by sending join messagesjoin7CS 640Gnutella in practice• Gnutella traffic << KaZaA traffic• KaZaA:– hierarchy, queue management, parallel download,…CS 640Gnutella Discussion:• researchers like it because it’s open source– but is it truly representative?• architectural lessons learned?• good source for technical info/open questions:http://www.limewire.com/index.jsp/tech_papersCS 6402. Unstructured P2P File Sharing• Napster• Gnutella• KaZaA• Chord8CS 640KaZaA: The service• More than 3 million up peers sharing over 3,000 terabytes of content• More popular than Napster ever was• More than 50% of Internet traffic?• MP3s & entire albums, videos, games• Optional parallel downloading of files• Automatically switch to new download server when current server becomes unavailable• Provides estimated download timesCS 640KaZaA: The service (2)• User can configure max number of simultaneous uploads and max number of simultaneous downloads• Queue management at server and client– Frequent uploaders can get priority in server queue• Keyword search– User can configure “up to x” responses to keywords• Responses to keyword queries come in waves; stops when x responses are found• To user, service resembles Google, but provides links to MP3s and videos, not Web pagesCS 640KaZaA: TechnologySoftware• Proprietary, files and control data encrypted• Hints:– KaZaA Web site gives a few– Reverse engineering attempts described on Web• Everything is HTTP requests and responsesArchitecture• Hierarchical• Cross between Napster and Gnutella9CS 640KaZaA: Architecture• Each peer is either a supernode or is assigned to a supernode• Each supernodeknows about many other supernodes(almost mesh overlay)supernodesCS 640KaZaA: Architecture (2)• Nodes with more bandwidth and more available are designated as supernodes• Each supernode acts as a mini-Napster hub, tracking the content and IP addresses of its descendants• Guess: supernode has (on average) 200-500 descendants; roughly 10,000 supernodes• There is also dedicated user authentication server and supernode list serverCS 640KaZaA: Overlay maintenance• List of potential supernodes included within software download• New peer goes through list until it finds operational supernode– Connects, obtains more up-to- date list– Node then pings 5 nodes on list and connects with the one with smallest RTT• If supernode goes down, node obtains updated list and chooses new supernode10CS 640KaZaA Queries• Node first sends query to supernode– Supernode responds with matches– If x matches found, done.• Otherwise, supernode forwards query to subset of supernodes– If total of x matches found, done.• Otherwise, query further forwarded– Probably by original supernodeCS 640Parallel Downloading; Recovery• If file is found in multiple nodes, user can select parallel downloading• Most likely HTTP byte-range header used to request different portions of the file from different nodes• Automatic recovery when server peer stops sending fileCS 6403. Structured P2P: DHT Approaches• Want a storage and lookup service with better service guarantees and more efficient• A Distributed Hash Table (DHT)– Chord–CAN–Pastry– Tapestry11CS


View Full Document

UW-Madison CS 640 - Lecture 30

Documents in this Course
Security

Security

21 pages

Mobile IP

Mobile IP

16 pages

Lecture 7

Lecture 7

36 pages

Multicast

Multicast

38 pages

Load more
Download Lecture 30
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture 30 and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture 30 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?