Introduction to P2P - Distributed Software Develop | CS 682, Study notes of Software Engineering

Material Type: Notes; Class: Distributed Software Develop; Subject: Computer Science; University: University of San Francisco (CA); Term: Unknown 1989;

Typology: Study notes

Pre 2010

Uploaded on 07/30/2009

koofers-user-c6m-1
koofers-user-c6m-1 🇺🇸

10 documents

1 / 25

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Distributed Software Development
Introduction to P2P
Chris Brooks
Department of Computer Science
University of San Francisco
Department of Computer Science University of San Francisco p. 1/??
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Partial preview of the text

Download Introduction to P2P - Distributed Software Develop | CS 682 and more Study notes Software Engineering in PDF only on Docsity!

Distributed Software Development

Introduction to P2P

Chris Brooks Department of Computer Science University of San Francisco Department of Computer Science — University of San Francisco – p. 1/

14-2: Peer-to-Peer

  • Peer-to-peer is often touted as a hot new technology ◦ Really, it’s as old as the Internet (or earlier) - Fundamental idea: all nodes in a network should be capable ofthe same functionality. - Contrast this with client-server. - In practice, many systems are a hybrid of p2p and client-server. Department of Computer Science — University of San Francisco – p. 2/

14-4: Examples

  • File sharing apps (Morpheus, Kazaa, Limewire, etc) -

IRC/ICQ

  • SETI@Home/distributed.net - Web caching - VoIP -

SMTP

  • etc Department of Computer Science — University of San Francisco – p. 4/

14-5: Historical examples

USENET

◦ Peers within a domain would collect usenet posts andforward them via UUCP, then NNTP. ◦ No central server or repository.

DNS

◦ A hierarchical p2p system Department of Computer Science — University of San Francisco – p. 5/

14-7: Potential advantages of peer-to-peer

  • Reduce server bottlenecks - Move content closer to users - Allow users to publish as well as consume information ◦ Note that publishing and authoring can be different things. - Scalability - More able to deal with adaptive, dynamic networks. Department of Computer Science — University of San Francisco – p. 7/

14-8: Challenges of peer-to-peer

  • Finding peers (addressing) ◦ How does a peer join the network? ◦ How do peers identify each other? ◦ Is the network constructed statically, or dynamically? ◦ Does a peer always connect to the same set of peers? Department of Computer Science — University of San Francisco – p. 8/

14-10: Challenges of Peer-to-Peer

  • Other challenges: ◦ Interoperability and standards^ • Currently, every P2P network has its own protocol - youcan’t use a BitTorrent client to search on Gnutella. ◦ Dealing with dynamic networks ◦ Security^ • This includes the distribution of malicious files, protectionfrom snooping, and user authentication. Department of Computer Science — University of San Francisco – p. 10/

14-11: First-generation applications

  • So-called first-generation applications use a centralized nameserver. - 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. - Most IM programs also work this way. - Central server is used to search. - Files are transferred between peers. Department of Computer Science — University of San Francisco – p. 11/

14-13: Second-generation models

  • Second-generation models remove the central server. - All file information is distributed. - Advantage: ◦ Potentially more scalable ◦ Legal issues avoided. - Disadvantages: ◦ Search is more complex ◦ Discovery of peers more complicated. Department of Computer Science — University of San Francisco – p. 13/

14-14: Example: Gnutella

  • Gnutella is an example of an open P2P system. - Many clients use the same protocol ◦ LimeWire, BearShare, Gnucleus, etc - Gnutella uses no centralized server - all information is stored atthe peers. Department of Computer Science — University of San Francisco – p. 14/

14-16: Example: Gnutella

  • When a peer wants to perform a search, it sends a query to allknown nodes. ◦ This request is then forwarded on to nodes one level away,who forard it to all nodes they know about, and so on. ◦ This is known as query flooding. ◦ If a hit is found, the node containing the file contacts thesearcher and download begins. Department of Computer Science — University of San Francisco – p. 16/

14-17: Example: Gnutella

  • Problems with Gnutella: ◦ Searching is unreliable - the network is often partitioned. ◦ Search based only on keywords - this produces namingissues.^ • If I want “Lost S1, Ep 3”, what do I search for? ◦ Wastes bandwidth forwarding searches to all nodes. ◦ Does not take advantage of network structure^ • Some peers may have better bandwidth, moreinformation, or a more central network structure. Department of Computer Science — University of San Francisco – p. 17/

14-19: Hierarchical P2P

  • This allows peers with greater resources to do more. - Searches don’t need to be propagated more than is necessary. - Kazaa is a closed network, so most of its inner workings havebeen figured out through reverse engineering. Department of Computer Science — University of San Francisco – p. 19/

14-20: Issues with file distribution

  • File integrity - how do you guarantee you’re getting the file youthink you’re getting? ◦ md5 or SHA hash of file contents - How can files be shared anonymously? ◦ Virtual addresses and randomized routing can hide identity. - How to distribute large files? ◦ Download chunks simultaneously from many peers at once. Department of Computer Science — University of San Francisco – p. 20/