I must disagree with the previous answer.
While the P2P mechanisms built into .NET use PNRP, limited online examples have more to do with developer ignorance than any network restrictions.
I developed a rather complex P2P application using the peer channel / netPeerTcpBinding. This application works almost without problems in Windows XP SP3 or higher and works through the Internet.
IPv6 XP SP3 +, , PNRP. , , , 95% .
, , . Teredo, UDP 3544. 2 PNRP (XP SP3 +) NAT.
, P2P - .