Browse Source

Add section about peer to peer networks

Carsten Porth 5 years ago
parent
commit
47de1a2eea

+ 57 - 0
thesis/bib/bibliography.bib

@@ -131,4 +131,61 @@
   url    = {https://code.fb.com/web/rapid-release-at-massive-scale/},
 }
 
+@Misc{moltchanov2014p2p-networks,
+  author = {Dmitri Moltchanov},
+  title  = {Selected DHT algorithms: Chord and Pastry},
+  month  = oct,
+  year   = {2014},
+  url    = {https://www.cs.tut.fi/kurssit/ELT-53206/lecture03.pdf},
+}
+
+@Article{stoica2003chord,
+  author    = {Stoica, Ion and Morris, Robert and Liben-Nowell, David and Karger, David R and Kaashoek, M Frans and Dabek, Frank and Balakrishnan, Hari},
+  title     = {Chord: a scalable peer-to-peer lookup protocol for internet applications},
+  journal   = {IEEE/ACM Transactions on Networking (TON)},
+  year      = {2003},
+  volume    = {11},
+  number    = {1},
+  pages     = {17--32},
+  publisher = {IEEE Press},
+}
+
+@Book{ratnasamy2001scalable,
+  title     = {A scalable content-addressable network},
+  publisher = {ACM},
+  year      = {2001},
+  author    = {Ratnasamy, Sylvia and Francis, Paul and Handley, Mark and Karp, Richard and Shenker, Scott},
+  volume    = {31},
+  number    = {4},
+}
+
+@InProceedings{rowstron2001pastry,
+  author       = {Rowstron, Antony and Druschel, Peter},
+  title        = {Pastry: Scalable, decentralized object location, and routing for large-scale peer-to-peer systems},
+  booktitle    = {IFIP/ACM International Conference on Distributed Systems Platforms and Open Distributed Processing},
+  year         = {2001},
+  pages        = {329--350},
+  organization = {Springer},
+}
+
+@Article{zhao2004tapestry,
+  author    = {Zhao, Ben Y and Huang, Ling and Stribling, Jeremy and Rhea, Sean C and Joseph, Anthony D and Kubiatowicz, John D},
+  title     = {Tapestry: A resilient global-scale overlay for service deployment},
+  journal   = {IEEE Journal on selected areas in communications},
+  year      = {2004},
+  volume    = {22},
+  number    = {1},
+  pages     = {41--53},
+  publisher = {IEEE},
+}
+
+@InProceedings{maymounkov2002kademlia,
+  author       = {Maymounkov, Petar and Mazieres, David},
+  title        = {Kademlia: A peer-to-peer information system based on the xor metric},
+  booktitle    = {International Workshop on Peer-to-Peer Systems},
+  year         = {2002},
+  pages        = {53--65},
+  organization = {Springer},
+}
+
 @Comment{jabref-meta: databaseType:bibtex;}

+ 34 - 0
thesis/content/02-background/p2p.tex

@@ -0,0 +1,34 @@
+The special feature of peer to peer (P2P) System is that each participant has the role of both a server and a client. The participants are therefore equal with each other and provide each other with services, which is reflected in the naming. P2P networks are usually characterized as overlay networks over the Internet. With regard to the structure of the overlay network, a distinction is made between structured and unstructured networks. The P2P principle became particularly well known in 1999 with Napster. With the file-sharing application Napster, it was possible to exchange (mainly copyrighted) songs among the participants without having to offer them from a central server.
+
+Popular applications of P2P networks are file sharing (e.g. BitTorrent), instant messaging (e.g. Skype) and blockchain technology (e.g. Bitcoin).
+
+P2P networks are particularly characterized by their independence. There are no control points and not necessarily a fixed infrastructure. This also has a positive effect on operating costs. In addition, P2P networks are self-organized and self-scaling, as each additional user contributes its resources.
+
+However, there are also some challenges in P2P networks that need to be solved for successful operation. These include finding peers in the network (peer discovery) and finding resources (resource discovery). Especially in file sharing networks, solutions have to be found how to motivate users to upload data and not only use the download one-sidedly. The replication of data and the associated availability must also be taken into account in solutions. Another critical issue is the Internet connection of individual participants, which may not be powerful or permanent.
+
+\subsection{Unstructured P2P}
+\label{sec:unstructured-p2p}
+In unstructured P2P networks there are no specifications for the overlay network, so the peers are only loosely connected to each other. Due to the loose structures, the failure of one peer has no great influence on the function of the rest of the network. Another advantage of the unstructured topology is the lower vulnerability.
+
+While such loose structures are easy to create, the performance of the entire network suffers. A multicast request is sent to all connected peers, who forward the request again and flood the entire network. If a peer can respond to the request, it responds by the same route that the request used to reach it. Each request has a validity time (time to live, TTL) before it is discarded. Popular files with wide distribution can thus be found quickly. However, rare files are difficult to find because the TTL may have been reached before. A flooding search is not efficient and provides a large amount of signaling traffic. An example for this approach is Gnutella.
+
+In order to counteract the problem of inefficient and complicated searching for resources, central points are created in other network implementations where addresses of resources can be specifically requested. These include Napster, FastTrack and BitTorrent. Figure \ref{fig:unstructured-p2p} shows a comparison of the search process in the respective networks.
+
+\begin{figure}[h!]
+	\centering
+	\includegraphics[width=0.85\textwidth]{unstructured-p2p-networks}
+	\caption{Search process in unstructured P2P systems \cite{moltchanov2014p2p-networks}}
+	\label{fig:unstructured-p2p}
+\end{figure}
+
+\subsection{Structured P2P}
+\label{sec:structured-p2p}
+By defining a certain structure, for example a circle or a tree, search processes in the overlay network can be designed efficiently and deterministically. In such structured networks, compliance with the structure is strictly controlled. Routing algorithms determine how a node is arranged in the overlay network. The performance of the entire network depends directly on how the nodes are arranged and how quickly changes (joining and leaving nodes) are responded to.
+
+Usually the routing algorithms are based on a Distributed Hash Table (DHT). Hash tables are data structures in which key-value pairs are stored, whereby the key must be unique. The corresponding value can then be queried via the key. The keys are ids, which are generated with a hash function (e.g. SHA-1). For the addresses of the nodes and for the files, ids are created equally, so that they lie in the same address space. To find a file, it is searched at the node with the same or the next larger id. If it is not available there, it is not existing on the network.
+
+To join a network, either one or more peers must be known as the entry point or this information must be obtained from a bootstrap server. When entering a structured network, the joining node is assigned a unique id and thus positions itself in the structure. The routing tables of the nodes affected by the structural change must then be updated.
+
+When leaving a network, this happens either gracefully and all affected nodes are informed to update their routing tables, or unexpectedly. Therefore, nodes must always check the correctness of their routing tables.
+
+Known routing algorithms that use DHTs include Chrod\cite{stoica2003chord}, CAN\cite{ratnasamy2001scalable}, Pastry\cite{rowstron2001pastry}, Tapestry\cite{zhao2004tapestry} and Kademlia\cite{maymounkov2002kademlia}. Among other things, they differ in their distinct structure and the hash functions used.

BIN
thesis/graphics/unstructured-p2p-networks.png