Replies: 1 comment 4 replies
-
|
Having thought about this some more, I have an idea to solve how packet paths should be modified. First, the issue: Let's say I send a fuzzy-pathed packet with a path of Repeater Here's my solution: we move the Repeater |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Right now if you send a direct message if you previously have known a path then you depend on every repeater in that path being available. This is not super reliable, especially when sending with a spotty connection, and means that you end up having to fall back to a flood message. On larger meshes it is best to reduce flood traffic wherever possible, so I'm proposing a step in between direct and flood routing, using "fuzzy" or "thick" paths instead of direct paths.
The problem with anything that is in between direct and flood is, of course, the lack of routing information in the mesh. But repeaters already collect one extra bit of routing info that isn't currently used: direct (0-hop) neighbors. Thus, my proposal is that a "fuzzy" path would not just have repeaters directly in the path repeat the packet, but also any 0-hop neighbors of those repeaters.
To illustrate, let's say we have repeaters A, B, and C - all neighbors of each other, and my destination companion of D. I send a message with a path of A,B,D but B fails to respond. On my second try, I send using a "fuzzy" path of A,B,D - B still fails to respond but C, knowing that it is itself a neighbor of B, repeats (making the resulting path A,C,D).
The repeater's logic would effectively be this:
The effect is sort of localized/directed flood routing that doesn't require any new routing information or communication beyond what repeaters already collect, and in theory it raises the chances that contact with the destination is made if the direct path previously failed.
The immediate problems that come to mind that would need solving:
I'm not super knowledgeable about designing mesh networks and maybe there's something problematic I've overlooked with this idea, but I wanted to start a discussion on whether this is something reasonable to look further into.
Beta Was this translation helpful? Give feedback.
All reactions