Updated docs

This commit is contained in:
Mark Qvist 2022-04-27 13:19:03 +02:00
parent 3856747e31
commit 00816b55bb
5 changed files with 177 additions and 96 deletions

View File

@ -630,9 +630,14 @@ Wire Format
[HEADER 2 bytes] [ADDRESSES 10/20 bytes] [CONTEXT 1 byte] [DATA 0-477 bytes] [HEADER 2 bytes] [ADDRESSES 10/20 bytes] [CONTEXT 1 byte] [DATA 0-477 bytes]
* The HEADER field is 2 bytes long. * The HEADER field is 2 bytes long.
* Byte 1: [Header Type], [Propagation Type], [Destination Type] and [Packet Type] * Byte 1: [IFAC Flag], [Header Type], [Propagation Type], [Destination Type] and [Packet Type]
* Byte 2: Number of hops * Byte 2: Number of hops
* Interface Access Code field if the IFAC flag was set.
* The length of the Interface Access Code can vary from
1 to 64 bytes according to physical interface
capabilities and configuration.
* The ADDRESSES field contains either 1 or 2 addresses. * The ADDRESSES field contains either 1 or 2 addresses.
* Each address is 10 bytes long. * Each address is 10 bytes long.
* The Header Type flag in the HEADER field determines * The Header Type flag in the HEADER field determines
@ -645,12 +650,16 @@ Wire Format
* The DATA field is between 0 and 477 bytes. * The DATA field is between 0 and 477 bytes.
* It contains the packets data payload. * It contains the packets data payload.
IFAC Flag
-----------------
open 0 Packet for publically accessible interface
authenticated 1 Interface authentication is included in packet
Header Types Header Types
----------------- -----------------
type 1 00 Two byte header, one 10 byte address field type 1 0 Two byte header, one 10 byte address field
type 2 01 Two byte header, two 10 byte address fields type 2 1 Two byte header, two 10 byte address fields
type 3 10 Reserved
type 4 11 Reserved
Propagation Types Propagation Types
@ -682,39 +691,57 @@ Wire Format
HEADER FIELD DESTINATION FIELDS CONTEXT FIELD DATA FIELD HEADER FIELD DESTINATION FIELDS CONTEXT FIELD DATA FIELD
_______|_______ ________________|________________ ________|______ __|_ _______|_______ ________________|________________ ________|______ __|_
| | | | | | | | | | | | | | | |
01010000 00000100 [ADDR1, 10 bytes] [ADDR2, 10 bytes] [CONTEXT, 1 byte] [DATA] 01010000 00000100 [HASH1, 10 bytes] [HASH2, 10 bytes] [CONTEXT, 1 byte] [DATA]
| | | | | || | | | |
| | | | +-- Hops = 4 || | | | +-- Hops = 4
| | | +------- Packet Type = DATA || | | +------- Packet Type = DATA
| | +--------- Destination Type = SINGLE || | +--------- Destination Type = SINGLE
| +----------- Propagation Type = TRANSPORT || +----------- Propagation Type = TRANSPORT
+------------- Header Type = HEADER_2 (two byte header, two address fields) |+------------- Header Type = HEADER_2 (two byte header, two address fields)
+-------------- Access Codes = DISABLED
+- Packet Example -+ +- Packet Example -+
HEADER FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD HEADER FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD
_______|_______ _______|_______ ________|______ __|_ _______|_______ _______|_______ ________|______ __|_
| | | | | | | | | | | | | | | |
00000000 00000111 [ADDR1, 10 bytes] [CONTEXT, 1 byte] [DATA] 00000000 00000111 [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA]
| | | | | || | | | |
| | | | +-- Hops = 7 || | | | +-- Hops = 0
| | | +------- Packet Type = DATA || | | +------- Packet Type = DATA
| | +--------- Destination Type = SINGLE || | +--------- Destination Type = SINGLE
| +----------- Propagation Type = BROADCAST || +----------- Propagation Type = BROADCAST
+------------- Header Type = HEADER_1 (two byte header, one address field) |+------------- Header Type = HEADER_1 (two byte header, one address field)
+-------------- Access Codes = DISABLED
Size examples of different packet types +- Packet Example -+
---------------------------------------
The following table lists example sizes of various HEADER FIELD IFAC FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD
packet types. The size listed are the complete on- _______|_______ ______|______ _______|_______ ________|______ __|_
wire size counting all fields including headers. | | | | | | | | | |
10000000 00000111 [IFAC, N bytes] [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA]
|| | | | |
|| | | | +-- Hops = 0
|| | | +------- Packet Type = DATA
|| | +--------- Destination Type = SINGLE
|| +----------- Propagation Type = BROADCAST
|+------------- Header Type = HEADER_1 (two byte header, one address field)
+-------------- Access Codes = ENABLED
- Path Request : 33 bytes
- Announce : 151 bytes Size examples of different packet types
- Link Request : 77 bytes ---------------------------------------
- Link Proof : 77 bytes
- Link RTT packet : 83 bytes The following table lists example sizes of various
- Link keepalive : 14 bytes packet types. The size listed are the complete on-
wire size counting all fields including headers,
but excluding any interface access codes.
- Path Request : 33 bytes
- Announce : 151 bytes
- Link Request : 77 bytes
- Link Proof : 77 bytes
- Link RTT packet : 83 bytes
- Link keepalive : 14 bytes

