mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-12-22 20:00:18 +00:00
Updated docs
This commit is contained in:
parent
db527b6759
commit
bf410e006f
@ -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
|
||||
- Sequencing, transfer coordination and checksumming is automatic
|
||||
- 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?
|
||||
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.
|
||||
|
@ -10,9 +10,9 @@ the development of Reticulum itself.
|
||||
|
||||
whatis
|
||||
gettingstartedfast
|
||||
examples
|
||||
reference
|
||||
understanding
|
||||
reference
|
||||
examples
|
||||
|
||||
|
||||
Indices and Tables
|
||||
|
@ -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.
|
||||
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
|
||||
also rotate encryption keys, but 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
|
||||
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
|
||||
other simply by referring to this *link id*.
|
||||
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 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*.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
.. _understanding-packetformat:
|
||||
|
||||
Binary Packet Format
|
||||
--------------------
|
||||
|
||||
@ -672,8 +673,8 @@ Binary Packet Format
|
||||
wire size including all fields.
|
||||
|
||||
- Path Request : 33 bytes
|
||||
- Announce : 323 bytes
|
||||
- Link Request : 141 bytes
|
||||
- Link Proof : 205 bytes
|
||||
- Announce : 151 bytes
|
||||
- Link Request : 182 bytes
|
||||
- Link Proof : 141 bytes
|
||||
- Link RTT packet : 86 bytes
|
||||
- Link keepalive : 14 bytes
|
@ -53,6 +53,12 @@ What does Reticulum Offer?
|
||||
|
||||
* 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?
|
||||
============================
|
||||
|
@ -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>
|
||||
</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>
|
||||
<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-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>
|
||||
@ -105,6 +82,29 @@ the development of Reticulum itself.</p>
|
||||
</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="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>
|
||||
</div>
|
||||
<div class="section" id="indices-and-tables">
|
||||
|
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -16,7 +16,8 @@
|
||||
|
||||
<link rel="index" title="Index" href="genindex.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>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
@ -26,6 +27,9 @@
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<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>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.2.1 beta documentation</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.
|
||||
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
|
||||
also rotate encryption keys, but 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
|
||||
negligible. 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>
|
||||
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 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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
</div>
|
||||
<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 ======
|
||||
|
||||
A Reticulum packet is composed of the following fields:
|
||||
@ -738,9 +740,9 @@ proof 11
|
||||
wire size including all fields.
|
||||
|
||||
- Path Request : 33 bytes
|
||||
- Announce : 323 bytes
|
||||
- Link Request : 141 bytes
|
||||
- Link Proof : 205 bytes
|
||||
- Announce : 151 bytes
|
||||
- Link Request : 182 bytes
|
||||
- Link Proof : 141 bytes
|
||||
- Link RTT packet : 86 bytes
|
||||
- Link keepalive : 14 bytes
|
||||
</pre></div>
|
||||
@ -793,8 +795,11 @@ proof 11
|
||||
</ul>
|
||||
|
||||
<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"
|
||||
title="previous chapter">API Reference</a></p>
|
||||
title="next chapter">API Reference</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<h3>This Page</h3>
|
||||
<ul class="this-page-menu">
|
||||
@ -824,6 +829,9 @@ proof 11
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="reference.html" title="API Reference"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="gettingstartedfast.html" title="Getting Started Fast"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">Reticulum Network Stack 0.2.1 beta documentation</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">Understanding Reticulum</a></li>
|
||||
|
@ -79,6 +79,12 @@
|
||||
<li><p>The API is very easy to use, and provides transfer progress</p></li>
|
||||
</ul>
|
||||
</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>
|
||||
</div>
|
||||
<div class="section" id="where-can-reticulum-be-used">
|
||||
|
@ -10,9 +10,9 @@ the development of Reticulum itself.
|
||||
|
||||
whatis
|
||||
gettingstartedfast
|
||||
examples
|
||||
reference
|
||||
understanding
|
||||
reference
|
||||
examples
|
||||
|
||||
|
||||
Indices and Tables
|
||||
|
@ -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.
|
||||
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
|
||||
also rotate encryption keys, but 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
|
||||
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
|
||||
other simply by referring to this *link id*.
|
||||
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 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*.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
.. _understanding-packetformat:
|
||||
|
||||
Binary Packet Format
|
||||
--------------------
|
||||
|
||||
@ -674,6 +675,6 @@ Binary Packet Format
|
||||
- Path Request : 33 bytes
|
||||
- Announce : 151 bytes
|
||||
- Link Request : 182 bytes
|
||||
- Link Proof : 205 bytes
|
||||
- Link Proof : 141 bytes
|
||||
- Link RTT packet : 86 bytes
|
||||
- Link keepalive : 14 bytes
|
@ -53,6 +53,12 @@ What does Reticulum Offer?
|
||||
|
||||
* 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?
|
||||
============================
|
||||
|
Loading…
Reference in New Issue
Block a user