Hole punching is nothing spectacular, let me explain simply:<p>You&#x27;re on your computer connected to a regular home router. You hit google.com in your browser. What happens is that you create an outgoing request towards google.com port 443 (TLS&#x2F;HTTPS). The router opens up a temporary firewall rule allowing responses from google.com port 443. (Without it you wouldn&#x27;t get any response)<p>Holepunching is simply using that fact, your device A and B shares their external IP:port with eachother (outside of STUN&#x2F;TURN scope) and then does a simple connect() to eachothers external ip:port. When A does connect(B_IP:B_port) it opens up for B to respond to that channel, and since B is doing connect(A_IP:A_PORT) his request will be let through and they can connect to eachother. A direct connection, a P2P (peer to peer) connection between those two clients, no one else.<p>Imagine it as a temporary port forwarding that&#x27;s most importantly limited to one specific IP and PORT that can use it: the other device.<p>(There&#x27;s some technical limitations to this like the type of NAT&#x2F;firewall you have, but for the simple home router the above usually works.)