...and many P2P UDP protocols don't use a well-known port anyway. Because even if they did, NAT would screw them by mapping it.
I agree with the article's rant about port number being obsolete. A service space of 16 bits sucks. IPV6 provides a Solution to this: advertise a different IPV6 address (multi-home) for each service, and use the DNS to resolve, not the TCP address. I think.
Actually my point was that with protocols like GRE it difficult to NAT more than one stream through an IP address. Also even if you do work that out (people have it seems) you need to work it out for every protocol which is not how the layers of TCP/IP were supposed to work.
I agree with the article's rant about port number being obsolete. A service space of 16 bits sucks. IPV6 provides a Solution to this: advertise a different IPV6 address (multi-home) for each service, and use the DNS to resolve, not the TCP address. I think.