“Anatomy: A Look Inside Network Address Translators” by Geoff Huston: www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_7-3/anatomy.html [1]
UDP hole punching www.brynosaurus.com/pub/net/p2pnat [2]
Kqueue: people.freebsd.org/~jlemon/papers/kqueue.pdf [3]
libevent: www.monkey.org/~provos/libevent [4]
libjingle: code.google.com/apis/talk/about.html [5]
Skype: www.skype.com [6]
NATcheck: midcom-p2p.sourceforge.net [7] (My code is derived partly from this)
Links:
[1] http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_7-3/anatomy.html
[2] http://www.brynosaurus.com/pub/net/p2pnat
[3] http://people.freebsd.org/~jlemon/papers/kqueue.pdf
[4] http://www.monkey.org/~provos/libevent
[5] http://code.google.com/apis/talk/about.html
[6] http://www.skype.com
[7] http://midcom-p2p.sourceforge.net