Okay, imagine you and a friend want to play a game together on your computers. But you're both behind different locked doors (Firewalls) in two different rooms (networks) and neither one of you can open the door to get to the other room.
However, you both have a secret magical power (TCP hole punching) that allows you to punch a tiny hole through your own locked door and the wall between the rooms (Firewalls and NAT traversal) that your friend can also punch through.
But how do you coordinate this magical power? You both need to know the exact location of the tiny hole, the time to punch it, and the right force to use. This is where a Server (Rendezvous server) comes in. You send a message to the server saying, "Hey, I want to connect with my friend on her/his computer," and your friend sends a similar message to the same server.
The Server receives both messages and replies with the exact location, time and force required to punch the tiny hole through the locked doors to each computer. Once you both have this information, you punch the tiny hole at the exact same time and voila! You're both now connected and can start playing the game.
This is an ELI5 explanation of TCP hole punching, and how it enables communication between two computers that are behind different Firewalls and NATs without needing to reconfigure the Firewalls or NATs.