Peer-to-Peer Communication Across Network Address Translators (2005)
brynosaurus.com
brynosaurus.com
But how does that help someone who is not S (has a different IP than S) to use this tunnel set up by router? It (R - router on the NAT) won't ignore the source IP of incoming packets (since two connections are the same only if source and destination IPs and ports are the same - 4 numbers), will it? Traffic coming from S will get forwarded, that I get, but will traffic from ANY source just coming to the appropriate port on R get forwarded just the same way?
Good paper.
What concerns me most is that IPv6 supports NAT and so I have a feeling that we will be living with it for decades to come (effectively making large swaths of the population second class citizens, as they will perceive the internet as download-only).
Does anyone know of a library that universally overcomes NAT, using STUN/UPnP/NAT-PMP and other techniques where necessary? Ideally it would work by handling the handshake and return a standard UDP port that "just works", giving the app a globally accessible public port.