View File

@ -76,7 +76,7 @@ other programs to use on demand.</p>
<dt class="sig sig-object py" id="RNS.Reticulum.MTU"> <dt class="sig sig-object py" id="RNS.Reticulum.MTU">
<span class="sig-name descname"><span class="pre">MTU</span></span><em class="property"> <span class="pre">=</span> <span class="pre">500</span></em><a class="headerlink" href="#RNS.Reticulum.MTU" title="Permalink to this definition"></a></dt> <span class="sig-name descname"><span class="pre">MTU</span></span><em class="property"> <span class="pre">=</span> <span class="pre">500</span></em><a class="headerlink" href="#RNS.Reticulum.MTU" title="Permalink to this definition"></a></dt>
<dd><p>The MTU that Reticulum adheres to, and will expect other peers to <dd><p>The MTU that Reticulum adheres to, and will expect other peers to
adhere to. By default, the MTU is 500 bytes. In custom RNS network adhere to. By default, the MTU is 507 bytes. In custom RNS network
implementations, it is possible to change this value, but doing so will implementations, it is possible to change this value, but doing so will
completely break compatibility with all other RNS networks. An identical completely break compatibility with all other RNS networks. An identical
MTU is a prerequisite for peers to communicate in the same network.</p> MTU is a prerequisite for peers to communicate in the same network.</p>
@ -688,7 +688,7 @@ destinations, reticulum will use ephemeral keys, and offers <strong>Forward Secr
<dl class="py attribute"> <dl class="py attribute">
<dt class="sig sig-object py" id="RNS.Packet.PLAIN_MDU"> <dt class="sig sig-object py" id="RNS.Packet.PLAIN_MDU">
<span class="sig-name descname"><span class="pre">PLAIN_MDU</span></span><em class="property"> <span class="pre">=</span> <span class="pre">477</span></em><a class="headerlink" href="#RNS.Packet.PLAIN_MDU" title="Permalink to this definition"></a></dt> <span class="sig-name descname"><span class="pre">PLAIN_MDU</span></span><em class="property"> <span class="pre">=</span> <span class="pre">476</span></em><a class="headerlink" href="#RNS.Packet.PLAIN_MDU" title="Permalink to this definition"></a></dt>
<dd><p>The maximum size of the payload data in a single unencrypted packet</p> <dd><p>The maximum size of the payload data in a single unencrypted packet</p>
</dd></dl> </dd></dl>

File diff suppressed because one or more lines are too long

View File

