1 / 23

Gnutella, Freenet and Peer to Peer Networks

Gnutella, Freenet and Peer to Peer Networks . By Norman Eng Steven Hnatko George Papadopoulos. Peer to Peer Fundamentals. No dedicated servers or hierarchy among the computers All of the computers are equal Each computer functions as a client and a server with no administrator

Download Presentation

Gnutella, Freenet and Peer to Peer Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Gnutella, Freenet and Peer to Peer Networks By Norman Eng Steven Hnatko George Papadopoulos

  2. Peer to Peer Fundamentals • No dedicated servers or hierarchy among the computers • All of the computers are equal • Each computer functions as a client and a server with no administrator • User on each computer decides what data on their computer will be shared on the network.

  3. Gnutella and Freenet • Freenet and Gnutella are two leading protocols for Peer to Peer networking • They both create a decentralized network of computers, but do so with different implementations • They handle and distribute data differently according to their own project goals

  4. Freenet and Gnutella • Freenet and Gnutella are two leading protocols for peer to peer networking • Both create a decentralized network of computers, but do so with different implementations • They handle and distribute data differently according to their own project goals • Gnutella has a much broader user base than Freenet at this time, due to its easier implementation

  5. Gnutella Basics • Gnutella works by “viral propagation” • Each node of the network simultaneously acts as a client and server, conducting searches while listening for incoming queries • Gnutella defines these heterogeneous nodes as “servents”

  6. Gnutella Basics (cont.) • Properties of the Gnutella Network: • Every node is equal • Every node is both a server as well as a client • Problems with the Gnutella Network: • The Network cannot be described as a tree, because there is no hierarchy • The Network can be cyclical, this causes excessive traffic

  7. Standard Interactions • Connecting to a Server(node) • A node connecting to the network must first connect to a know node • Client Says: GNUTELLA CONNECT • Server Responds: GNUTELLA OK • Downloading from a Server(node) • HTTP Downloading • Client Request String: • GET /get/1234/bob.mp3 HTTP/1.0 • Connection: Keep-Alive • Server Response: • HTTP 200 OK • Server:Gnutella • Content-type:application/binary • Content-length:3289

  8. Gnutella Descriptor Information • Ping • Used to actively discover hosts on the network • Pong • The response to a Ping • Query • The primary mechanism for searching the distributed network • Query Hit • The response to a Query • Push/Get • A mechanism that allows a “servent” to contribute/receive file-based data to the network

  9. HTTP Message Format • 3 Major Fields of Information: • Initial line signaling Request/Response • Headers (not mandatory) • Additional Data (not mandatory)

  10. Protocol • To discover nodes, a servent will send out a Ping descriptor • A servent receiving a Ping is expected to respond with a Pong and forward the Ping to all other nodes it is connected to, decreasing the TTL before forwarding • Pongs may only be sent along the same path as the incoming Ping • A search is propagated using a Query descriptor which is also routed to nodes and other nodes connected to them

  11. Protocol Diagram 3) Routed Ping 2) Outgoing Pong node 1) Incoming Ping Discovery

  12. Protocol Diagram 1) Query 2) QueryHit 1) File Transfer Search Transfer

  13. How Gnutella Retrieves Information

  14. Freenet Overview • Objectives of Freenet Protocol • Anonymity for both producers and consumers of information • Deniability for storers of information • Resistance to attempts by third parties to deny access to information • Efficient dynamic storage and routing of information • Decentralization of all network function

  15. Freenet Basics • Network of equal nodes, each acting as client and server • Information stored on hosts under searchable keys • Total anonymity of users • Owner of node has no knowledge of information in node’s datastore • Data stored within nodes is encrypted

  16. Freenet Interactions • Connection to Freenet network • Node connecting to network must obtain existing node’s address though out-of-band means • Once connected, a new node message is propagated to randomly selected, connected nodes so existing nodes learn of new node’s existence

  17. Freenet Interactions • File Searches • Node’s search string is hashed to key and own datastore checked on key • If failure, key is sent to one connected node which searches it’s datastore and if fails, propagates search to one of it’s connected nodes, HTL decreased • When file is found, search terminates and data is sent back to searching node, each node along path to searching node copies data to its own datastore as well

  18. Freenet Searches

  19. Freenet Details • Datastore Key Types • Keyword Signed Key (KSK) • Content Hash Key (CHK) Most Common • Name defined by data itself • Signature Verified Key (SVK) • Provide a “private” key for use with SSK • SubSpace Key (SSK) • Allow users to insert data “under” an SVK • Can create hierarchical data structure under SVK

  20. Freenet Details • Common Message Header Information • UniqueID: 64bit value assigned to generated message, used to prevent loops • HopsToLive: Number of times a message may be forwarded before destroyed • Depth: Distance in hops a message has traveled from its creator • Source: Address identifying sender of message

  21. Freenet Details • Message Types • HandshakeRequest • Initiate connection to a node, ensures that node is connected and protocol versions match • HandshakeReply • Response to HandshakeRequest • DataRequest • Request from node for data transmission, must provide key for data as well

  22. Freenet Details • Message Types (cont) • DataReply • Reply of requested data, must provide data to be stored • DataInsert • Request from a node for data to be stored onto network, requesting node includes data and key • RequestFailed • Signals to sending node that data request failed

  23. Major Differences • Manner in which data is stored • Level of Anonymity • Developer’s Project Design Goals

More Related