Gnutella, Freenet and Peer to Peer Networks By Norman Eng Steven Hnatko George Papadopoulos.
-
date post
21-Dec-2015 -
Category
Documents
-
view
214 -
download
0
Transcript of 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
User on each computer decides what data on their computer will be shared on the network.
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
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
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”
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
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
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
HTTP Message Format
3 Major Fields of Information: Initial line signaling Request/ResponseHeaders (not mandatory)Additional Data (not mandatory)
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
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
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
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
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
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
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
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
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