I (loosely) know about Network Address Translation (NAT) in that the NAT device stores a mapping of external ports to internal ports. However, I started reading about it and got really confused by all of the terms: STUN, ICE, TURN, uPnP, NAT-PMP, full cone NAT, restricted cone NAT, and port restricted cone NAT. Any help sorting out what this all means would be really helpful, thanks!
You’ve covered a lot of different topics with all of those protocols but essentially they are all used to work around or with limitations of NAT when used with public routing. Some deal with port mapping, address mapping, etc.
uPnP is an exception in that it typically allows hosts on the inside of the NAT to talk with the uPnP-enabled device to get statistics like external IP & forwarded ports & generally facilitates easy firewall transversal for applications that require it and that support uPnP.