82 |
Peer-to-Peer systems have recently received considerable attention in both |
Peer-to-Peer systems have recently received considerable attention in both |
83 |
academia \cite{projectirisurl} and industry \cite{p2pworkinggroup, jxtaurl} for a |
academia \cite{projectirisurl} and industry \cite{p2pworkinggroup, jxtaurl} for a |
84 |
number of reasons. The lack of centralization in Peer-to-Peer systems |
number of reasons. The lack of centralization in Peer-to-Peer systems |
85 |
means that the participants can form a distributed system without any investment to centralized |
means that the participants can form a distributed system \cite{couloris94distributedsystems} |
86 |
hardware, which would coordinate it by sharing their services and connecting to each other directly |
without any investment to centralized hardware by sharing their services and connecting to each |
87 |
\cite{couloris94distributedsystems}. The distributed and ad hoc nature of Peer-to-Peer improves |
other directly. Peer-to-Peer systems can be characterized as distributed systems in which all |
88 |
scalability and avoids single points of failure. Schollmeier \cite{schollmeier01p2pdefinition} |
communication is symmetric and all participant entities have similar capabilities and responsibilities |
89 |
describes Peer-to-Peer system as a system of distributed entities that share their own services. |
\cite{oram01harnessingpower}. Schollmeier \cite{schollmeier01p2pdefinition} describes Peer-to-Peer system as a system of |
90 |
Peer-to-Peer systems can be characterized as distributed systems in which all communication is |
distributed entities that share their own services. |
91 |
symmetric and all participant entities have similar capabilities and responsibilities. |
Each entity, i.e., \emph{peer}, may contribute services to the overall system. The distributed |
92 |
Each entity, i.e., \emph{peer}, may contribute services to the overall system. |
and ad hoc nature of Peer-to-Peer improves scalability and avoids single points of failure. |
93 |
|
|
94 |
The Fenfire project is an attempt to build a hyperstructured, seamlessly interoperating desktop |
The Fenfire project is an attempt to build a hyperstructured, seamlessly interoperating desktop |
95 |
environment. In the Fenfire, all data is stored as data blocks. |
environment. In the Fenfire, all data is stored in same format, i.e., data blocks. |
96 |
All data blocks have globally unique identifiers and they can be referred by pointer blocks. |
Each data block have a globally unique identifier and it can be referred, by pointer blocks. |
97 |
Other features of the Fenfire include innovative user |
Other features of the Fenfire include innovative user |
98 |
interfaces for viewing data and usage of Peer-to-Peer networking for network transparency. |
interfaces for viewing data and the use of Peer-to-Peer networking for network transparency. |
99 |
|
|
100 |
In this thesis, we evaluate existing Peer-to-Peer approaches and |
There are three research problems discussed in this thesis: first, finding the most efficient |
101 |
choose the best alternative to Fenfire's needs. |
way to locate and fetch Fenfire data blocks from a Peer-to-Peer network, when the block's |
102 |
|
identifier is given. Second, we want to find the most efficient way to locate and fetch the most |
103 |
|
recent Fenfire data block from a Peer-to-Peer network referred by a pointer. The third problem |
104 |
|
is similar to the second problem, except we want to locate and fetch the Fenfire |
105 |
|
data block, when date and or time range is given. |
106 |
|
|
107 |
We start by reviewing existing Peer-to-Peer approaches, algorithms and their key properties. |
In this thesis, we evaluate existing Peer-to-Peer approaches and |
108 |
We observe that despite the great amount of proposed Peer-to-Peer systems, all systems fall either to loosely or |
evaluate them to Fenfire's needs. We start by reviewing existing Peer-to-Peer approaches, |
109 |
|
algorithms and their key properties. We emphasize that despite the great amount of proposed |
110 |
|
Peer-to-Peer systems, we are able to classify \emph{all} systems either to loosely or |
111 |
tightly structured approach. We also discuss open problems in |
tightly structured approach. We also discuss open problems in |
112 |
Peer-to-Peer systems and divide problems into three sub-categories: security, performance, and miscellaneous |
Peer-to-Peer systems and divide problems into three sub-categories: security, performance, and miscellaneous |
113 |
problems. |
problems. We attempt to comprehensively summarize existing algorithms and open problems in |
114 |
|
Peer-to-Peer domain, this thesis doesn't give detailed information about reviewed algorithms nor |
115 |
|
open problems. More detailed information can be found from the references. |
116 |
|
|
117 |
Then, we give an overview of the Fenfire project, and evaluate Peer-to-Peer approaches to Fenfire's |
Then, we give an overview of the Fenfire project, and evaluate Peer-to-Peer approaches to Fenfire's |
118 |
needs. Finally, we propose simple but yet efficient methods to be used for data lookups in Peer-to-Peer |
needs. Finally, we propose simple but yet efficient methods to be used for data lookups in Peer-to-Peer |
119 |
environment. |
environment. |
120 |
|
|
|
We attempt to comprehensively summarize existing algorithms and open problems in |
|
|
Peer-to-Peer domain. However, this thesis is not meant to be detailed work. More detailed |
|
|
information can be found from the references. |
|
|
|
|
|
There are three research problems discussed in this thesis. First research problem |
|
|
is finding the most efficient way to locate and fetch Fenfire data blocks from a |
|
|
Peer-to-Peer network, where the block's identifier is given. Second, we want |
|
|
to find the most efficient way to locate and fetch the most recent Fenfire data block from a |
|
|
Peer-to-Peer network referred by a pointer block. The third problem |
|
|
is otherwise the same as the second problem, except we want to locate and fetch the Fenfire |
|
|
data block, where date and or time range is given. |
|
|
|
|
|
This thesis is structured as follows. In the next chapter, we give an overview of |
|
|
existing Peer-to-Peer approaches, algorithms and key differences between them. In chapter 3, we |
|
|
address open problems in Peer-to-Peer domain and divide problems into three |
|
|
sub-categories. Chapter 4 gives an overview of the Fenfire system. In chapter |
|
|
5, we evaluate existing Peer-to-Peer approaches with regard to the Fenfire system. |
|
|
Finally, in chapter 6 we conclusions and future work. |
|
|
|
|
|
|
|
121 |
\chapter{Peer-to-Peer architectures} |
\chapter{Peer-to-Peer architectures} |
122 |
In this chapter we will give a brief history and overview of Peer-to-Peer networks, |
In this chapter we will give a brief history and overview of Peer-to-Peer networks, |
123 |
review most the important Peer-to-Peer algorithms and list key differences between the |
review most the important Peer-to-Peer algorithms and list key differences between the |
125 |
|
|
126 |
\section{Brief history and overview} |
\section{Brief history and overview} |
127 |
|
|
128 |
The Internet was originally established in the late 1960s. The objective |
The Internet was originally established in the late 1960s \cite{253741}. The objective |
129 |
of the ARPANET-project was to share computers' resources among military computers |
of the ARPANET-project was to share computers' resources among military computers |
130 |
around the United States. The most challenging purpose of ARPANET was to integrate |
around the United States. The most challenging purpose of ARPANET was to integrate |
131 |
different kinds of existing network technologies with one common network architecture. |
different kinds of existing network technologies with one common network architecture. |
133 |
but rather as equal networking \emph{peers}. This could be seen as the starting point |
but rather as equal networking \emph{peers}. This could be seen as the starting point |
134 |
of both the Peer-to-Peer concept and the Internet \cite{oram01harnessingpower}. |
of both the Peer-to-Peer concept and the Internet \cite{oram01harnessingpower}. |
135 |
|
|
136 |
In subsequent years, the Internet became more restricted to client--server based |
The most popular form of modern Peer-to-Peer computing is file-sharing. In this scenario, |
137 |
applications. In recent years, however, Peer-to-Peer systems have again emerged |
participants of Peer-to-Peer network share their file resources with other participants. |
138 |
in computing world. Indeed, Peer-to-Peer has had significant social and technical |
This can be seen as a variant of distributed file system (e.g., \cite{levy90distributedfilesystems}). |
139 |
attention in academia \cite{projectirisurl} and industry \cite{p2pworkinggroup, jxtaurl}. |
A modern Peer-to-Peer system is composed of an \emph{application} level overlay network, i.e., |
140 |
The deceased Napster \cite{napsterurl}, |
network operates at the application level and forms a logical network overlay on top of physical |
141 |
launched in 1999, was a new starting point for modern Peer-to-Peer computing. After |
network. Figure \ref{fig:application_level} illustrates the Peer-to-Peer application level overlay network. |
142 |
Napster, hundreds of Peer-to-Peer systems have been developed and proposed. |
Compared to ARPANET's Peer-to-Peer functionality, modern Peer-to-Peer systems |
143 |
|
are \emph{ad hoc}, i.e., peers join and leave the system constantly. Thus, this property |
144 |
A modern Peer-to-Peer system is composed of an \emph{application} level overlay network. |
poses challenges for efficient construction and maintenance |
145 |
Figure \ref{fig:application_level} illustrates the analogy of Peer-to-Peer network with |
of the overlay network, performing efficient data lookups and maintaining security in |
146 |
regard to OSI model. Compared to ARPANET's Peer-to-Peer functionality, modern Peer-to-Peer systems |
a distributed environment. |
|
are ad hoc, i.e., peers join and leave the system constantly in a dynamic manner. This |
|
|
fact constitutes challenging requirements for efficient construction and maintenance |
|
|
of the overlay network. Even more demanding tasks are performing efficient data |
|
|
lookup and maintaining security in a varying distributed environment. The most popular |
|
|
form of modern Peer-to-Peer computing is file-sharing. In this scenario, participants |
|
|
of Peer-to-Peer network share their file resources with other participants. |
|
|
This can be seen as a variant of distributed file system |
|
|
(e.g., \cite{levy90distributedfilesystems}). |
|
147 |
|
|
148 |
\begin{figure} |
\begin{figure} |
149 |
\centering |
\centering |
154 |
|
|
155 |
|
|
156 |
|
|
157 |
In the development of modern Peer-to-Peer systems, lot of influence has been attained from |
In the development of modern Peer-to-Peer systems, lot of influence has been derived from |
158 |
other research areas than computer science. Research has been conducted regarding |
outside of computer science. First, it is interesting to realize that chemical properties of biological cells, the Internet, ad hoc |
159 |
the self-organizing nature of complex networks \cite{albert-02-statistical, albert-00-tolerance, watts00dynamics}. |
Peer-to-Peer systems, and social network self-organize based on the same |
160 |
It is interesting to realize that chemical properties of biological cells, the Internet, ad hoc |
principles \cite{albert-02-statistical, albert-00-tolerance, watts00dynamics}. Second, the |
161 |
Peer-to-Peer systems, and social networks have all in common that they self-organize based on the same |
association between social relationships among people and Peer-to-Peer overlay topology has been |
162 |
principles. Furthermore, the association between social relationships among people |
studied recently \cite{watts00dynamics, kleinberg99small, nips02-Kleinberg}. |
163 |
and Peer-to-Peer overlay topology has been studied recently \cite{watts00dynamics, kleinberg99small, nips02-Kleinberg}. |
This insight is motivated by Milgram \cite{milgram67smallworld}, who noticed that people are very effective in |
164 |
This insight is motivated by Milgram, who noticed that people are very effective in locating other people in a wide scale |
locating other people in a wide scale based on local knowledge. This phenomenon is called as |
165 |
based on local knowledge. This phenomenon is called as ''small-world phenomenon'' |
''small-world phenomenon''. As a consequence, many modern Peer-to-Peer systems |
166 |
\cite{milgram67smallworld}. As a consequence, many modern Peer-to-Peer systems |
have applied similar techniques when constructing and maintaining the application level |
167 |
have applied techniques outside of computer science when constructing and maintaining |
overlay network. |
|
the application level overlay network. |
|
168 |
|
|
169 |
In the end, however, there are two main approaches in which all modern Peer-to-Peer |
In the end, however, we observe that there are only two approaches in which all modern Peer-to-Peer |
170 |
systems fall: the loosely structured approach and the tightly structured approach. In the loosely |
systems fall: the loosely structured approach and the tightly structured approach. In the loosely |
171 |
structured approach the construction and the maintenance of the overlay is controlled |
structured approach the construction and the maintenance of the overlay is controlled |
172 |
loosely. This approach gives freedom for participating peers |
loosely. This approach gives freedom for participating peers |
173 |
to perform certain tasks in a Peer-to-Peer network. On the other hand, the tightly structured |
to perform certain tasks in a Peer-to-Peer network. On the other hand, the tightly structured |
174 |
approach has some rules, which all participating peers have to obey. |
approach the overlay is constructed determistically, which all participating peers have to follow. |
175 |
|
|
176 |
|
|
177 |
\section{Centralized} |
\section{Centralized} |
178 |
|
|
179 |
Napster\footnote{We decided to include Napster in this section only because it has |
Napster\footnote{We decided to include Napster in this section only because it has |
180 |
historical value (see previous section).} \cite{napsterurl} was designed to allow |
historical value (see previous section).} \cite{yang02comparinghybrid} was designed to allow |
181 |
people to share music. It was a hybrid Peer-to-Peer file-sharing system, i.e., the search |
people to share music. It was a hybrid Peer-to-Peer file-sharing system, i.e., the search |
182 |
index was centralized and the distribution of storage and serving of files was distributed. |
index was centralized and the distribution of storage and serving of files was distributed. |
183 |
Peers in the Napster network made requests to the central directory server to find |
Peers in the Napster network made requests to the central directory server to find |
188 |
|
|
189 |
\section{Loosely structured} |
\section{Loosely structured} |
190 |
|
|
191 |
Gnutella \cite{gnutellaurl} is a well-known example of loosely structured overlay network. As in |
Gnutella \cite{ripeanu02mappinggnutella} is a well-known example of loosely structured overlay network. Gnutella |
192 |
other pure Peer-to-Peer networks, no peer is more important than any other peer in the network. |
is a pure Peer-to-Peer network as no peer is more important than any other peer in the network. |
193 |
The construction and maintenance of Gnutella network is extremely ad hoc, since participating |
The construction and maintenance of Gnutella network is extremely ad hoc, since participating |
194 |
peers can form the overlay network based on \emph{local} knowledge. Figure \ref{fig:gnutella_overlay} |
peers can form the overlay network based on \emph{local} knowledge. Figure \ref{fig:gnutella_overlay} |
195 |
illustrates how peers form an overlay network. Initially, peer 1 creates the overlay, since |
illustrates how peers form an overlay network. Initially, peer 1 creates the overlay, since |
196 |
it is the first participating peer. Then, repeatedly new peers join the network and connect to |
it is the first participating peer. Then, repeatedly new peers join the network and connect to |
197 |
other peers in a random manner. Thus, Gnutella can be considered as a variation of \emph{scale-free |
other peers randomly. Thus, Gnutella can be considered as a variation of \emph{scale-free |
198 |
graph}\footnote{In scale-free graphs (also known as power-law graphs) only a few peers have high number of neighbor |
graph}\footnote{In scale-free graphs (also known as power-law graphs) only a few peers have high number of neighbor |
199 |
links and the majority of peers have low number of neighbor links.}. |
links and the majority of peers have low number of neighbor links.}. |
200 |
|
|