Skip to content
Snippets Groups Projects
Commit 15684e1c authored by ovari's avatar ovari Committed by Adrien Béraud
Browse files

developer/jami-concepts/drt.md: cleanup

Follow up to patch https://review.jami.net/c/jami-docs/+/30006

Change-Id: I21de3c98c3080104de776a58dcd8f5156931c624
parent bc7dce66
No related branches found
No related tags found
No related merge requests found
......@@ -23,7 +23,6 @@ Several solutions have been proposed to achieve these goals:
Additionally, to optimize the number of sockets, a socket will be allocated by a **ConnectionManager** to enable multiplexing sockets with a specific hash.
This means that if there is a need to transmit multiple files and engage in a chat with someone, only one socket will be utilized.
## Definitions
**Notations:**
......@@ -52,10 +51,8 @@ This means that if there is a need to transmit multiple files and engage in a ch
- Response (e.g., FOUND): Query | nodes | mobileNodes
- Message: Version | isMobile | Request or Response
## Algorithms comparison
## Chord
In a [Chord network](https://en.wikipedia.org/wiki/Chord_(peer-to-peer)), each node is associated with a unique key computed using either [SHA-1](https://en.wikipedia.org/wiki/SHA-1) or [MD5](https://en.wikipedia.org/wiki/MD5) hash functions.
......@@ -81,9 +78,9 @@ The number of hops to get a value is:
$\log(N)$
Sources:
* Liben-Nowell, David; Balakrishnan, H.; Karger, David R. “Analysis of the evolution of peer-to-peer systems.” *ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing* (2002).
* Liben-Nowell, David, Balakrishnan, H.; Karger, David R. “Observations on the Dynamic Evolution of Peer-to-Peer Networks.” International Workshop on Peer-to-Peer Systems (2002).
* Stoica, Ion; Morris, Robert Tappan; Karger, David R; Kaashoek, M. Frans; Balakrishnan, H. “Chord: A scalable peer-to-peer lookup service for internet applications.” *Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication* (2001).
1. Liben-Nowell, David; Balakrishnan, H.; Karger, David R. “Analysis of the evolution of peer-to-peer systems.” *ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing* (2002).
2. Liben-Nowell, David, Balakrishnan, H.; Karger, David R. “Observations on the Dynamic Evolution of Peer-to-Peer Networks.” International Workshop on Peer-to-Peer Systems (2002).
3. Stoica, Ion; Morris, Robert Tappan; Karger, David R; Kaashoek, M. Frans; Balakrishnan, H. “Chord: A scalable peer-to-peer lookup service for internet applications.” *Conference on Applications, Technologies, Architectures, and Protocols for Computer Communication* (2001).
## Pastry
......@@ -106,8 +103,7 @@ $\log_{2}(N)$
where $b$ is generally $2$.
Sources:
* Tirée de Castro, Miguel; Druschel, Peter; Hu, Y. Charlie; and Rowstron, Antony Ian Taylor. “Exploiting network proximity in peer-to-peer overlay networks.” (2002).
1. Tirée de Castro, Miguel; Druschel, Peter; Hu, Y. Charlie; and Rowstron, Antony Ian Taylor. “Exploiting network proximity in peer-to-peer overlay networks.” (2002).
## Kademlia
......@@ -158,15 +154,12 @@ Subsequently, a "FIND" request is sent every ten minutes to keep the routing tab
The primary class responsible for this process in the codebase is `SwarmManager`, and the bootstrapping phase is handled within the conversation's section.
## Architecture
![«Image: Global architecture»](images/global-architecture.png "Global architecture")
## Performance analysis
## Tools
To validate the implementation and performance of the DRT component, several tools have been developed and are located in `daemon/tests/unitTest/swarm`, including `swarm_spread`, `bootstrap`, and more.
......@@ -185,7 +178,6 @@ While the major focus is on unit tests, for performance analysis, `swarm_spread`
* Calculating the iterations needed to transmit a message to all nodes.
* Measuring message reception times.
## Results
![«Image: Number of iterations to send a message»](images/iteration-send-message.jpg "Number of iterations to send a message")
......@@ -194,8 +186,7 @@ While the major focus is on unit tests, for performance analysis, `swarm_spread`
![«Image: Routing table size»](images/nodes-table-10000.jpg "Routing table size")
## Future work
1. Dynamic bucket size limit to get different bucket sizes depending on the size of the routing table.
2. Declining some connections to speed up the transmission a bit.
2. Declining some connections to speed up the transmission a bit.
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment