On that point, is it actually? I've been messing around with p2p lately and everything is behind a Nat these days, it's almost impossible to do without a relay server which will probably be a dedicated relay server since most clients are going to be behind some sort of router.
And before anyone says hole punching, thats pretty much useless these days since almost all NATs are symmetric Nats now, the outgoing and incoming ports won't be matched the same even if the same socket is the same one. (if anyone is having success with this I'd love to know how they are doing it)