Survey of Peer to Peer Technologies Authors: Bratislav Milić, Jelena Krunić, Veljko Milutinović,
2/35 Introduction What is P2P? When was it created? (Bell vs. Fanning)
3/35 What Is It Used for? Sharing of computer resources and services between systems Exchanging information, processing cycles, cache storage, and disk storage for files
4/35 P2P Features All peers in a P2P network are the same Data and computation are decentralized Search for data in real time Peers and their connections are volatile
5/35 P2P Applications File sharing applications Process sharing applications Collaborative applications
6/35 File Sharing Applications Napster It is not P2P in the strictest sense Created for sharing MP3 files Centralized server holds file indexes and other metadata Peers query the central server Sued by recording companies
7/35 File Sharing Applications Gnutella Similar purpose as Napster Decentralized Flooding (peer sends PING to all its neighbors, each of these will PING all its neighbors, and so on; radius of the flood is 5-7) A Gnutella node needs a server (or a set of servers) to “start-up” Gnutellahosts.Com
8/35 File Sharing Applications Free-rider problem Peers that do not share files Majority of participants act as free riders P2P system devolves into a client/server system Sharers of desirable content are overloaded
9/35 Process Sharing Applications Search for extraterrestrial intelligence (SETI) Scientific experiment that started in year 2000 Downloads and analyzes radio telescope data
10/35 Process Sharing Applications How does work? A special kind of screensaver Large calculations are easily divided into completely independent parts (about 340kbytes per work-unit) Connects only when transferring data 4 million users Average CPU time per work-unit 11h
11/35 Process Sharing Applications Free software that runs “in the background” on your computer Processes information for drug discovery Uses idle processor cycles www. fightaidsathome.org
12/35 Process Sharing Applications Examining the folding of proteins Simulation of protein folding for the first time Simulate timescales thousands to millions of times longer than previously achieved Over users
13/35 Communication Applications ICQ I seek you (ICQ) Free download You can see when your friends are also online, in real time Instant messaging, virtual meetings, shared whiteboards, teleconferencing
Freenet project
15/35 Freenet Project - Introduction Based on paper written by Ian Clarke “A Distributed Decentralized Information Storage and Retrieval System” Open standard Development under GPL (GNU Public Licence)
16/35 Freenet Project – Basic Ideas Lack of privacy on the Internet – Lots of information can be collected about people who are using Internet (WWW, mail, FTP, etc.) Lack of anonymity on Internet Censorship Copyright problems
17/35 Freenet Project - Features All nodes are basically the same No central control or administration Anonymity for users Dynamic duplication of data Transfer of data Encrypted data – no one can be held responsible for the data on it’s node
18/35 Freenet Project – Routing Each node holds data and information about nodes Node communicates with near nodes. Search in the Freenet network is based on passing the message to the node that mostly likely has the searched information. Ad-hoc networks as an ETF tutorial
19/35 Freenet Project – Routing
20/35 Freenet Project – Information Removal Data duplication and data transfer create multiple copies of same data Storage space is limited Some data must be deleted LRU algorithm Caching effect but not a cache Inserting of “junk” data cannot destroy data in the Freenet
21/35 Freenet Project – Message Types Like it has been mentioned, nodes can behave differently, but they must use the same communication protocol. Four message types for communication: Data request Data reply Request failed Data insert Each message has TTL (Time to Live) and pseudo unique ID
22/35 Freenet Project – Message Types It is sent in order to search for some data TTL indicates how many hops it should have before it fails Each node stores message ID that passes through it In the case of Data request with ID that has been seen, sender must be notified (to avoid loops) Data request
23/35 Freenet Project – Message Types It should be sent to the node that sent Data request Node should keep the data in order to speed up future queries Data reply
24/35 Freenet Project – Message Types Data insert Node sends Data insert to nodes that contain similar data TTL for Data insert Messages should be low If it isn’t, node that receives Data insert message can reduce TTL to lower level In the case of loop, receiver sends non-backtracking Request Failed When TTL reaches zero, Request Failed is sent to notify the sender that operation is complete
25/35 Freenet Project – Message Types Node sends Data insert message to itself If the key is occupied, user receives notification TTL typically low. If it is high, the node can reduce it. Data is inserted on nodes that are “close” to the data key.
26/35 Freenet Project – Message Types Data request and replies – example *Adapted from Ian Clarke’s paper A B E F C D Data requests Request Failed Data reply D
27/35 Freenet Project – Search Keys Users search files under their names/descriptions Each file has its key To create key 160bit SHA-1 hash function is used Keys used in Freenet: Keyword Signed Key (KSK) Signed Subspace Key (SSK) Content Hash Key (CHK)
28/35 Freenet Project – Search Keys Author defines short description of the data Deterministic generation of public/private key pair from the description Public part is hashed to create key Private is used to sign the file Problems: Flat namespace (duplicates problem) Dictionary attack Keyword Signed Key
29/35 Freenet Project – Search Keys Each user generates random key pair to identify their namespace Private part of random key is used to sign the data User places both public key and description Signed Subspace Key Public keyDescription XOR SHA-1
30/35 Freenet Project – Search Keys Content Hashed Keys are useful for splitting and updating data, but will not be described here Remains problem of finding the key Web crawlers Individual compilations of favorite keys
31/35 Freenet Project – Adding A New Node New node joins network by discovering address of an already existing node (not through Freenet) Requests allow that new node learns about network Network cannot learn of new nodes through requests Announcement message
32/35 Freenet Project - Conclusion Completely decentralized Anonymity for both writers and readers No censorship High fault tolerance Adaptive routing saves bandwidth (in contrast to broadcast requests) No guaranties for QoS
33/35 Future JXTA Sun Microsystem's peer-to-peer initiative Juxtapose (JXTA) – to put things next to each other Open, generalized peer-to-peer protocols that allow any connected device (cell phone to PDA, PC to server) on the network to collaborate
34/35 Conclusion Problem: individual users Problem: QoS Benefit: flexibility Benefit: scalability Benefit: fault resistance Final conclusion: useful technology that has to be improved in order to show all its good sides
Survey of Peer to Peer Technologies Bratislav Milić, Jelena Krunić, Veljko Milutinović,