-
Notifications
You must be signed in to change notification settings - Fork 0
/
chapter3.tex
28 lines (14 loc) · 3.86 KB
/
chapter3.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
\chapter{Model Description}
\section{Why we chose the simulation based approach}
As explained in Section \ref{sec:evaluationmethods}, different methods to evaluate darknet systems exist, each suitable for different usecases. To analyse a routing algorythm, its performance, strengths, and weaknesses, larger scale networks are neccessary. For this, especially while dealing with changeing algorythms and parameters, the simulation approch is most appropriate since it has the best tradeoff of flexibility and scalabiliy. However, this method is up to now underrepresented. To change this we decided to develop an easy to use and extend model and implement it in an wideley adopted network simulation framework as OMNet++. \todo{how to prove this statement?} This gives the posibility to easily estimate the behavior of a routing algorythm in a darknet while maintain comparability of the results.
\section{Node based with fixed neighbor set and add-hoc anonymity (static)}
Virtually every P2P client supports a basic set of capabilities. These are connecting to other clients, storing and recieving of information and some kind of searching. Depending on the network searching for files or other nodes can be different or the same. Naturally these reqests can or even have to be responded to.
So on an abstract level, a P2P node has to be able to connect to other nodes, make requests and send an response to a received request. The basic model used in this work does not distinguesh between the different request types since in most cases it makes no difference for routing algorithms. This is the same for darknet nodes. Only the peers a darknet node connects to or accepts connections and messages from of course are limited.
In practice transfering the real world trust relation to the darknet and the distribution of the current addresses of onces peers are two of the hardest tasks. There are some fundamentaly different posibilities to solve this depending on the overall design. But since these tasks are better analyzable than routing algorythms our model excludes these topics and concentrates on routing makeing it easyer to evaluate this seperate problem.
Additionally a darknet client has to be abled to forward reqeuests to other nodes. In darknets the hop-anonymity is typically achieved by modifying forwarded messages as to come from one self. Responses to forwarded requests have to be modified and forwarded respectively to the origin the reqeust was received from.
This simple model is static, all nodes are always online and a failing node is not possible. It is very simple and scalable because only a minimal overhead is needed. But it is not very realisitc since nodes are not online all the time and can fail on one way or another.
\section{Churn model extension with bootstrapping and offline detection (dynamic)}
The earlier implemented static model of all nodes being online during the complete simulation run is very easy and gives already chance to investigate large parts of a darknets behavior. However, it is not very realistic.
To take into account the posibilitie of nodes shutting down, having connection problems or failing otherwise, the model is extended by a churn based lifetime model. It gives the nodes a probabilistic lifetime, so not all nodes are online in the begining, but they bootstrap into the network. They have to establish a connection to their peers.
Nodes online/offline state can change during the simulation, so the peers of this node have to be informed. As this simulator concentrates only on the routing algorythm we are not concerned how a node would detect a change of state of one of its peers. The simulator notifies all peers of a node of the change. In the real world something like an TCP-like acknowledgment method would be used. \todo{change code: model it by offline/online notification from simulation environment}
\section{ (??)Extension of the model by example}