Standards defined by the UPnP Forum for home networking.
UPnP lets you run a network service behind a NAT device, and have your device communicate with the NAT device to automatically set up a pinhole from the external network to the internal server. This lets you run MSN Messenger and transfer files.
Generally considered insecure, because people rely on NAT to provide network security, and you don't want your users being able to create tunnels to potentially unpatched machines! On the flipside NAT's pretty insecure anyway, people can use things like Teredo to bypass NAT's "security". If you want security use a proper stateful FireWall, not NAT.
Implemented by (among other things) Windows XP's Internet Connection Sharing and the Dynalink RTA220 ADSL modem.
One page links to UniversalPlugAndPlay: