happy CGN -- beating happy eyeballs and trending toward E2E success
Phil Mayers
p.mayers at imperial.ac.uk
Wed Jun 13 15:54:58 CEST 2012
On 13/06/12 09:38, Nick Hilliard wrote:
> On 12/06/2012 23:50, Daniel Roesen wrote:
>> On Tue, Jun 12, 2012 at 05:21:05PM -0400, Erik Nygren wrote:
>>> A "good" Happy Eyeballs implementation should compare IPv4 vs IPv6
>>> TCP (HTTP) performance and availability with some preference towards
>>> IPv6 (whether it is 30ms or 300ms).
>>
>> Unfortunately, Apple thinks different:
>>
>> http://www.ietf.org/mail-archive/web/v6ops/current/msg10080.html
>
> not an unreasonable position.
It's certainly an argument with a lot going for it, and some interesting
implications for IPv6 adoption.
I knocked up a quick C program to connect to all the IPs behind a name
(v4 & v6), send an HTTP request, read the response, and report the TCP
RTT time using the linux TCP_INFO socket options.
From my location (a UK university with excellent connectivity, no NAT)
to www.google.com, I see ~9.8msec RTT over IPv4, and ~11.8msec RTT over
IPv6:
$ ./httptime www.google.com 80 | fgrep rtt
closing 173.194.67.103 6 tx/rx=72/988 rtt/variance 10000/5250
closing 173.194.67.104 7 tx/rx=72/988 rtt/variance 9875/5250
closing 173.194.67.106 9 tx/rx=72/988 rtt/variance 9875/6000
closing 173.194.67.99 5 tx/rx=72/988 rtt/variance 9875/6000
closing 173.194.67.105 8 tx/rx=72/988 rtt/variance 9875/5250
closing 173.194.67.147 4 tx/rx=72/988 rtt/variance 9875/6000
closing 2a00:1450:4007:803::1010 3 tx/rx=72/988 rtt/variance 11000/4250
It's worth noting that, in this case, these numbers correspond very
closely indeed to ping and simple 3-way handshake timings, although in
the general case I would expect those to be slightly slower over IPv6 as
the header size dominates?
I wonder where this differential is coming in? Anyone have any ideas? It
doesn't seem likely that the extra 20 bytes header is the cause; maybe
lower IPv6 per-packet performance on current routers?
I also wonder if basic consumer-grade NAT, or CGN, will impose enough
overhead to reverse this. It might be the case that CGN end up being
hardware-based, and impose so little overhead that IPv4 remains faster.
More information about the ipv6-ops
mailing list