3 ms·
NAT and firewalls, the trillion dollar hacks that break the Internet and require massive investments in central systems to do what endpoints could simply do if
by api 3y ago
NAT and firewalls, the trillion dollar hacks that break the Internet and require massive investments in central systems to do what endpoints could simply do if they networked together. (Trillion dollar because that’s probably what they really cost in lost efficiency, at least.)
Systems to defeat these exist: ICE/WebRTC, ZeroTier, Tailscale, dozens of other protocols I can’t recall, but they all add overhead and require coordination. There are also many of these systems which means there is no standard. There is no equivalent to TCP/IP that is universally available that works around the ugly hacks we have used to destroy the potential of the Internet.
It would be doable if everything were a desktop or a laptop, but most people use casual apps like Bluesky on phones. Phones have huge limits mostly around battery life. An always on P2P app on a phone will keep radios from sleeping and reduce battery life up to 50%. It’s also a problem for people who have crummy metered mobile plans. Firewalls require keepalive every 15 seconds or so or traversal must be done all over again, which means continuous chatter just to keep peer to peer links available.
If phones could just call each other without executing what amounts to a coordinated attack against middleboxes in the way, low power peer to peer might be feasible. You could do things like time synchronize so peers sync at designated times and the radios sleep the rest of the time. But we can’t have nice things.
All the heterogeneity and complexity in the Bluesky protocol exists to work around this. Without NAT and firewalls all you would need is maybe directory servers to find people and something to do the equivalent of dynamic DNS for when IPs change. That’s it.
- pfraze 3y agoConnection establishment is only a tiny portion of the blockers that stopped us from using P2P, as I discussed in the post