A most elegant TCP hole punching algorithm
6 points by ahobson
6 points by ahobson
I'm missing a couple key elements from the problem statement. What information do we have exactly, with which we intend to establish a connection?
Presumably it's two devices behind NAT, so you would need both the public IP of the router, and the internal IP of the device. That's not what the article says though:
Both sides must know each other’s WAN IPs
And now that I'm scrutinizing it, there are some other odd things in the article:
If packet exchange is off by even a few miniseconds the whole protocol can fail
the fuck is a minisecond?
Async networking won’t work here either.
This makes no sense, it then proceeds to exactly describe "async networking".
So all this song and dance goes away when we drop IPv4, correct?
I'm pretty sure that even in an IPv6 future there will still be a need for firewalls and NATs.