+ All Categories
Home > Documents > Gnutella, Freenet and Peer to Peer Networks

Gnutella, Freenet and Peer to Peer Networks

Date post: 30-Dec-2015
Category:
Upload: mallory-knight
View: 24 times
Download: 0 times
Share this document with a friend
Description:
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 - PowerPoint PPT Presentation
Popular Tags:
23
Gnutella, Freenet and Peer to Peer Networks By Norman Eng Steven Hnatko George Papadopoulos
Transcript
Page 1: Gnutella, Freenet and Peer to Peer Networks

Gnutella, Freenet and Peer to Peer Networks

By

Norman Eng

Steven Hnatko

George Papadopoulos

Page 2: Gnutella, Freenet and Peer to Peer Networks

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.

Page 3: Gnutella, Freenet and Peer to Peer Networks

Gnutella and Freenet

Freenet and Gnutella are two leading protocols for Peer to Peer networkingThey 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

Page 4: Gnutella, Freenet and Peer to Peer Networks

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

Page 5: Gnutella, Freenet and Peer to Peer Networks

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”

Page 6: Gnutella, Freenet and Peer to Peer Networks

Gnutella Basics (cont.)Properties of the Gnutella Network:Every node is equalEvery 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 hierarchyThe Network can be cyclical, this causes

excessive traffic

Page 7: Gnutella, Freenet and Peer to Peer Networks

Standard InteractionsConnecting 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

Page 8: Gnutella, Freenet and Peer to Peer Networks

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

networkQuery Hit The response to a Query

Push/Get A mechanism that allows a “servent” to contribute/receive

file-based data to the network

Page 9: Gnutella, Freenet and Peer to Peer Networks

HTTP Message Format

3 Major Fields of Information: Initial line signaling Request/ResponseHeaders (not mandatory)Additional Data (not mandatory)

Page 10: Gnutella, Freenet and Peer to Peer Networks

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

Page 11: Gnutella, Freenet and Peer to Peer Networks

Protocol Diagram

1) Incoming Ping

2) Outgoing Pong3) Routed Ping

node

Discovery

Page 12: Gnutella, Freenet and Peer to Peer Networks

Protocol Diagram

1) File Transfer

1) Query 2) QueryHit

Search Transfer

Page 13: Gnutella, Freenet and Peer to Peer Networks

How Gnutella Retrieves Information

Page 14: Gnutella, Freenet and Peer to Peer Networks

Freenet Overview

Objectives of Freenet ProtocolAnonymity for both producers and

consumers of informationDeniability for storers of informationResistance to attempts by third parties to

deny access to informationEfficient dynamic storage and routing of

informationDecentralization of all network function

Page 15: Gnutella, Freenet and Peer to Peer Networks

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

Page 16: Gnutella, Freenet and Peer to Peer Networks

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

Page 17: Gnutella, Freenet and Peer to Peer Networks

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

Page 18: Gnutella, Freenet and Peer to Peer Networks

Freenet Searches

Page 19: Gnutella, Freenet and Peer to Peer Networks

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

Page 20: Gnutella, Freenet and Peer to Peer Networks

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

Page 21: Gnutella, Freenet and Peer to Peer Networks

Freenet Details

Message TypesHandshakeRequest

Initiate connection to a node, ensures that node is connected and protocol versions match

HandshakeReplyResponse to HandshakeRequest

DataRequestRequest from node for data transmission, must

provide key for data as well

Page 22: Gnutella, Freenet and Peer to Peer Networks

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

Page 23: Gnutella, Freenet and Peer to Peer Networks

Major Differences

Manner in which data is stored

Level of Anonymity

Developer’s Project Design Goals


Recommended