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: ...@@ -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. 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. 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 ## Definitions
**Notations:** **Notations:**
...@@ -52,10 +51,8 @@ This means that if there is a need to transmit multiple files and engage in a ch ...@@ -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 - Response (e.g., FOUND): Query | nodes | mobileNodes
- Message: Version | isMobile | Request or Response - Message: Version | isMobile | Request or Response
## Algorithms comparison ## Algorithms comparison
## Chord ## 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. 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: ...@@ -81,9 +78,9 @@ The number of hops to get a value is:
$\log(N)$ $\log(N)$
Sources: 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). 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).
* 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). 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).
* 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). 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 ## Pastry
...@@ -106,8 +103,7 @@ $\log_{2}(N)$ ...@@ -106,8 +103,7 @@ $\log_{2}(N)$
where $b$ is generally $2$. where $b$ is generally $2$.
Sources: 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 ## Kademlia
...@@ -158,15 +154,12 @@ Subsequently, a "FIND" request is sent every ten minutes to keep the routing tab ...@@ -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. The primary class responsible for this process in the codebase is `SwarmManager`, and the bootstrapping phase is handled within the conversation's section.
## Architecture ## Architecture
![«Image: Global architecture»](images/global-architecture.png "Global architecture") ![«Image: Global architecture»](images/global-architecture.png "Global architecture")
## Performance analysis ## Performance analysis
## Tools ## 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. 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` ...@@ -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. * Calculating the iterations needed to transmit a message to all nodes.
* Measuring message reception times. * Measuring message reception times.
## Results ## Results
![«Image: Number of iterations to send a message»](images/iteration-send-message.jpg "Number of iterations to send a message") ![«Image: Number of iterations to send a message»](images/iteration-send-message.jpg "Number of iterations to send a message")
...@@ -194,7 +186,6 @@ While the major focus is on unit tests, for performance analysis, `swarm_spread` ...@@ -194,7 +186,6 @@ 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") ![«Image: Routing table size»](images/nodes-table-10000.jpg "Routing table size")
## Future work ## Future work
1. Dynamic bucket size limit to get different bucket sizes depending on the size of the routing table. 1. Dynamic bucket size limit to get different bucket sizes depending on the size of the routing table.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment