Are there any practical speed/latency gains from using IPv6, or is it just to make room for more IPs?
Practical impact? Not really. The effect is pretty small. Where you might run into it is in high latency links (think satellite) where the MTU (maximum transfer unit) is small, which magnifies the impact of the larger overhead IPv6 requires. That's an edge case. The other area where you'll see impacts is when you're doing 6 to 4 translations in the network path, as that always takes some time. But if you had a pure v6 path to that other v6 host such latencies won't be an issue.
In these days of TCP Offload Engines coming built in to more and more network stacks the impact is even less likely to be noticed. If any. In fact, it may even be faster in those cases.
Why is that larger header not as much of a factor as you think? That's because the designers of v6 took some of the lessons of v4 and built things better. Most importantly for cross-internet communications the address fields are handled much more efficiently in routers than in v4, which improves speed of v6 packets through routers as compared to their v4 cousins.
When it comes to same subnet communications where router tables aren't a concern, each packet requires less raw computation. There is one less checksum to validate (Ethernet checksum, no IP checksum for v6, but TCP/UDP checksum is still required) which saves small amounts of time. And on special networks, the ability to have VERY large packets can further save processing.
You might see performance improvements with IPv6 if there is a slow router between you and your destination which would have fragmented IPv4 packets along that path. With IPv6, routers will no longer fragment packets for you. (the responsibility has been delegated to end nodes.)
Of course, this is an edge case. There is no reason to believe IPv6 will perform better than IPv4 in the general case.
Also, router vendors may also have optimized their IPv4 data paths more than their IPv6 data paths. So until IPv6 routers have equivalent optimizations, IPv6 may be slower. (For example, some routers may do IPv4 routing in hardware, but IPv6 in software. High-speed performance tests would have to be done to identify this.)
So you have to weigh the chances that there is a router that isn't optimized for IPv6 between you and your destination with the chances that there is a router doing fragmentation of IPv4 packets between you and your destination. ;-)
I've been running dual stack IPv6/IPv4 for a while now, and I'm a huge fan.
I can tell you that most of the time the performance and latency are about the same. But on occasion, IPv6 will make your jaw drop.
Consider my ping times to Google:
rtt min/avg/max/mdev = 35.557/38.225/43.909/3.146 ms
rtt min/avg/max/mdev = 39.202/40.923/43.105/1.501 ms
Nearly identical. That's what I see most of the time. But every so often, such as when I'm accessing one of my own servers, which is also on IPv6...
rtt min/avg/max/mdev = 123.510/124.249/125.997/0.909 ms
rtt min/avg/max/mdev = 87.140/88.600/90.727/1.255 ms
The big difference here, of course, is my ISP's less than optimal IPv4 routing for this route and much better IPv6 routing. (IPv4 goes Boston-Chicago-Denver-Seattle-LA-Phoenix. WTF? IPv6 goes Boston-DC-Atlanta-Dallas-Phoenix.) I suspect there are lots more of these out in the wild.
In my experience of comparing
traceroute, IPv6 is faster, even through a tunnel broker. This is probably because IPv6 generally requires fewer hops to get from point A to B.
Here's a third-party source backing up my observation:
Accessing sites and content over the Internet is usually faster with IPv6 than with IPv4 because with the new protocol it requires fewer "hops" between network nodesHere is a little experiment I ran using
ping6, and my Hurricane (tunnelbroker.net) tunnel, gathering the sites with both IPv6 and IPv6 capabilities from http://test-ipv6.com:
SITE IPv4 hops IPv6 hops IPv4 ping (min/avg/max/mdev ms) IPv6 ping (min/avg/max/mdev ms) 6connect.com 14 8 67.253/72.499/106.113/11.265 55.031/58.340/74.078/5.426 bind.com 13 10 45.450/53.924/98.121/15.158 60.002/82.812/196.221/41.448 comcast6.net >13 10 - 92.043/92.840/94.055/0.680 delong.com 11 7 59.059/66.432/95.884/10.134 52.423/73.042/135.103/30.874 mozilla.org >11 6 33.178/97.481/536.719/148.432 45.562/47.133/48.390/0.805 test-ipv6.chi.vr.org 9 9 85.383/286.941/527.103/155.351 76.788/169.458/516.502/147.166 test-ipv6.com 10 5 34.021/39.507/70.518/10.384 33.009/41.441/70.052/13.069 test-ipv6.iad.vr.org 15 13 86.739/93.772/120.192/10.195 91.341/93.146/97.153/2.006 test-ipv6.motd.be >14 8 86.186/401.432/1629.098/502.373 92.437/481.830/727.557/241.649 test-ipv6.sjc.vr.org 12 6 35.443/40.502/70.426/10.056 33.953/41.144/85.444/14.862 tunnelbroker.net >9 >4 39.504/46.119/73.483/10.290 32.559/63.532/222.700/62.022So, indeed, IPv6 uses fewer hops and is overall no worse, if not slightly better, performance-wise than IPv4, even though my IPv6 is going through a tunnel.
No, there would be no speed gains to speak of, although routing tables are certainly made simpler.
To say that IPv6 "just" makes more room on the net is like saying the Milky Way Galaxy "just" makes more room for dust grains. IPv6 essentially makes it so that it's literally impossible to run out of IP addresses. Even if we were to carpet the entire surface of the earth with CPUs, each with its own IP address, we'd still come nowhere near IP exhaustion. The number of IP addresses in v6 is totally incomprehensible.