@ -689,9 +689,14 @@ A Reticulum packet is composed of the following fields:
[HEADER 2 bytes] [ADDRESSES 10/20 bytes] [CONTEXT 1 byte] [DATA 0-477 bytes] [HEADER 2 bytes] [ADDRESSES 10/20 bytes] [CONTEXT 1 byte] [DATA 0-477 bytes]
* The HEADER field is 2 bytes long. * The HEADER field is 2 bytes long.
* Byte 1: [Header Type], [Propagation Type], [Destination Type] and [Packet Type] * Byte 1: [IFAC Flag], [Header Type], [Propagation Type], [Destination Type] and [Packet Type]
* Byte 2: Number of hops * Byte 2: Number of hops
* Interface Access Code field if the IFAC flag was set.
* The length of the Interface Access Code can vary from
1 to 64 bytes according to physical interface
capabilities and configuration.
* The ADDRESSES field contains either 1 or 2 addresses. * The ADDRESSES field contains either 1 or 2 addresses.
* Each address is 10 bytes long. * Each address is 10 bytes long.
* The Header Type flag in the HEADER field determines * The Header Type flag in the HEADER field determines
@ -704,12 +709,16 @@ A Reticulum packet is composed of the following fields:
* The DATA field is between 0 and 477 bytes. * The DATA field is between 0 and 477 bytes.
* It contains the packets data payload. * It contains the packets data payload.
IFAC Flag
-----------------
open 0 Packet for publically accessible interface
authenticated 1 Interface authentication is included in packet
Header Types Header Types
----------------- -----------------
type 1 00 Two byte header, one 10 byte address field type 1 0 Two byte header, one 10 byte address field
type 2 01 Two byte header, two 10 byte address fields type 2 1 Two byte header, two 10 byte address fields
type 3 10 Reserved
type 4 11 Reserved
Propagation Types Propagation Types
@ -741,42 +750,60 @@ proof 11
HEADER FIELD DESTINATION FIELDS CONTEXT FIELD DATA FIELD HEADER FIELD DESTINATION FIELDS CONTEXT FIELD DATA FIELD
_______|_______ ________________|________________ ________|______ __|_ _______|_______ ________________|________________ ________|______ __|_
| | | | | | | | | | | | | | | |
01010000 00000100 [ADDR1, 10 bytes] [ADDR2, 10 bytes] [CONTEXT, 1 byte] [DATA] 01010000 00000100 [HASH1, 10 bytes] [HASH2, 10 bytes] [CONTEXT, 1 byte] [DATA]
| | | | | || | | | |
| | | | +-- Hops = 4 || | | | +-- Hops = 4
| | | +------- Packet Type = DATA || | | +------- Packet Type = DATA
| | +--------- Destination Type = SINGLE || | +--------- Destination Type = SINGLE
| +----------- Propagation Type = TRANSPORT || +----------- Propagation Type = TRANSPORT
+------------- Header Type = HEADER_2 (two byte header, two address fields) |+------------- Header Type = HEADER_2 (two byte header, two address fields)
+-------------- Access Codes = DISABLED
+- Packet Example -+ +- Packet Example -+
HEADER FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD HEADER FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD
_______|_______ _______|_______ ________|______ __|_ _______|_______ _______|_______ ________|______ __|_
| | | | | | | | | | | | | | | |
00000000 00000111 [ADDR1, 10 bytes] [CONTEXT, 1 byte] [DATA] 00000000 00000111 [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA]
| | | | | || | | | |
| | | | +-- Hops = 7 || | | | +-- Hops = 0
| | | +------- Packet Type = DATA || | | +------- Packet Type = DATA
| | +--------- Destination Type = SINGLE || | +--------- Destination Type = SINGLE
| +----------- Propagation Type = BROADCAST || +----------- Propagation Type = BROADCAST
+------------- Header Type = HEADER_1 (two byte header, one address field) |+------------- Header Type = HEADER_1 (two byte header, one address field)
+-------------- Access Codes = DISABLED
Size examples of different packet types +- Packet Example -+
---------------------------------------
The following table lists example sizes of various HEADER FIELD IFAC FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD
packet types. The size listed are the complete on- _______|_______ ______|______ _______|_______ ________|______ __|_
wire size counting all fields including headers. | | | | | | | | | |
10000000 00000111 [IFAC, N bytes] [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA]
|| | | | |
|| | | | +-- Hops = 0
|| | | +------- Packet Type = DATA
|| | +--------- Destination Type = SINGLE
|| +----------- Propagation Type = BROADCAST
|+------------- Header Type = HEADER_1 (two byte header, one address field)
+-------------- Access Codes = ENABLED
- Path Request : 33 bytes
- Announce : 151 bytes Size examples of different packet types
- Link Request : 77 bytes ---------------------------------------
- Link Proof : 77 bytes
- Link RTT packet : 83 bytes The following table lists example sizes of various
- Link keepalive : 14 bytes packet types. The size listed are the complete on-
wire size counting all fields including headers,
but excluding any interface access codes.
- Path Request : 33 bytes
- Announce : 151 bytes
- Link Request : 77 bytes
- Link Proof : 77 bytes
- Link RTT packet : 83 bytes
- Link keepalive : 14 bytes
</pre></div> </pre></div>
</div> </div>
</div> </div>

View File

