From 3d645ae2f45d33e2beb73add9e829df1ca1bf489 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Tue, 31 Oct 2023 11:09:54 +0100 Subject: [PATCH] Updated documentation --- README.md | 4 ++-- RNS/Reticulum.py | 20 +++++++++++--------- docs/manual/_sources/understanding.rst.txt | 4 ++-- docs/manual/_sources/whatis.rst.txt | 2 +- docs/manual/genindex.html | 2 ++ docs/manual/objects.inv | Bin 2494 -> 2509 bytes docs/manual/reference.html | 14 ++++++++++++-- docs/manual/searchindex.js | 2 +- docs/manual/understanding.html | 4 ++-- docs/manual/whatis.html | 2 +- docs/source/understanding.rst | 4 ++-- docs/source/whatis.rst | 2 +- 12 files changed, 37 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index a524206..f6b49d8 100755 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ following resources. ## Where can Reticulum be used? Over practically any medium that can support at least a half-duplex channel -with 500 bits per second throughput, and an MTU of 500 bytes. Data radios, +with greater throughput than 5 bits per second, and an MTU of 500 bytes. Data radios, modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes, WiFi and Ethernet devices, free-space optical links, and similar systems are all examples of the types of physical devices Reticulum can use. @@ -191,7 +191,7 @@ functionality and performance on low-bandwidth mediums. The goal is to provide a dynamic performance envelope from 250 bits per second, to 1 gigabit per second on normal hardware. -Currently, the usable performance envelope is approximately 500 bits per second +Currently, the usable performance envelope is approximately 150 bits per second to 20 megabits per second, with physical mediums faster than that not being saturated. Performance beyond the current level is intended for future upgrades, but not highly prioritised at this point in time. diff --git a/RNS/Reticulum.py b/RNS/Reticulum.py index 06a70b5..d9baa70 100755 --- a/RNS/Reticulum.py +++ b/RNS/Reticulum.py @@ -79,7 +79,7 @@ class Reticulum: MTU = 500 """ The MTU that Reticulum adheres to, and will expect other peers to - adhere to. By default, the MTU is 507 bytes. In custom RNS network + adhere to. By default, the MTU is 500 bytes. In custom RNS network implementations, it is possible to change this value, but doing so will completely break compatibility with all other RNS networks. An identical MTU is a prerequisite for peers to communicate in the same network. @@ -106,17 +106,19 @@ class Reticulum: it will eventually be dropped. This value will be applied by default to all created interfaces, - but it can be configured individually on a per-interface basis. + but it can be configured individually on a per-interface basis. In + general, the global default setting should not be changed, and any + alterations should be made on a per-interface basis instead. """ - MINIMUM_BITRATE = 500 + MINIMUM_BITRATE = 5 + """ + Minimum bitrate required across a medium for Reticulum to be able + to successfully establish links. Currently 5 bits per second. + """ - # TODO: To reach the 300bps level without unreasonably impacting - # performance on faster links, we need a mechanism for setting - # this value more intelligently. One option could be inferring it - # from interface speed, but a better general approach would most - # probably be to let Reticulum somehow continously build a map of - # per-hop latencies and use this map for the timeout calculation. + # TODO: Let Reticulum somehow continously build a map of per-hop + # latencies and use this map for global timeout calculation. DEFAULT_PER_HOP_TIMEOUT = 4 # Length of truncated hashes in bits. diff --git a/docs/manual/_sources/understanding.rst.txt b/docs/manual/_sources/understanding.rst.txt index 85fd294..8f67a6b 100644 --- a/docs/manual/_sources/understanding.rst.txt +++ b/docs/manual/_sources/understanding.rst.txt @@ -75,7 +75,7 @@ guide the design of Reticulum: it can be easily modified and replicated by anyone interested in doing so. * **Very low bandwidth requirements** Reticulum should be able to function reliably over links with a transmission capacity as low - as *500 bits per second*. + as *5 bits per second*. * **Encryption by default** Reticulum must use strong encryption by default for all communication. * **Initiator Anonymity** @@ -595,7 +595,7 @@ or less any medium that allows you to send and receive data, which satisfies som minimum requirements. The communication channel must support at least half-duplex operation, and provide an average -throughput of around 500 bits per second, and supports a physical layer MTU of 500 bytes. The +throughput of 5 bits per second or greater, and supports a physical layer MTU of 500 bytes. The Reticulum stack should be able to run on more or less any hardware that can provide a Python 3.x runtime environment. diff --git a/docs/manual/_sources/whatis.rst.txt b/docs/manual/_sources/whatis.rst.txt index c7c0a0a..a420b7e 100644 --- a/docs/manual/_sources/whatis.rst.txt +++ b/docs/manual/_sources/whatis.rst.txt @@ -91,7 +91,7 @@ What does Reticulum Offer? Where can Reticulum be Used? ============================ Over practically any medium that can support at least a half-duplex channel -with 500 bits per second throughput, and an MTU of 500 bytes. Data radios, +with greater throughput than 5 bits per second, 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. diff --git a/docs/manual/genindex.html b/docs/manual/genindex.html index e20601f..50d51ee 100644 --- a/docs/manual/genindex.html +++ b/docs/manual/genindex.html @@ -510,6 +510,8 @@