460 |
distance from $p_j$ to $p_i$). Pastry's \cite{rowston01pastry} distance function supports |
distance from $p_j$ to $p_i$). Pastry's \cite{rowston01pastry} distance function supports |
461 |
symmetry, but does not support unidirection. According to \cite{balakrishanarticle03lookupp2p}, because |
symmetry, but does not support unidirection. According to \cite{balakrishanarticle03lookupp2p}, because |
462 |
of XOR-metric, Kademlia's distance function is both unidirectional and symmetric. Moreover, Kademlia's \cite{maymounkov02kademlia} |
of XOR-metric, Kademlia's distance function is both unidirectional and symmetric. Moreover, Kademlia's \cite{maymounkov02kademlia} |
463 |
XOR-based metric doesn't need stabilization (like in Chord \cite{stoica01chord}) and backup links |
XOR-based metric does not need stabilization (like in Chord \cite{stoica01chord}) and backup links |
464 |
(like in Pastry \cite{rowston01pastry}). |
(like in Pastry \cite{rowston01pastry}). |
465 |
However, in all of the above schemes, each hop in the overlay shortens the distance between |
However, in all of the above schemes, each hop in the overlay shortens the distance between |
466 |
current peer working with the data lookup and the key that was looked up in the identifier space. |
current peer working with the data lookup and the key that was looked up in the identifier space. |
484 |
|
|
485 |
Balakrishnan et al. \cite{balakrishanarticle03lookupp2p} have listed four requirements |
Balakrishnan et al. \cite{balakrishanarticle03lookupp2p} have listed four requirements |
486 |
for tightly structured overlays\footnote{Authors use the term 'DHT' in their text, but in this context |
for tightly structured overlays\footnote{Authors use the term 'DHT' in their text, but in this context |
487 |
it doesn't matter as they list \emph{general} properties of tightly structured overlays.} that have to be addressed in order |
it does not matter as they list \emph{general} properties of tightly structured overlays.} that have to be addressed in order |
488 |
to perform efficient data lookups in tightly structured overlays. |
to perform efficient data lookups in tightly structured overlays. |
489 |
First, mapping of keys to peers must be done in a load-balanced |
First, mapping of keys to peers must be done in a load-balanced |
490 |
way. Second, the overlay must be able to forward a data lookup for a |
way. Second, the overlay must be able to forward a data lookup for a |
498 |
two requirements about the nature of reference resolution. First, there should be a general-purpose |
two requirements about the nature of reference resolution. First, there should be a general-purpose |
499 |
and application-indepedent substrate for reference resolution. Second, the references themselves |
and application-indepedent substrate for reference resolution. Second, the references themselves |
500 |
should be unstructured and semantic-free. In this text, we define unstructured reference |
should be unstructured and semantic-free. In this text, we define unstructured reference |
501 |
as a reference that doesn't expose the target in any way and semantic-free reference as a reference |
as a reference that does not expose the target in any way and semantic-free reference as a reference |
502 |
that there are no directives in the reference itself which would expose how the reference should be processed. |
that there are no directives in the reference itself which would expose how the reference should be processed. |
503 |
|
|
504 |
|
|
882 |
|
|
883 |
The Spam generating attack \cite{naor03simpledht} is another known attack model against a Peer-to-Peer system. In the Spam |
The Spam generating attack \cite{naor03simpledht} is another known attack model against a Peer-to-Peer system. In the Spam |
884 |
attack, a hostile or faulty peer may produce false data information, or refuses to (or is not able to) reply to requests. |
attack, a hostile or faulty peer may produce false data information, or refuses to (or is not able to) reply to requests. |
885 |
Naor et al. \cite{naor03simpledht} have proposed a partial solution against Spam attack in a \emph{faulty} peer environment (not hostile). |
Naor et al. \cite{naor03simpledht} have proposed a partial solution against this Spam attack in a \emph{faulty} peer environment (not hostile). |
886 |
|
|
887 |
Overloading of targeted peers is a form of Distributed Denial of Service attack (DDoS) (see, e.g., \cite{372148}). For instance, |
Overloading of targeted peers is a form of Distributed Denial of Service attack (DDoS) (see, e.g., \cite{372148}). For instance, |
888 |
a hostile entity can attempt to burden specific peers with garbage network packets. As a consequence, peers may act incorrectly or |
a hostile entity can attempt to burden specific peers with garbage network packets. As a consequence, peers may act incorrectly or |
889 |
stop working. Daswani et al. \cite{daswani02queryflooddos} suggest efficient load balancing |
stop working. Daswani et al. \cite{daswani02queryflooddos} suggest efficient load balancing |
890 |
policies for Peer-to-Peer system in order to prevent massive system failures. They suggest a traffic model |
policies for Peer-to-Peer systems in order to prevent massive system failures. They suggest a traffic model |
891 |
that can be used to understand the effects of DDoS attacks. Sit et al. \cite{sit02securitycons} |
that can be used to understand the effects of DDoS attacks. Sit et al. \cite{sit02securitycons} |
892 |
suggest that identifier assignment algorithm for peers would assign identifier with respect to network topology |
suggest that an identifier assignment algorithm would assign an identifier with respect to network topology |
893 |
and that replicas of data should be located physically to different locations. |
and that replicas of data should be relocated physically to different locations. |
894 |
|
|
895 |
|
|
896 |
\subsection{Trust management, data authenticity and integrity} |
\subsection{Trust management, data authenticity and integrity} |
897 |
|
|
898 |
According to \cite{aberer01trust}, mutual trust ''...allows agents to cooperate in a game-theoretic situation that corresponds |
According to \cite{aberer01trust}, mutual trust, ''...allows agents to cooperate in a game-theoretic situation that corresponds |
899 |
to the repeated prisoners dilemma and leads in the long term to an increased aggregated utility for the participating agents''. |
to the repeated prisoners dilemma and leads in the long term to an increased aggregated utility for the participating agents''. |
900 |
The authors of \cite{aberer01trust} define \emph{trust management} as a mechanism that allows one to establish mutual trust. Furthermore, \emph{reputation} is a measure |
The authors of \cite{aberer01trust} define \emph{trust management} as a mechanism that allows one to establish mutual trust. Furthermore, \emph{reputation} is a measure |
901 |
that is derived from knowledge on interactions in the past \cite{aberer01trust}. In this subsection, we discuss mechanisms to maintain |
that is derived from knowledge on interactions in the past \cite{aberer01trust}. In this subsection, we briefly discuss mechanisms to maintain |
902 |
trust in Peer-to-Peer systems. |
trust in Peer-to-Peer systems. |
903 |
|
|
904 |
Trust in Peer-to-Peer systems is based on \emph{reputation}. Little research has been done on the reputation models in Peer-to-Peer |
Currently, most trust mechanisms are based on \emph{reputation}. Some research has been done on the reputation models in Peer-to-Peer |
905 |
systems, such as \cite{aberer01trust}, \cite{cornelli02reputableservents}. In \cite{aberer01trust}, authors present a scalable |
systems, such as \cite{aberer01trust, cornelli02reputableservents}. In \cite{aberer01trust}, the authors present a scalable |
906 |
trust management model, which can be used in Peer-to-Peer enviroment. Authors in \cite{cornelli02reputableservents} |
trust management model, which can be used in a Peer-to-Peer enviroment. The authors in \cite{cornelli02reputableservents} |
907 |
suggest techniques to keep track and share information about the reputation of a peer with others peers. |
suggest techniques to keep track of and share reputation information regarding a peer with others peers. |
908 |
|
|
909 |
Quite recently, widely used Public Key Infrastructure (PKI) has been deployed in distributed |
Quite recently, the widely used Public Key Infrastructure (PKI) has been deployed in distributed |
910 |
systems \cite{rivest96sdsi}, \cite{spkiworkinggroup}. PKI is a reliable technology for securing |
systems \cite{rivest96sdsi}, \cite{spkiworkinggroup}. PKI is a reliable technology for securing |
911 |
data in computing systems, such as the Internet. However, in Peer-to-Peer |
data in computing systems such as the Internet. However, in Peer-to-Peer |
912 |
networks, the problem of key-based security mechanism may be the revocation of keys and the |
networks, the problem of key-based security mechanisms may be the revocation of keys and the |
913 |
distribution of new keys in a hostile environment \cite{KohMau99}. |
distribution of new keys in a hostile environment \cite{KohMau99}. |
914 |
|
|
915 |
ConChord \cite{ajmani02conchord} is the first Peer-to-Peer system which has a support for PKI based |
ConChord \cite{ajmani02conchord} is the first Peer-to-Peer system which supports the PKI based |
916 |
security infrastructure. Still, however, ConChord \cite{ajmani02conchord} is in early phase of development and lacks |
security infrastructure. Still, however, ConChord \cite{ajmani02conchord} is in early phase of development and lacks |
917 |
important features of PKI to be fully usable yet. Furthermore, the hierarchy of Simple Distributed Security Infrastructure |
important features of PKI to be fully usable. Furthermore, the hierarchy of the Simple Distributed Security Infrastructure |
918 |
(SDSI) \cite{rivest96sdsi} and Simple Public Key Infrastructure (SPKI) \cite{spkiworkinggroup} may be a problem for |
(SDSI) \cite{rivest96sdsi} and the Simple Public Key Infrastructure (SPKI) \cite{spkiworkinggroup} may be a problem for |
919 |
Peer-to-Peer systems, in which hierarchy is intentionally missing. |
Peer-to-Peer systems, in which hierarchy is intentionally missing. |
920 |
|
|
921 |
For data integrity, on the other hand, there are working techniques. Cryptographic content hashes |
On the other hand for data integrity, there are working techniques. Cryptographic content hashes |
922 |
\cite{fips-sha-1}, their variations \cite{merkle87hashtree} and implementation techniques \cite{mohr02thex} |
\cite{fips-sha-1}, including their variations \cite{merkle87hashtree} and implementation techniques \cite{mohr02thex} |
923 |
are efficient and reliable methods for identifying the integrity of data in Peer-to-Peer systems. |
are efficient and reliable methods for identifying the integrity of data in Peer-to-Peer systems. |
924 |
|
|
925 |
\subsection{Anonymity} |
\subsection{Anonymity} |
926 |
|
|
927 |
According to \cite{dingledine00free}, there exist several kinds of anonymity: author-anonymity, |
According to \cite{dingledine00free}, there exists several kinds of anonymity: author-anonymity, |
928 |
publisher-anonymity, reader-anonymity, peer-anonymity and query-ano-nymity. Author-anonymity is a form |
publisher-anonymity, reader-anonymity, peer-anonymity and query-ano-nymity. Author-anonymity is a form |
929 |
of anonymity in which no one can link author (who created the document) to a document. |
of anonymity in which no one can link the document to its author. |
930 |
Publisher-anonymity means that no one is able to determine the publisher (who published the document into |
Publisher-anonymity means that no one is able to determine the document to its publisher. |
931 |
the system) of a document. Reader-anonymity means that a document cannot be linked to its readers. |
Reader-anonymity means that a document cannot be linked to its readers. |
932 |
With peer-anonymity, no one is able to determine the peer, where the document was originally published. |
With peer-anonymity, no one is able to determine the peer, that originally was published the document. |
933 |
Document-anonymity means that a peer doesn't know which data it is currently hosting. Finally, query-anonymity is a form |
Document-anonymity means that a peer does not know which data it is currently hosting. Finally, query-anonymity is a form |
934 |
of document-anonymity; when other peers perform data lookups, a peer doesn't know which data it serves |
of document-anonymity: when other peers perform data lookups, a peer does not know which local data is searched by |
935 |
to the data lookup originators. As the authors of \cite{dingledine00free} cite, some forms of anonymity |
the data lookup originators. As the authors of \cite{dingledine00free} cite, some forms of anonymity |
936 |
may imply each other and possible issues raised by this property is one area of future work. |
may imply each other. Possible issues raised by this property is one area of future work. |
937 |
|
|
938 |
Obviously, existence of several types of anonymity often conflicts with other key properties of |
Obviously, the existence of several types of anonymity often conflicts with other key properties of |
939 |
Peer-to-Peer systems. Let us consider anonymity and efficient data lookup. In efficient data lookup, we must know |
Peer-to-Peer systems. For example, let us consider anonymity and efficient data lookup. In an efficient data lookup, we must know the |
940 |
the peers responsible for given data. Of course, when we know the peers responsible |
the peers responsible for any given data. Of course, when we know the peers responsible |
941 |
for the data, the anonymity of peer is lost. Fortunately, there are partial solutions to these kinds of |
for the data, the anonymity of a peer is lost. Fortunately, there are partial solutions to these kinds of |
942 |
situations, such as pseudonymity which is a partial form of anonymity \cite{daswani03openproblems}. |
situations, such as pseudonymity which is a partial form of anonymity \cite{daswani03openproblems}. |
943 |
For instance, pseudonymity can be used for addressing peer-anonymity by providing anonymous-like identifiers to |
For instance, pseudonymity can be used for addressing peer-anonymity by providing anonymous-like identifiers to |
944 |
peers (e.g., peer identifiers of a tightly structured system). |
peers (e.g., peer identifiers of a tightly structured system). |
1190 |
|
|
1191 |
In the random walk approach \cite{lv02searchreplication}, a peer forwards query to a |
In the random walk approach \cite{lv02searchreplication}, a peer forwards query to a |
1192 |
randomly selected neighbor. The basic random walk approach |
randomly selected neighbor. The basic random walk approach |
1193 |
has a poor response time but it doesn't generate as much network traffic as |
has a poor response time but it does not generate as much network traffic as |
1194 |
the original BFS. As suggested in \cite{lv02searchreplication}, the |
the original BFS. As suggested in \cite{lv02searchreplication}, the |
1195 |
random walk approach can be made more effective by introducing |
random walk approach can be made more effective by introducing |
1196 |
multiple simultaneously working ''walkers''. |
multiple simultaneously working ''walkers''. |
1234 |
joseph02p2players}, which use metadata to implement search methods. The feasibility of implementing additional |
joseph02p2players}, which use metadata to implement search methods. The feasibility of implementing additional |
1235 |
search layer on top of the network layer is questionable, especially if the search layer and the network |
search layer on top of the network layer is questionable, especially if the search layer and the network |
1236 |
layer have different assumptions about the participating peers (e.g., the network layer supports heterogeneity |
layer have different assumptions about the participating peers (e.g., the network layer supports heterogeneity |
1237 |
of peers, but the search layer doesn't). Andrzejak et al. propose range queries \cite{andrzejak02rangequeries} |
of peers, but the search layer does not). Andrzejak et al. propose range queries \cite{andrzejak02rangequeries} |
1238 |
to be used with tightly structured overlays. In this technique, it is feasible to perform data lookups |
to be used with tightly structured overlays. In this technique, it is feasible to perform data lookups |
1239 |
using ranges of keys thereby covering larger amount of possible data items. Currently their prototype |
using ranges of keys thereby covering larger amount of possible data items. Currently their prototype |
1240 |
is designed for the CAN system \cite{ratnasamy01can}. |
is designed for the CAN system \cite{ratnasamy01can}. |
1784 |
In chapter 2, we discussed the main differences between the loosely and the tightly structured |
In chapter 2, we discussed the main differences between the loosely and the tightly structured |
1785 |
approach. As stated, the most significant difference is that the tightly structured |
approach. As stated, the most significant difference is that the tightly structured |
1786 |
approach has at least poly-logarithmical properties in all internal operations, while the loosely |
approach has at least poly-logarithmical properties in all internal operations, while the loosely |
1787 |
structured approach doesn't always have even linear properties. Furthermore, the |
structured approach does not always have even linear properties. Furthermore, the |
1788 |
data lookup model of the tightly structured overlay scales much better than in loosely |
data lookup model of the tightly structured overlay scales much better than in loosely |
1789 |
structured overlays; the tightly structured overlay supports global data lookups |
structured overlays; the tightly structured overlay supports global data lookups |
1790 |
in the overlay, whereas the data lookup model of the loosely structured approach |
in the overlay, whereas the data lookup model of the loosely structured approach |
1803 |
tolerance in presence of system flux, non-optimal distance functions in identifier space, |
tolerance in presence of system flux, non-optimal distance functions in identifier space, |
1804 |
proximity routing, hostile entities and flexible search \cite{balakrishanarticle03lookupp2p}. |
proximity routing, hostile entities and flexible search \cite{balakrishanarticle03lookupp2p}. |
1805 |
Additionally, there is only little real world experiments with tightly structured systems |
Additionally, there is only little real world experiments with tightly structured systems |
1806 |
(e.g., \cite{overneturl, edonkey2kurl}). Therefore, we can't say for sure, how well these |
(e.g., \cite{overneturl, edonkey2kurl}). Therefore, we cannot say for sure, how well these |
1807 |
systems would perform in real Peer-to-Peer environment. However, we believe that these issues will be |
systems would perform in real Peer-to-Peer environment. However, we believe that these issues will be |
1808 |
solved in the near future, since there is a strong and wide research community towards tightly structured |
solved in the near future, since there is a strong and wide research community towards tightly structured |
1809 |
overlays \cite{projectirisurl}. |
overlays \cite{projectirisurl}. |
1928 |
and after a network disconnection, user wants to verify \emph{off line} the |
and after a network disconnection, user wants to verify \emph{off line} the |
1929 |
authenticity of data. Finally, if a data lookup is performed by a user, but there is no reply |
authenticity of data. Finally, if a data lookup is performed by a user, but there is no reply |
1930 |
from the Fenfire system, how are we able to know if this was a Spam attack \cite{naor03simpledht}, |
from the Fenfire system, how are we able to know if this was a Spam attack \cite{naor03simpledht}, |
1931 |
or the data really doesn't exist in the system ? |
or the data really does not exist in the system ? |
1932 |
These problems, however, are not only limited to the Fenfire system as it |
These problems, however, are not only limited to the Fenfire system as it |
1933 |
concerns all Peer-to-Peer computer systems. |
concerns all Peer-to-Peer computer systems. |
1934 |
|
|