hart wrote:
Do you know much about port and connection limits per IP address?
Yes, I do, and I fully understand your previous point about not being able to find a free ephemeral port if 2000 devices are NAT'd together on the same IP address. But that's exactly why I think your argument is alarmist and unrealistic.
There simply aren't enough Internet-facing devices in the USA to put 2000 of them per available IP address. In fact, we're only now approaching 1 device per available IP address, or else the IPv4 space would have been exhausted long ago. There is no reason to suppose that the number of Internet-facing devices will increase by three orders of magnitude, or even two orders of magnitude, within the next decade or two. There's a huge difference between 2000 devices per IP and 20 devices per IP. The latter is definitely manageable if the ISP knows what it's doing.
Many popular protocols, such as HTTP(S), do not require the client to have its own IP address. Millions of people use web sites every day without even realizing that the modem they leased from the ISP uses NAT to connect their PC, laptop, PS3, and other devices together. The friggin' future smartfridge doesn't need its own IP address to run a don't-forget-the-milk app. Some smartphones require their own IP address only because the phones and their apps were designed with unrealistic assumptions. Given that most smartphones become obsolete in 2-3 years, it is entirely possible for newer phones and apps to gain NAT compatibility before the ISPs really run out of IPv4 addresses.
I never said that there won't be any problems when we run out of IPv4 addresses. There will be. But the problems will be nowhere as serious as you make them out to be. Acceptable solutions can and will be found, and people will learn to live with a few more milliseconds of latency on their 3G connection for a few years while IPv6 settles down. Heck, 3G in many areas already has a latency of over 100ms.
Case in point: I've seen a VPS host in the Asia-Pacific region where they don't give public IPv4 addresses to their customers.
NAT on the server side? Impossible! No, it's not impossible. HTTP (port 80) is proxied through a shared IP address, and there's an automated control panel where you can add/edit/delete your hostnames. Other ports can also be forwarded in a similar manner, including HTTPS. There are always enough ports to go around, because they put only a handful of customers per IP address. Where there's a will, there's a solution. There's no need for alarmism.