mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-22 21:50: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
|
- 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.
|
||||||
|
@ -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
|
||||||
|
@ -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
|
@ -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?
|
||||||
============================
|
============================
|
||||||
|
@ -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
@ -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> »</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>
|
<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> »</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>
|
<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>
|
<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">
|
||||||
|
@ -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
|
||||||
|
@ -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
|
@ -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?
|
||||||
============================
|
============================
|
||||||
|
Loading…
Reference in New Issue
Block a user