@ -630,9 +630,14 @@ Wire Format
[HEADER 2 bytes] [ADDRESSES 10/20 bytes] [CONTEXT 1 byte] [DATA 0-477 bytes] [HEADER 2 bytes] [ADDRESSES 10/20 bytes] [CONTEXT 1 byte] [DATA 0-477 bytes]
* The HEADER field is 2 bytes long. * The HEADER field is 2 bytes long.
* Byte 1: [Header Type], [Propagation Type], [Destination Type] and [Packet Type] * Byte 1: [IFAC Flag], [Header Type], [Propagation Type], [Destination Type] and [Packet Type]
* Byte 2: Number of hops * Byte 2: Number of hops
* Interface Access Code field if the IFAC flag was set.
* The length of the Interface Access Code can vary from
1 to 64 bytes according to physical interface
capabilities and configuration.
* The ADDRESSES field contains either 1 or 2 addresses. * The ADDRESSES field contains either 1 or 2 addresses.
* Each address is 10 bytes long. * Each address is 10 bytes long.
* The Header Type flag in the HEADER field determines * The Header Type flag in the HEADER field determines
@ -645,12 +650,16 @@ Wire Format
* The DATA field is between 0 and 477 bytes. * The DATA field is between 0 and 477 bytes.
* It contains the packets data payload. * It contains the packets data payload.
IFAC Flag
-----------------
open 0 Packet for publically accessible interface
authenticated 1 Interface authentication is included in packet
Header Types Header Types
----------------- -----------------
type 1 00 Two byte header, one 10 byte address field type 1 0 Two byte header, one 10 byte address field
type 2 01 Two byte header, two 10 byte address fields type 2 1 Two byte header, two 10 byte address fields
type 3 10 Reserved
type 4 11 Reserved
Propagation Types Propagation Types
@ -682,39 +691,57 @@ Wire Format
HEADER FIELD DESTINATION FIELDS CONTEXT FIELD DATA FIELD HEADER FIELD DESTINATION FIELDS CONTEXT FIELD DATA FIELD
_______|_______ ________________|________________ ________|______ __|_ _______|_______ ________________|________________ ________|______ __|_
| | | | | | | | | | | | | | | |
01010000 00000100 [ADDR1, 10 bytes] [ADDR2, 10 bytes] [CONTEXT, 1 byte] [DATA] 01010000 00000100 [HASH1, 10 bytes] [HASH2, 10 bytes] [CONTEXT, 1 byte] [DATA]
| | | | | || | | | |
| | | | +-- Hops = 4 || | | | +-- Hops = 4
| | | +------- Packet Type = DATA || | | +------- Packet Type = DATA
| | +--------- Destination Type = SINGLE || | +--------- Destination Type = SINGLE
| +----------- Propagation Type = TRANSPORT || +----------- Propagation Type = TRANSPORT
+------------- Header Type = HEADER_2 (two byte header, two address fields) |+------------- Header Type = HEADER_2 (two byte header, two address fields)
+-------------- Access Codes = DISABLED
+- Packet Example -+ +- Packet Example -+
HEADER FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD HEADER FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD
_______|_______ _______|_______ ________|______ __|_ _______|_______ _______|_______ ________|______ __|_
| | | | | | | | | | | | | | | |
00000000 00000111 [ADDR1, 10 bytes] [CONTEXT, 1 byte] [DATA] 00000000 00000111 [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA]
| | | | | || | | | |
| | | | +-- Hops = 7 || | | | +-- Hops = 0
| | | +------- Packet Type = DATA || | | +------- Packet Type = DATA
| | +--------- Destination Type = SINGLE || | +--------- Destination Type = SINGLE
| +----------- Propagation Type = BROADCAST || +----------- Propagation Type = BROADCAST
+------------- Header Type = HEADER_1 (two byte header, one address field) |+------------- Header Type = HEADER_1 (two byte header, one address field)
+-------------- Access Codes = DISABLED
Size examples of different packet types +- Packet Example -+
---------------------------------------
The following table lists example sizes of various HEADER FIELD IFAC FIELD DESTINATION FIELD CONTEXT FIELD DATA FIELD
packet types. The size listed are the complete on- _______|_______ ______|______ _______|_______ ________|______ __|_
wire size counting all fields including headers. | | | | | | | | | |
10000000 00000111 [IFAC, N bytes] [HASH1, 10 bytes] [CONTEXT, 1 byte] [DATA]
|| | | | |
|| | | | +-- Hops = 0
|| | | +------- Packet Type = DATA
|| | +--------- Destination Type = SINGLE
|| +----------- Propagation Type = BROADCAST
|+------------- Header Type = HEADER_1 (two byte header, one address field)
+-------------- Access Codes = ENABLED
- Path Request : 33 bytes
- Announce : 151 bytes Size examples of different packet types
- Link Request : 77 bytes ---------------------------------------
- Link Proof : 77 bytes
- Link RTT packet : 83 bytes The following table lists example sizes of various
- Link keepalive : 14 bytes packet types. The size listed are the complete on-
wire size counting all fields including headers,
but excluding any interface access codes.
- Path Request : 33 bytes
- Announce : 151 bytes
- Link Request : 77 bytes
- Link Proof : 77 bytes
- Link RTT packet : 83 bytes
- Link keepalive : 14 bytes