39 |
|
|
40 |
|
|
41 |
\abstract{ |
\abstract{ |
42 |
In this thesis, we review existing Peer-to-Peer approaches, algorithms and their |
In this thesis, first we review existing Peer-to-Peer approaches, algorithms and their |
43 |
key properties. We summarize open problems in Peer-to-Peer systems and divide |
key properties. We summarize open problems in Peer-to-Peer systems and divide these |
44 |
problems into three sub-categories. We observe that there are many problems with |
problems into three sub-categories. We realize that there are many problems and few |
45 |
either no solutions at all, or only practically unrealizable ones. |
practical solutions, and some problems have no solution at all. |
46 |
|
|
47 |
Then, we give an overview of the Fenfire system. We evaluate existing |
Then, we provide an overview of the Fenfire system. The Fenfire system is a free |
48 |
Peer-to-Peer approaches-- loosely and tightly structured overlays-- with regard |
software effort to build a location transparent, hyperstructured desktop environment. |
49 |
to Fenfire's needs. Finally, we propose simple methods to efficiently find Fenfire |
We evaluate existing Peer-to-Peer approaches-- loosely and tightly structured overlays-- with regard |
50 |
data from Peer-to-Peer network. |
to Fenfire's needs. Finally, we propose simple methods to efficiently locate Fenfire |
51 |
|
data from Peer-to-Peer networks. |
52 |
} |
} |
53 |
\tiivistelma{ |
\tiivistelma{ |
54 |
Tässä opinnäytetyössä esittelemme olemassaolevia vertaisverkkoja, algoritmeja ja |
Tässä opinnäytetyössä esittelemme olemassaolevia vertaisverkkoja, algoritmeja ja |
86 |
without any investment to centralized hardware by sharing their services and connecting to each |
without any investment to centralized hardware by sharing their services and connecting to each |
87 |
other directly. Peer-to-Peer systems can be characterized as distributed systems in which all |
other directly. Peer-to-Peer systems can be characterized as distributed systems in which all |
88 |
communication is symmetric and all participant entities have similar capabilities and responsibilities |
communication is symmetric and all participant entities have similar capabilities and responsibilities |
89 |
\cite{oram01harnessingpower}. Schollmeier \cite{schollmeier01p2pdefinition} describes Peer-to-Peer system as a system of |
\cite{oram01harnessingpower}. Schollmeier \cite{schollmeier01p2pdefinition} describes a Peer-to-Peer system as a system of |
90 |
distributed entities that share their own services. |
distributed entities that share their own services. |
91 |
Each entity, i.e., \emph{peer}, may contribute services to the overall system. The distributed |
Each entity, i.e., \emph{peer}, may contribute services to the overall system. The distributed |
92 |
and ad hoc nature of Peer-to-Peer improves scalability and avoids single points of failure. |
and ad hoc nature of Peer-to-Peer improves scalability and avoids single points of failure. |
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 system, all data is stored as blocks. |
environment. In the Fenfire system, all data is stored as blocks. |
96 |
Each block has a globally unique identifier and it can be referred, by pointer blocks. |
Each block has a globally unique identifier and it can be referred, by pointer blocks. |
97 |
Other features of the Fenfire include innovative user |
Other features of Fenfire include innovative user |
98 |
interfaces for viewing data. The applicability of Peer-to-Peer networking with Fenfire for network |
interfaces for viewing data. The applicability of Peer-to-Peer networking with Fenfire for network |
99 |
transparency is currently under investigation. |
transparency is currently under investigation. |
100 |
|
|
101 |
Three research problems are discussed in this thesis: first, finding the most efficient |
Three research problems are discussed in this thesis: First, finding the most efficient |
102 |
way to locate and fetch Fenfire data blocks from a Peer-to-Peer network, when the block's |
way to locate and fetch Fenfire data block from a Peer-to-Peer network when the block's |
103 |
identifier is given. Second, we want to find the most efficient way to locate and fetch the most |
identifier is given. Second, we want to find the most efficient way to locate and fetch the most |
104 |
recent Fenfire data block from a Peer-to-Peer network referred by a pointer. The third problem |
recent Fenfire data block from a Peer-to-Peer network referred by a pointer. The third problem |
105 |
is similar to the second problem, except we want to locate and fetch the Fenfire |
is similar to the second problem, except we want to locate and fetch the Fenfire |
106 |
data block, when date and or time range is given. |
data block when a date and or time range is given. |
107 |
|
|
108 |
In this thesis, we evaluate existing Peer-to-Peer approaches and |
In this thesis, we evaluate existing Peer-to-Peer approaches and |
109 |
evaluate them to Fenfire's needs. We start by reviewing existing Peer-to-Peer approaches, |
evaluate them, based on Fenfire's needs. We start by reviewing existing Peer-to-Peer approaches, |
110 |
algorithms and their key properties. Our insight is that despite the great amount of proposed |
algorithms and their key properties. Our insight is that, despite the great amount of proposed |
111 |
Peer-to-Peer systems, we are able to classify \emph{all} systems either to loosely or |
Peer-to-Peer systems, we are able to classify \emph{all} systems either as loosely or |
112 |
tightly structured approach. We also discuss open problems in |
tightly structured approaches. We also discuss open problems in |
113 |
Peer-to-Peer research and divide problems into three sub-categories: security, performance, and miscellaneous |
Peer-to-Peer research and divide problems into three sub-categories: security, performance, and miscellaneous |
114 |
problems. We attempt to comprehensively summarize existing algorithms and open problems in |
problems. We attempt to comprehensively summarize existing algorithms and open problems in the |
115 |
Peer-to-Peer domain. This thesis doesn't give detailed information about reviewed algorithms nor |
Peer-to-Peer domain. This thesis does not provide detailed information about reviewed algorithms nor |
116 |
open problems. More detailed information can be found from the references. |
open problems. More detailed information can be found from the references. |
117 |
|
|
118 |
Finally, we give an overview of the Fenfire project, and evaluate Peer-to-Peer approaches to Fenfire's |
Finally, we give an overview of the Fenfire project, and compare Peer-to-Peer approaches to Fenfire's |
119 |
needs. Finally, we propose simple but yet efficient methods to be used for data lookups in Peer-to-Peer |
needs. Finally, we propose simple yet efficient methods that could be used for data lookups in a Peer-to-Peer |
120 |
environment. |
environment. |
121 |
|
|
122 |
\chapter{Peer-to-Peer architectures} |
\chapter{Peer-to-Peer architectures} |
127 |
\section{Brief history and overview} |
\section{Brief history and overview} |
128 |
|
|
129 |
The Internet was originally established in the late 1960s \cite{253741}. The objective |
The Internet was originally established in the late 1960s \cite{253741}. The objective |
130 |
of the ARPANET-project was to share computers' resources among military computers |
of the ARPANET-project was to share information resources among military computers |
131 |
around the United States. The most challenging purpose of ARPANET was to integrate |
in the United States. The most challenging purpose of ARPANET was to integrate |
132 |
different kinds of existing network technologies with one common network architecture. |
different kinds of existing network technologies with one common network architecture. |
133 |
The ARPANET connected the first few hosts together not in client/server relationship, |
The ARPANET connected the first few hosts together not in client--server relationship, |
134 |
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 |
135 |
of both the Peer-to-Peer concept and the Internet \cite{oram01harnessingpower}. |
of both the Peer-to-Peer concept and the Internet \cite{oram01harnessingpower}. |
136 |
|
|
137 |
The most popular form of modern Peer-to-Peer computing is file-sharing. In this scenario, |
The most popular form of modern Peer-to-Peer computing is file-sharing. In this scenario, |
138 |
participants of Peer-to-Peer network share their file resources with other participants. |
participants of Peer-to-Peer networking share their file resources. |
139 |
This is a form of distributed file system (e.g., \cite{levy90distributedfilesystems}). |
This is form of a distributed file system (e.g., \cite{levy90distributedfilesystems}). |
140 |
A modern Peer-to-Peer system is composed of an \emph{application} level overlay network, i.e., |
A modern Peer-to-Peer system is composed of an \emph{application} level overlay network, i.e., |
141 |
network operates at the application level and forms a logical network overlay on top of physical |
the network operates at the application level and forms a logical network overlay on top of the physical |
142 |
network with regard to the ISO-OSI reference model (e.g., \cite{800902}). Figure \ref{fig:application_level} |
network with regard to the ISO-OSI reference model (e.g., \cite{800902}). Figure \ref{fig:application_level} |
143 |
illustrates the Peer-to-Peer application level overlay network. |
illustrates the Peer-to-Peer application level overlay network. |
144 |
Compared to ARPANET's Peer-to-Peer functionality, modern Peer-to-Peer systems |
Compared to ARPANET's Peer-to-Peer functionality, modern Peer-to-Peer systems |
156 |
|
|
157 |
|
|
158 |
|
|
159 |
In the development of modern Peer-to-Peer systems, lot of influences have been derived from |
In the development of modern Peer-to-Peer systems, many influences have come from |
160 |
outside of computer science. First, it is interesting to realize that chemical properties of biological cells, the Internet, ad hoc |
outside of computer science. First, it is interesting to realize that chemical properties of biological cells, the Internet, ad hoc |
161 |
Peer-to-Peer systems, and social network self-organize based on the same |
Peer-to-Peer systems, and social network self-organize based on the same |
162 |
principles \cite{albert-02-statistical, albert-00-tolerance, watts00dynamics}. Second, the |
principles \cite{albert-02-statistical, albert-00-tolerance, watts00dynamics}. Second, the |
163 |
association between social relationships among people and Peer-to-Peer overlay topology has been |
association between social relationships among people and Peer-to-Peer overlay topology has been |
164 |
studied recently \cite{watts00dynamics, kleinberg99small, nips02-Kleinberg}. |
recently studied \cite{watts00dynamics, kleinberg99small, nips02-Kleinberg}. |
165 |
This insight is motivated by Milgram \cite{milgram67smallworld}, who noticed that people are very effective in |
This insight is motivated by Milgram \cite{milgram67smallworld}, who noticed that people very effectively |
166 |
locating other people in a wide scale based on local knowledge. This phenomenon is called as |
locate other people on a wide geographic scale based on local knowledge. This phenomenon is called |
167 |
''small-world phenomenon''. As a consequence, many modern Peer-to-Peer systems |
''small-world phenomenon''. As a consequence, many modern Peer-to-Peer systems |
168 |
have applied similar techniques when constructing and maintaining the application level |
have applied similar techniques when constructing and maintaining the application level |
169 |
overlay network. |
overlay network. |
170 |
|
|
171 |
In the end, however, we observe that there are only two approaches in which all modern Peer-to-Peer |
In the end, however, we observe that there are only two approaches in modern Peer-to-Peer |
172 |
systems fall: the loosely structured approach and the tightly structured approach. |
systems: the loosely structured approach and the tightly structured approach. |
173 |
By structure, we refer to the topology of the overlay network, i.e., how the connections between participating peers are created |
By structure, we refer to the topology of the overlay network, i.e., how the connections between participating peers are created |
174 |
and maintained. In the following sections, we will discuss in more detail the properties of these approaches. |
and maintained. In the following sections, we will discuss in more detail the properties of these approaches. |
175 |
|
|
176 |
\section{Loosely structured} |
\section{Loosely structured} |
177 |
|
|
178 |
In the loosely structured approach the construction and the maintenance of the overlay is controlled |
In the loosely structured approach the construction and maintenance of the overlay is controlled |
179 |
loosely. The placement of services and the topology of overlay is random. The data lookup model in loosely structured systems is |
loosely. The placement of services and the topology of overlay is random. The data lookup model in loosely structured systems is |
180 |
not very efficient, because of unstructured properties of the overlay. Data lookup model is a combination of methods which |
not very efficient because of unstructured properties of the overlay. The data lookup model is a combination of methods which |
181 |
are used for locating data in the overlay. |
are used for locating data in the overlay. |
182 |
|
|
183 |
\subsection{Skecth of definition} |
\subsection{Proposed definition} |
184 |
|
|
185 |
In this subsection, we try to introduce a \emph{sketch} of formal definition of the loosely structured overlay. This |
In this subsection, we try to \emph{sketch out} a formal definition of the loosely structured overlay. This |
186 |
model is based on original Gnutella overlay network with power-law improvements. |
model is based on the original Gnutella overlay network with power-law improvements. Please notice that the |
187 |
|
definition proposal is not used elsewhere in this thesis. |
188 |
|
|
189 |
Let $S$ be the aggregate of all services $s$ in system. Let $P$ be the aggregate of |
Let $S$ be the aggregate of all services $s$ in the system. Let $P$ be the aggregate of |
190 |
all peers $p$ in system. Then, $\forall s \in S$, there is a provider of the service, |
all peers $p$ in the system. Then, $\forall s \in S$, there is a provider of the service, |
191 |
expressed as $p = \delta(s)$. Every $p$ has neighbor(s), named as $p_n$, which |
expressed as $p = \delta(s)$. Every $p$ has neighbor(s), named as $p_n$, which |
192 |
is $P$ = \{$p \in P: \exists neighbor$, which is randomly chosen from $P$\}. |
is $P$ = \{$p \in P: \exists neighbor$, which is randomly chosen from $P$\}. |
193 |
Summary index maintains indices of other peers, $si o= \gamma(\delta(s))$. |
The summary index maintains indices of other peers, $si o= \gamma(\delta(s))$. |
194 |
Then, $\forall$ regular peer $p$, there is a super peer, $sp$, and it has a index of |
Then, $\forall$ regular peer $p$, there is a super peer, $sp$, and it has an index of |
195 |
regular peer's content $P$ = \{$p \in P: \exists sp$, |
regular peer's content $P$ = \{$p \in P: \exists sp$, |
196 |
where $sp$ = $\delta(\gamma(\delta(s))) \wedge (p = \delta(s))$\} |
where $sp$ = $\delta(\gamma(\delta(s))) \wedge (p = \delta(s))$\} |
197 |
|
|
298 |
approach the overlay is constructed deterministically, which all participating peers have to follow; the topology of the |
approach the overlay is constructed deterministically, which all participating peers have to follow; the topology of the |
299 |
overlay and the placement of services is controlled tightly. |
overlay and the placement of services is controlled tightly. |
300 |
|
|
301 |
\subsection{Sketch of definition} |
\subsection{Proposed definition} |
302 |
|
|
303 |
In this subsection, we try to introduce a \emph{sketch} of formal definition of the tightly structured overlay, such as |
In this subsection, we try to \emph{sketch out} a formal definition of the tightly structured overlay, such as |
304 |
identifiers, identifier space and the mapping function. |
identifiers, identifier space and the mapping function. Please notice that the |
305 |
|
definition proposal is not used elsewhere in this thesis. |
306 |
|
|
307 |
Let $S$ be the aggregate of all services $s$ in the system. Let $P$ be the aggregate of |
Let $S$ be the aggregate of all services $s$ in the system. Let $P$ be the aggregate of |
308 |
all peers $p$ in system. Let $I$ be the aggregate of all identifiers $i$ in system. |
all peers $p$ in the system. Let $I$ be the aggregate of all identifiers $i$ in the system. |
309 |
Let $IS$ be the aggregate of all identifier points $ip$ in system. Then, $\forall s \in S$, |
Let $IS$ be the aggregate of all identifier points $ip$ in system. Then, $\forall s \in S$, |
310 |
there is a provider of the service, expressed as $p = \delta(s)$. Service's identifier |
there is a provider of the service, expressed as $p = \delta(s)$. Service's identifier |
311 |
is defined as $i = \iota(s)$. Coordinate point is defined as $ip = \zeta(\iota(s))$. |
is defined as $i = \iota(s)$. Coordinate point is defined as $ip = \zeta(\iota(s))$. |