Would be interested in hearing from Adam[2] the trade-offs between fully and partially decentralized architectures
Would be interested in hearing from Adam[2] the trade-offs between fully and partially decentralized architectures
> All traffic transmit directly to recepient peer without passing any gateways. Meshbird do not require any centralized servers.
means you can't have a NAT on both sides of connection. Zerotier falls back to proxying the traffic if you can't connect directly.
If not, please pardon my ignorance; not a networking expert.
1) They switched away from UDP, now use TCP. So NAT traversal / punching isn’t possible.
2) Even if UDP was used there’s still some network setups that aren’t traversal friendly, such as most cellular/LTE networks where port mappings are unpredictable.
> Similarly, adding port prediction to the P2PNAT approach allows it to handle symmetric NATs increasing its success rate to 84.3%
Interesting that it works, but doesn't seem very reliable.
Clients A and B connect to a rendezvous host. R looks at A and B's ports, guesses which ports they will use for the next connection and instructs them to connect to each other respectively. First SYN packets are lost, but they poke holes, so on the retry the symmetrical open kicks in and peers hook up into a shared TCP connection. The end.
From what I remember ingress TCP filtering was universally very dumb - if there was a SYN out, anything on the same quartet of IP/ports was allowed in. That was on a sample of several thousand devices, though most of these were of consumer grade. It was also few years before the paper you linked to above.