specifications

Specification and standard documents
git clone git://git.finwo.net/misc/specifications
Log | Files | Refs | README | LICENSE

commit f0bd851c2605178672389b72bf14575551330d3a
parent b4f82a2a037c71128ba09a02be88ed15437cf4d6
Author: finwo <finwo@pm.me>
Date:   Thu, 23 Jul 2020 00:31:44 +0200

Added WIP mesh routing draft

Diffstat:
Adraft/0004-mesh-routing.txt | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+), 0 deletions(-)

diff --git a/draft/0004-mesh-routing.txt b/draft/0004-mesh-routing.txt @@ -0,0 +1,51 @@ +idea sources: + cjdns + mainline-dht + +aims to replace wide-area-networks + +each node has interface count +node's address width = interface count + 1 fitting binary number +node with 8 interfaces has an address width of 4 bits + 0 = invalid + 1 = self + 2,..9 = interfaces + + +routing label usage: + "interface to route to" is MSB (first bits on wire), to forward at "wirespeed" + when forwarding, the "hop" adds it's receiving port in reverse to the LSB while removing it's interface from the MSB + to respond, reverse the whole routing label to reverse the path + + Assuming 32-bit routing labels, sending a message from Alice to Charlie via Bob, the label would look as follows entring alice's routing core + Entering Alice's routing core: + 0110 110000 000001 0000000000000000 + \--/ Alice(6) -> Bob(123) + \----/ Bob(48) -> Charlie(33) + \----/ Charlie(1) "self" + \--------------/ Empty space + Received by Bob on interface 123 + 110000 000001 0000000000000000 1000 + \----/ Bob(48) -> Charlie(33) + \----/ Charlie(1) "self" + \--/ Alice(1) reversed "self" + Received by Charlie on interface 33 + 000001 000000000000000 1000 1101111 + \----/ Charlie(1) "self" + \--/ Alice(1) reversed "self" + \----/ Bob(123) reversed + Charlie's core registers this as (flipped) return path + 000000000000000 1000 1101111 100001 + \--/ Alice(1) reversed "self" + \-----/ Bob(123) reversed + \----/ Charlie(33) reversed + + + +Hard problem to solve: + node identifiers (look at asymmetric-diffie-hellman?) + native encryption + shortest path to node with ID X + service discovery + simply searching network for service is slow AF + named alt-net gateways