We're going with RakNet - this is a commercial networking component for games, it's not free :(
But it's very well written, and is cross-platform ready (and has a Steam back-end).

So ignoring Steam for now, we've implemented a Reliable UDP peer-based (and peer-hosted) game network, which uses a master / authentication / lobby / hotpatch server to allow users to discover (remotely hosted) games and to advertise the games they are hosting.

So far the system is not very smart, but is very robust.
NAT Discovery and NAT PunchThrough are built into our implementation.
It's a good start!

Posted on 2012-11-04 01:21:19 by Homer
I've already written a robust networking solution in asm, but it can not cross platforms.
For this reason alone, I find myself less in love with asm than my past 30 years of programming would suggest. But do not despair, if I need to write my cross platform assembler in another language, I will just do that. Your friend, H.
Posted on 2012-11-06 05:40:17 by Homer