Are there any open source cross platform NAT punch throughs?
I haven't seen one, but you'll find more information than you require here:
http://www.b500.com/~hplus/nat-punch.html
It's not terribly hard to implement, just a bit of work.
I haven't got an answer here I'm afraid, but I do know that a couple of years ago there was some research done in area that ended up spawning some IETF documents. The curious reader might already be familiar with these:
- http://tools.ietf.org/html/draft-ietf-behave-rfc3489bis-18
- http://tools.ietf.org/html/draft-ietf-behave-turn-13
- possibly http://tools.ietf.org/html/draft-ietf-mmusic-ice-19
- (...your-link-here: some research that I probably have missed)
The best I've seen is UDT, which is a reliable UDP library that also includes a "rendezvous" connect mode that helps take care of the NAT punching. All you have to do is figure out the external IP address and port and somehow get it to the other client (and vice versa). Once you know that information, you both connect and bind at the same time (with rendezvous mode set) and it'll do its best to figure out the rest.