- NAT relaying (using accessible server S to forward packets between A and B) - TURN protocol
- Connection reversal (via server S, but while only one of A, B is behind NAT)
- UDP Hole punching (via server S)
- hairpin (loopback) translation?
- miniupnpc
- libnatpmp
- upnp based on upnp implementation in ktorrent
- pupnp (BSD License) latest update Apr 2012, first code 2005
- https://www.keymolen.com/ssdp.html C++ SSDP library, non-OSS
- https://code.google.com/p/upnpx/ objc/C++ upnp and ssdp lib, BSD License, based on pupnp, abandoned Nov 2012
- reTurn C++ asio BSD STUN and TURN library
- nat-pmp and upnp implementation in maidsafe 2009