Ishaan has a network jargon question...

Hi, I am a recently graduated student and discovered this podcast a few days ago. 


I've heard 'doubly NATed' and 'punching a hole through firewall' on the podcast a couple of times(like TeamViewer does) and was wondering if you could explain them in a little bit of detail. I would also like to know about various ways to overcome double NAT and their pros and cons that. You've mentioned Wireguard, VPN. Could you also explain how they fit into this picture?