DOC PREVIEW
USF CS 682 - Distributed Software Development

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

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 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 19 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 19 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 19 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 19 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 19 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

{small lecturenumber - heblocknumber :} Peer-to-Peeraddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Examplesaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Examplesaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Historical examplesaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Why did client/server become so popular?addtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Potential advantages of peer-to-peeraddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Challenges of peer-to-peeraddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} First-generation applicationsaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Weaknesses of the first-generation modeladdtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Second-generation modelsaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Example: Gnutellaaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Example: Gnutellaaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Hierarchical p2paddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Issues with file distributionaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Example: BitTorrentaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Example: BitTorrentaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Example: BitTorrentaddtocounter {blocknumber}{1}{small lecturenumber - heblocknumber :} Current challenges in p2paddtocounter {blocknumber}{1}Distributed Software DevelopmentP2PChris BrooksDepartment of Computer ScienceUniversity of San FranciscoDepartment of Computer Science — University of San Francisco – p.1/??13-0: Peer-to-PeerPeer-to-peer is often touted as a hot new technologyReally, it’s as old as the Internet (or earlier)Fundamental idea: all nodes in a network should becapable of the same functionality.Contrast this with client-server.In practice, many systems are a hybrid of p2p andclient-server.Department of Computer Science — University of San Francisco – p.2/??13-1: ExamplesWhat are some examples of p2p systems?Department of Computer Science — University of San Francisco – p.3/??13-2: ExamplesFile sharing apps (Morpheus, Kazaa, Limewire, etc)IRC/ICQSETI@Home/distributed.netWeb cachingVoIPSMTPetcDepartment of Computer Science — University of San Francisco – p.4/??13-3: Historical examplesUSENETPeers within a domain would collect usenet posts andforward them via UUCP, then NNTP.No central server or repository.DNSA hierarchical p2p systemDepartment of Computer Science — University of San Francisco – p.5/??13-4: Why did client/server become sopopular?Asynchronous network structureEase of discoveryCentralized content developmentFirewalls, NAT make it harder for users to host content.Model changes: fewer developers, more browsers.Department of Computer Science — University of San Francisco – p.6/??13-5: Potential advantages ofpeer-to-peerReduce server bottlenecksMove content closer to usersAllow users to publish as well as consume informationNote that publishing and authoring can be differentthings.ScalabilityMore able to deal with adaptive, dynamic networks.Department of Computer Science — University of San Francisco – p.7/??13-6: Challenges of peer-to-peerFinding peers (addressing)Searching for dataNaming conventionsHow are queries distributed?Interoperability and standardsDealing with dynamic networksSecurityDepartment of Computer Science — University of San Francisco – p.8/??13-7: First-generation applicationsSo-called first-generation applications use a centralizedname server.All user addresses and file indexes are kept there.This can be used to build an application-leveladdress-resolution protocol.Napster is the canonical example of this.Central server is used to search.Files are transferred between peers.Department of Computer Science — University of San Francisco – p.9/??13-8: Weaknesses of thefirst-generation modelCentral server provides a bottleneck.Difficult to implement in a closed or dynamic environment.Scalability can be a problem.(also, legal issues in the case of Napster)Department of Computer Science — University of San Francisco – p.10/??13-9: Second-generation modelsSecond-generation models remove the central server.All file information is distributed.Advantage:Potentially more scalableLegal issues avoided.Disadvantages:Search is more complexDiscovery of peers more complicated.Department of Computer Science — University of San Francisco – p.11/??13-10: Example: GnutellaThe Gnutella network is completely decentralized.When a peer comes onto the network, it sends a ping toall known peers.Those peers respond with a pong, which identifies all theirknown peers.When that peer wants to perform a search, it sends aquery to all known nodes.This request is then forwarded on to nodes one levelaway, and so on.If a hit is found, the node containing the file contactsthe searcher and download begins.Department of Computer Science — University of San Francisco – p.12/??13-11: Example: GnutellaProblems with Gnutella:Searching is unreliable - the network is oftenpartitioned.Search based only on keywords.Wastes bandwidth forwarding searches to all nodes.Does not take advantage of network structureDepartment of Computer Science — University of San Francisco – p.13/??13-12: Hierarchical p2pKazaa is an example of a hierarchical p2p systemWhen a user enters the network, it connects to ameganode.This meganode forwards queries to all other nodesconnected to it.It also collects file information for each client.Periodically, it also exchanges information with othermeganodes.Again, searches typically do not reach the entire network.Higher-bandwidth nodes act as meganodes, processmore traffic.Department of Computer Science — University of San Francisco – p.14/??13-13: Issues with file distributionFile integrity - how do you guarantee you’re getting the fileyou think you’re getting?md5 or SHA hash of file contentsHow can files be shared anonymously?Virtual addresses and randomized routing can hideidentity.How to distribute large files?Download chunks simultaneously from many peers atonce.Department of Computer Science — University of San Francisco – p.15/??13-14: Example: BitTorrentBitTorrent is a p2p network specifically designed forsharing


View Full Document

USF CS 682 - Distributed Software Development

Documents in this Course
Load more
Download Distributed Software Development
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 Distributed Software Development 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 Distributed Software Development 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?