<p><br>
On Jun 13, 2012 6:55 AM, &quot;Phil Mayers&quot; &lt;<a href="mailto:p.mayers@imperial.ac.uk">p.mayers@imperial.ac.uk</a>&gt; wrote:<br>
&gt;<br>
&gt; On 13/06/12 09:38, Nick Hilliard wrote:<br>
&gt;&gt;<br>
&gt;&gt; On 12/06/2012 23:50, Daniel Roesen wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Tue, Jun 12, 2012 at 05:21:05PM -0400, Erik Nygren wrote:<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; A &quot;good&quot; Happy Eyeballs implementation should compare IPv4 vs IPv6<br>
&gt;&gt;&gt;&gt; TCP (HTTP) performance and availability with some preference towards<br>
&gt;&gt;&gt;&gt; IPv6 (whether it is 30ms or 300ms).<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; Unfortunately, Apple thinks different:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; <a href="http://www.ietf.org/mail-archive/web/v6ops/current/msg10080.html">http://www.ietf.org/mail-archive/web/v6ops/current/msg10080.html</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; not an unreasonable position.<br>
&gt;<br>
&gt;<br>
&gt; It&#39;s certainly an argument with a lot going for it, and some interesting implications for IPv6 adoption.<br>
&gt;<br>
&gt; I knocked up a quick C program to connect to all the IPs behind a name (v4 &amp; v6), send an HTTP request, read the response, and report the TCP RTT time using the linux TCP_INFO socket options.<br>
&gt;<br>
&gt; From my location (a UK university with excellent connectivity, no NAT) to <a href="http://www.google.com">www.google.com</a>, I see ~9.8msec RTT over IPv4, and ~11.8msec RTT over IPv6:<br>
&gt;<br>
&gt; $ ./httptime <a href="http://www.google.com">www.google.com</a> 80 | fgrep rtt<br>
&gt; closing 173.194.67.103 6 tx/rx=72/988 rtt/variance 10000/5250<br>
&gt; closing 173.194.67.104 7 tx/rx=72/988 rtt/variance 9875/5250<br>
&gt; closing 173.194.67.106 9 tx/rx=72/988 rtt/variance 9875/6000<br>
&gt; closing 173.194.67.99 5 tx/rx=72/988 rtt/variance 9875/6000<br>
&gt; closing 173.194.67.105 8 tx/rx=72/988 rtt/variance 9875/5250<br>
&gt; closing 173.194.67.147 4 tx/rx=72/988 rtt/variance 9875/6000<br>
&gt; closing 2a00:1450:4007:803::1010 3 tx/rx=72/988 rtt/variance 11000/4250<br>
&gt;<br>
&gt; It&#39;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?<br>

&gt;<br>
&gt; I wonder where this differential is coming in? Anyone have any ideas? It doesn&#39;t seem likely that the extra 20 bytes header is the cause; maybe lower IPv6 per-packet performance on current routers?<br>
&gt;<br>
&gt; 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.</p>
<p>CGN operator here.</p>
<p>CGN does not add any measurable latency.  Specifically in mobile, they are almost always colocated with the other gateway equipment and therefore there is no latency added for indirection and asic processing of the nat is all very fast (you cannot measure it with a Macbook)<br>
</p>
<p>CB<br>
</p>