4 ms·
> > NAT mappings can change (your router can reboot etc). So you have to be ready to 'try again' dynamically. > Yes, this is a big issue [...] You gotta cut yo
by anyfoo 3y ago
> > NAT mappings can change (your router can reboot etc). So you have to be ready to 'try again' dynamically.
> Yes, this is a big issue [...] You gotta cut your losses somewhere.
And the article also gets into that, in detail. It appears that tailscale not only dynamically retries, they also test out all possible paths to switch to the best one.
- dave_universetf 3y agoWe do. This is also not our own insight/invention, to be clear. We're implementing the spiritual core (but not the SIP clothing) of the ICE protocol (https://datatracker.ietf.org/doc/html/rfc8445 https://datatracker.ietf.org/doc/html/rfc8445), which was developed by Google and the XMPP foundation as part of Jingle, the XMPP extension for p2p voice and video. That same stuff lives on in browsers today as part of WebRTC. ICE in particular provides a model for probing potentially feasible datapaths, selecting the best if multiple paths are available, and suggests how to handle datapath failure. It's not a weekend's worth of hacking to get it working robustly, but it's also very doable.
- anyfoo 3y agoThanks for your article. I’m not even currently working on any network-related stuff, and I found it very interesting and enlightening to read.