Close

some thoughts on routing

A project log for Wakan μDTN

Mesh networking over WiFi and LoRa radios to support a Disruption Tolerant Network

hsingai-tigris-altaicaHsingai Tigris Altaica 09/03/2023 at 13:450 Comments

I never got a Lora or EPS32 board to develop on but I want to get one of the the new T-Decks to program as a PDA to remind me to take my meds and it has a LoRa module. So I'm looking into Wakan again. tough I don't has a much free time as I use to.

Anyways Wakan nodes don't keep track of how to route messages TO other nodes. they keep track of how to route messages FROM other nodes to them. I'm calling them 'etuor' ('route' backwards)

lets call the nodes in the nodes in a nodes's Etuoring table it's acquaintance nodes.

When a node(A) receive a message from node(B) going to a destination(C) it will find the node(D) on the message's route closest to the destination(C) that it knows about then remove itself(A) and all nodes farther from destination(C) from the messages route then do it's check if it should rebroadcast the message going from B for D and if so broadcast it.

the other thing I was thinking of was:

when trying to find a node that isn't in it's etuoring table it should find the closes and farthest(in the kadmilla sense) and send messages to them asking if they know,

This is based on the 6 degrees of separation and the reason the farthest and closest is to avoid local minima

and if they don't know they do the same. 

This leap frogs the routeing list as the intermediate nodes aren't add just the ones ones. 

of course if it doesn't know it just add the node it was asked to look up to it's list of nodes it's trying to find, and if it is already trying to find it just as the asking to the list one node it should notify when it finds out.


of course this all assumes that nodes can store messages for much long than the time it takes for the update to happen.

lets call the your acquaintance node that is farthest from you your far node. 

Let's  call the your acquaintance node that is farthest from your far node your counter node.

maybe we could do something with building paths from your far node's far node's far node's....

of course you don't really want your far node of your far node you want the acquaintance from of your far node that is farthest from you.

maybe something keep track of the nodes you know of that are farthest apart from each other, lets call them 'The Ends of The World'

There is  an Upper End of the World which is The End of The World with the highest id and a 'Lower End of the World'

 with the lowest id.

Let your 'Upper frontier' be your acquaintance node that is closest to the Upper End of The World.

Like wise with your 'Lower frontier'

maybe keep track of your Upper Frontier's Upper Frontier's... and like wise with your Lower Frontier


 these should be agreed upon globally, so if you can track of route to them it should be light on transmission over head for the network and of worst the  diameter of the network in storage.

do to the triangle inequality the new end should be close to the old end

The rate of the heartbeats The Ends of the World send out should be able to be quite slow as they are just used to optimize routing not a vital part of it.

if a end dies then you try  to form a connection to the know you think is farthest. any node in the path can respond with a node it knows is farther. and the news of the know death is going to travel from the nodes netographically closest to the dead End of the World so it should find the new end then flood that information to the network before to many inquires about who the new End of The World is get sent.

Discussions