Search code examples
network-programmingtcpnetwork-protocolshole-punching

Is it the right flow for TCP hole punching for p2p application:


  1. Using stun I will get my external ip/port and NAT type.
  2. On my middle server (public ip), I will register peers external ip/ports (Now server knows peer 1's and 2's external ip/port).
  3. Exchange the ip/port (peer 1 will get to know the peer 2's ip/port).
  4. Simultaneously make connect() call from both the peers.

Is it the right flow?


Solution

  • Your algorithm is correct for UDP. Take a look at these posts for more information: