I haven’t dove into P2P enough yet, been busy getting the Merkle DAG Trees working in a user-server model, but there may be other historic examples we can learn from beyond WebRTC — that also attempt to circumvent the NAT issues.
“2. UPnP and NAT-PMP: Many torrent clients use UPnP (Universal Plug and Play) or NAT-PMP (NAT Port Mapping Protocol) to automatically configure port forwarding on the router. If the router supports these protocols, the torrent client can open a port for incoming connections without manual configuration.
3. Hole Punching: Torrent clients also often use TCP or UDP hole punching. This is similar to the technique used by WebRTC, where two peers each initiate a connection to each other at the same time after having received the external port and address information, which can trick the NAT into thinking that the incoming packets are part of an established connection.”