Updated docs

This commit is contained in:
Mark Qvist 2021-05-20 17:18:38 +02:00
parent db527b6759
commit bf410e006f
12 changed files with 84 additions and 53 deletions

View File

@ -32,6 +32,9 @@ For more info, see [unsigned.io/projects/reticulum](https://unsigned.io/projects
- Reticulum can handle a few bytes of data or files of many gigabytes - Reticulum can handle a few bytes of data or files of many gigabytes
- Sequencing, transfer coordination and checksumming is automatic - Sequencing, transfer coordination and checksumming is automatic
- The API is very easy to use, and provides transfer progress - The API is very easy to use, and provides transfer progress
- Efficient link establishment
- Total bandwidth cost of setting up a link is only 409 bytes
- Low cost of keeping links open at only 0.62 bits per second
## Where can Reticulum be used? ## Where can Reticulum be used?
Over practically any medium that can support at least a half-duplex channel with 1.000 bits per second throughput, and an MTU of 500 bytes. Data radios, modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes, ad-hoc WiFi, free-space optical links and similar systems are all examples of the types of interfaces Reticulum was designed for. Over practically any medium that can support at least a half-duplex channel with 1.000 bits per second throughput, and an MTU of 500 bytes. Data radios, modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes, ad-hoc WiFi, free-space optical links and similar systems are all examples of the types of interfaces Reticulum was designed for.

View File

@ -10,9 +10,9 @@ the development of Reticulum itself.
whatis whatis
gettingstartedfast gettingstartedfast
examples
reference
understanding understanding
reference
examples
Indices and Tables Indices and Tables

View File

@ -354,11 +354,10 @@ recap what purposes this methodology serves. We first ensure that the node answe
is actually the one we want to communicate with, and not a malicious actor pretending to be so. is actually the one we want to communicate with, and not a malicious actor pretending to be so.
At the same time we establish an efficient encrypted channel. The setup of this is relatively cheap in At the same time we establish an efficient encrypted channel. The setup of this is relatively cheap in
terms of bandwidth, so it can be used just for a short exchange, and then recreated as needed, which will terms of bandwidth, so it can be used just for a short exchange, and then recreated as needed, which will
also rotate encryption keys, but the link can also be kept alive for longer periods of time, if this is also rotate encryption keys. The link can also be kept alive for longer periods of time, if this is
more suitable to the application. The amount of bandwidth used on keeping a link open is practically more suitable to the application. The procedure also inserts the *link id* , a hash calculated from the link request packet, into the memory of forwarding nodes, which means that the communicating nodes can thereafter reach each other simply by referring to this *link id*.
negligible. The procedure also inserts the *link id* , a hash calculated from the link request packet,
into the memory of forwarding nodes, which means that the communicating nodes can thereafter reach each The total bandwidth cost of setting up a link is 409 bytes (more info in the :ref:`Binary Packet Format<understanding-packetformat>` section). The amount of bandwidth used on keeping a link open is practically negligible, at 0.62 bits per second. Even on a slow 1200 bits per second packet radio channel, 100 concurrent links will still leave 95% channel capacity for actual data.
other simply by referring to this *link id*.
Pathfinding in Detail Pathfinding in Detail
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
@ -577,6 +576,8 @@ the light of Reticulums goal of equal access, doing so would need to be the subj
investigation of the consequences first. investigation of the consequences first.
.. _understanding-packetformat:
Binary Packet Format Binary Packet Format
-------------------- --------------------
@ -672,8 +673,8 @@ Binary Packet Format
wire size including all fields. wire size including all fields.
- Path Request : 33 bytes - Path Request : 33 bytes
- Announce : 323 bytes - Announce : 151 bytes
- Link Request : 141 bytes - Link Request : 182 bytes
- Link Proof : 205 bytes - Link Proof : 141 bytes
- Link RTT packet : 86 bytes - Link RTT packet : 86 bytes
- Link keepalive : 14 bytes - Link keepalive : 14 bytes

View File

@ -53,6 +53,12 @@ What does Reticulum Offer?
* The API is very easy to use, and provides transfer progress * The API is very easy to use, and provides transfer progress
* Efficient link establishment
* Total bandwidth cost of setting up a link is only 409 bytes
* Low cost of keeping links open at only 0.62 bits per second
Where can Reticulum be Used? Where can Reticulum be Used?
============================ ============================

View File

@ -58,29 +58,6 @@ the development of Reticulum itself.</p>
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#participate-in-reticulum-development">Participate in Reticulum Development</a></li> <li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#participate-in-reticulum-development">Participate in Reticulum Development</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul>
<li class="toctree-l2"><a class="reference internal" href="examples.html#minimal">Minimal</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#announce">Announce</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#broadcast">Broadcast</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#echo">Echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#link">Link</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#filetransfer">Filetransfer</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="reference.html">API Reference</a><ul>
<li class="toctree-l2"><a class="reference internal" href="reference.html#classes">Classes</a><ul>
<li class="toctree-l3"><a class="reference internal" href="reference.html#reticulum">Reticulum</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#api-identity">Identity</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#destination">Destination</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#packet">Packet</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#packet-receipt">Packet Receipt</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#link">Link</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#resource">Resource</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#transport">Transport</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="understanding.html">Understanding Reticulum</a><ul> <li class="toctree-l1"><a class="reference internal" href="understanding.html">Understanding Reticulum</a><ul>
<li class="toctree-l2"><a class="reference internal" href="understanding.html#motivation">Motivation</a></li> <li class="toctree-l2"><a class="reference internal" href="understanding.html#motivation">Motivation</a></li>
<li class="toctree-l2"><a class="reference internal" href="understanding.html#goals">Goals</a></li> <li class="toctree-l2"><a class="reference internal" href="understanding.html#goals">Goals</a></li>
@ -105,6 +82,29 @@ the development of Reticulum itself.</p>
</li> </li>
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="reference.html">API Reference</a><ul>
<li class="toctree-l2"><a class="reference internal" href="reference.html#classes">Classes</a><ul>
<li class="toctree-l3"><a class="reference internal" href="reference.html#reticulum">Reticulum</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#api-identity">Identity</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#destination">Destination</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#packet">Packet</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#packet-receipt">Packet Receipt</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#link">Link</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#resource">Resource</a></li>
<li class="toctree-l3"><a class="reference internal" href="reference.html#transport">Transport</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="examples.html">Examples</a><ul>
<li class="toctree-l2"><a class="reference internal" href="examples.html#minimal">Minimal</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#announce">Announce</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#broadcast">Broadcast</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#echo">Echo</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#link">Link</a></li>
<li class="toctree-l2"><a class="reference internal" href="examples.html#filetransfer">Filetransfer</a></li>
</ul>
</li>
</ul> </ul>
</div> </div>
<div class="section" id="indices-and-tables"> <div class="section" id="indices-and-tables">

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -16,7 +16,8 @@
<link rel="index" title="Index" href="genindex.html" /> <link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" /> <link rel="search" title="Search" href="search.html" />
<link rel="prev" title="API Reference" href="reference.html" /> <link rel="next" title="API Reference" href="reference.html" />
<link rel="prev" title="Getting Started Fast" href="gettingstartedfast.html" />
</head><body> </head><body>
<div class="related" role="navigation" aria-label="related navigation"> <div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3> <h3>Navigation</h3>
@ -26,6 +27,9 @@
accesskey="I">index</a></li> accesskey="I">index</a></li>
<li class="right" > <li class="right" >
<a href="reference.html" title="API Reference" <a href="reference.html" title="API Reference"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="gettingstartedfast.html" title="Getting Started Fast"
accesskey="P">previous</a> |</li> accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.2.1 beta documentation</a> &#187;</li> <li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.2.1 beta documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Understanding Reticulum</a></li> <li class="nav-item nav-item-this"><a href="">Understanding Reticulum</a></li>
@ -401,11 +405,9 @@ recap what purposes this methodology serves. We first ensure that the node answe
is actually the one we want to communicate with, and not a malicious actor pretending to be so. is actually the one we want to communicate with, and not a malicious actor pretending to be so.
At the same time we establish an efficient encrypted channel. The setup of this is relatively cheap in At the same time we establish an efficient encrypted channel. The setup of this is relatively cheap in
terms of bandwidth, so it can be used just for a short exchange, and then recreated as needed, which will terms of bandwidth, so it can be used just for a short exchange, and then recreated as needed, which will
also rotate encryption keys, but the link can also be kept alive for longer periods of time, if this is also rotate encryption keys. The link can also be kept alive for longer periods of time, if this is
more suitable to the application. The amount of bandwidth used on keeping a link open is practically more suitable to the application. The procedure also inserts the <em>link id</em> , a hash calculated from the link request packet, into the memory of forwarding nodes, which means that the communicating nodes can thereafter reach each other simply by referring to this <em>link id</em>.</p>
negligible. The procedure also inserts the <em>link id</em> , a hash calculated from the link request packet, <p>The total bandwidth cost of setting up a link is 409 bytes (more info in the <a class="reference internal" href="#understanding-packetformat"><span class="std std-ref">Binary Packet Format</span></a> section). The amount of bandwidth used on keeping a link open is practically negligible, at 0.62 bits per second. Even on a slow 1200 bits per second packet radio channel, 100 concurrent links will still leave 95% channel capacity for actual data.</p>
into the memory of forwarding nodes, which means that the communicating nodes can thereafter reach each
other simply by referring to this <em>link id</em>.</p>
<div class="section" id="pathfinding-in-detail"> <div class="section" id="pathfinding-in-detail">
<h4>Pathfinding in Detail<a class="headerlink" href="#pathfinding-in-detail" title="Permalink to this headline"></a></h4> <h4>Pathfinding in Detail<a class="headerlink" href="#pathfinding-in-detail" title="Permalink to this headline"></a></h4>
<p>The pathfinding method builds on the <em>announce</em> functionality discussed earlier. When an announce <p>The pathfinding method builds on the <em>announce</em> functionality discussed earlier. When an announce
@ -647,7 +649,7 @@ the light of Reticulums goal of equal access, doing so would need to be the subj
investigation of the consequences first.</p> investigation of the consequences first.</p>
</div> </div>
<div class="section" id="binary-packet-format"> <div class="section" id="binary-packet-format">
<h3>Binary Packet Format<a class="headerlink" href="#binary-packet-format" title="Permalink to this headline"></a></h3> <span id="understanding-packetformat"></span><h3>Binary Packet Format<a class="headerlink" href="#binary-packet-format" title="Permalink to this headline"></a></h3>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>== Reticulum Wire Format ====== <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>== Reticulum Wire Format ======
A Reticulum packet is composed of the following fields: A Reticulum packet is composed of the following fields:
@ -738,9 +740,9 @@ proof 11
wire size including all fields. wire size including all fields.
- Path Request : 33 bytes - Path Request : 33 bytes
- Announce : 323 bytes - Announce : 151 bytes
- Link Request : 141 bytes - Link Request : 182 bytes
- Link Proof : 205 bytes - Link Proof : 141 bytes
- Link RTT packet : 86 bytes - Link RTT packet : 86 bytes
- Link keepalive : 14 bytes - Link keepalive : 14 bytes
</pre></div> </pre></div>
@ -793,8 +795,11 @@ proof 11
</ul> </ul>
<h4>Previous topic</h4> <h4>Previous topic</h4>
<p class="topless"><a href="gettingstartedfast.html"
title="previous chapter">Getting Started Fast</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="reference.html" <p class="topless"><a href="reference.html"
title="previous chapter">API Reference</a></p> title="next chapter">API Reference</a></p>
<div role="note" aria-label="source link"> <div role="note" aria-label="source link">
<h3>This Page</h3> <h3>This Page</h3>
<ul class="this-page-menu"> <ul class="this-page-menu">
@ -824,6 +829,9 @@ proof 11
>index</a></li> >index</a></li>
<li class="right" > <li class="right" >
<a href="reference.html" title="API Reference" <a href="reference.html" title="API Reference"
>next</a> |</li>
<li class="right" >
<a href="gettingstartedfast.html" title="Getting Started Fast"
>previous</a> |</li> >previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.2.1 beta documentation</a> &#187;</li> <li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.2.1 beta documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Understanding Reticulum</a></li> <li class="nav-item nav-item-this"><a href="">Understanding Reticulum</a></li>

View File

@ -79,6 +79,12 @@
<li><p>The API is very easy to use, and provides transfer progress</p></li> <li><p>The API is very easy to use, and provides transfer progress</p></li>
</ul> </ul>
</li> </li>
<li><p>Efficient link establishment</p>
<ul>
<li><p>Total bandwidth cost of setting up a link is only 409 bytes</p></li>
<li><p>Low cost of keeping links open at only 0.62 bits per second</p></li>
</ul>
</li>
</ul> </ul>
</div> </div>
<div class="section" id="where-can-reticulum-be-used"> <div class="section" id="where-can-reticulum-be-used">

View File

@ -10,9 +10,9 @@ the development of Reticulum itself.
whatis whatis
gettingstartedfast gettingstartedfast
examples
reference
understanding understanding
reference
examples
Indices and Tables Indices and Tables

View File

@ -354,11 +354,10 @@ recap what purposes this methodology serves. We first ensure that the node answe
is actually the one we want to communicate with, and not a malicious actor pretending to be so. is actually the one we want to communicate with, and not a malicious actor pretending to be so.
At the same time we establish an efficient encrypted channel. The setup of this is relatively cheap in At the same time we establish an efficient encrypted channel. The setup of this is relatively cheap in
terms of bandwidth, so it can be used just for a short exchange, and then recreated as needed, which will terms of bandwidth, so it can be used just for a short exchange, and then recreated as needed, which will
also rotate encryption keys, but the link can also be kept alive for longer periods of time, if this is also rotate encryption keys. The link can also be kept alive for longer periods of time, if this is
more suitable to the application. The amount of bandwidth used on keeping a link open is practically more suitable to the application. The procedure also inserts the *link id* , a hash calculated from the link request packet, into the memory of forwarding nodes, which means that the communicating nodes can thereafter reach each other simply by referring to this *link id*.
negligible. The procedure also inserts the *link id* , a hash calculated from the link request packet,
into the memory of forwarding nodes, which means that the communicating nodes can thereafter reach each The total bandwidth cost of setting up a link is 409 bytes (more info in the :ref:`Binary Packet Format<understanding-packetformat>` section). The amount of bandwidth used on keeping a link open is practically negligible, at 0.62 bits per second. Even on a slow 1200 bits per second packet radio channel, 100 concurrent links will still leave 95% channel capacity for actual data.
other simply by referring to this *link id*.
Pathfinding in Detail Pathfinding in Detail
^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
@ -577,6 +576,8 @@ the light of Reticulums goal of equal access, doing so would need to be the subj
investigation of the consequences first. investigation of the consequences first.
.. _understanding-packetformat:
Binary Packet Format Binary Packet Format
-------------------- --------------------
@ -674,6 +675,6 @@ Binary Packet Format
- Path Request : 33 bytes - Path Request : 33 bytes
- Announce : 151 bytes - Announce : 151 bytes
- Link Request : 182 bytes - Link Request : 182 bytes
- Link Proof : 205 bytes - Link Proof : 141 bytes
- Link RTT packet : 86 bytes - Link RTT packet : 86 bytes
- Link keepalive : 14 bytes - Link keepalive : 14 bytes

View File

@ -53,6 +53,12 @@ What does Reticulum Offer?
* The API is very easy to use, and provides transfer progress * The API is very easy to use, and provides transfer progress
* Efficient link establishment
* Total bandwidth cost of setting up a link is only 409 bytes
* Low cost of keeping links open at only 0.62 bits per second
Where can Reticulum be Used? Where can Reticulum be Used?
============================ ============================