Re: [v6ops] An Update to Happy Eyeballs

Stuart Cheshire <cheshire@apple.com> Thu, 16 March 2017 20:05 UTC

Return-Path: <cheshire@apple.com>
X-Original-To: v6ops@ietfa.amsl.com
Delivered-To: v6ops@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0E9E4129A43 for <v6ops@ietfa.amsl.com>; Thu, 16 Mar 2017 13:05:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.322
X-Spam-Level:
X-Spam-Status: No, score=-4.322 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B6qDqpOCA5dF for <v6ops@ietfa.amsl.com>; Thu, 16 Mar 2017 13:05:03 -0700 (PDT)
Received: from mail-in4.apple.com (mail-out4.apple.com [17.151.62.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 786B41299E5 for <v6ops@ietf.org>; Thu, 16 Mar 2017 13:05:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1489694703; h=From:Sender:Reply-To:Subject:Date:Message-id:To:Cc:MIME-version:Content-type: Content-transfer-encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-reply-to:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=5rKlh3PxYyr+mvfbDZRqCPg3/0Nqq+ni0ueHteKOtkk=; b=NyVuGWidJqDNZwWS8UsFdXZSNZE6XEkP7n+Lq9MpTb42quzL1U1kfj1AjQHXVhyI yEcoa9PHt33yN4fR6+QMyGInkjN+rGd0BdGrlT7GvBxBcnzX/bW+PuTT/1TjlD54 RwnARLXGMESLAc6GI+QrLij4SlsXJIqlZeO+34Lw7HCdhGSrnM1cyUwif9bcGQx+ Mjckf2NGTpN3DYC5JpUAy5Oosjt1hOxw11hSiV/0vup7R7bvbmm9xBAfToSplG+C 4XreRmsQ2mJLq41H/6dnAmnlRYGLgqr4vOnJ1h1p+T+sChMRSD5HrZkSSmHLtLwa JhC0URFVaV//d825M+9khQ==;
Received: from relay3.apple.com (relay3.apple.com [17.128.113.83]) by mail-in4.apple.com (Apple Secure Mail Relay) with SMTP id 50.8D.24168.FEFEAC85; Thu, 16 Mar 2017 13:05:03 -0700 (PDT)
X-AuditID: 11973e12-62fd39a000005e68-48-58caefefabe0
Received: from nwk-phonehomebzp-sz01 (nwk-phonehomebzp-sz01.apple.com [17.151.62.64]) by relay3.apple.com (Apple SCV relay) with SMTP id F4.32.01494.EEFEAC85; Thu, 16 Mar 2017 13:05:03 -0700 (PDT)
MIME-version: 1.0
Content-type: text/plain; charset="utf-8"
Received: from [17.226.23.37] (unknown [17.226.23.37]) by nwk-phonehomebzp-sz01.apple.com (Oracle Communications Messaging Server 8.0.1.2.20170210 64bit (built Feb 10 2017)) with ESMTPSA id <0OMX00HZOBSENG40@nwk-phonehomebzp-sz01.apple.com>; Thu, 16 Mar 2017 13:05:02 -0700 (PDT)
Sender: cheshire@apple.com
From: Stuart Cheshire <cheshire@apple.com>
In-reply-to: <20170315034622.0EAB566D1CED@rock.dv.isc.org>
Date: Thu, 16 Mar 2017 13:05:56 -0700
Cc: David Schinazi <dschinazi@apple.com>, IPv6 Operations <v6ops@ietf.org>
Content-transfer-encoding: quoted-printable
Message-id: <73FB4EA3-98CE-47F7-AE3D-A010A321A906@apple.com>
References: <148899860042.20118.391380898590855642.idtracker@ietfa.amsl.com> <A609BABB-BDF2-4CCB-8452-F489C019748C@apple.com> <m1clvfj-0000FCC@stereo.hq.phicoh.net> <ABE752F6-895B-431C-9E94-E0CD2FDDB2E3@apple.com> <m1cmTQX-0000IcC@stereo.hq.phicoh.net> <92EEB875-288D-4CF9-B81F-3B5C8EA49F53@apple.com> <CAKC-DJjeUX1rRB_e99SGJS06RoFZ6E6A8Tpj0hPAvfS6+L+XWA@mail.gmail.com> <BAEBBDCE-790E-43D7-BD2A-AE1BF9B81B34@apple.com> <20170315034622.0EAB566D1CED@rock.dv.isc.org>
To: Mark Andrews <marka@isc.org>
X-Mailer: Apple Mail (2.3124)
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrJLMWRmVeSWpSXmKPExsUi2FAYrPv+/akIgwdTxSyuvLjPYnH62F5m ByaPJUt+Mnk8ePyOOYApissmJTUnsyy1SN8ugStjVv8G5oJLYhX7flxgamCcJ9TFyMkhIWAi 8fb6bCYQW0hgL6PEiU0CCPHnzF2MXEDxY4wS7+fNYQVJ8AoISvyYfI+li5GDg1lAXWLKlFyI mvlMEhM6z7GD1AgLSEm8WvmZGaRGWMBA4uf9TJAwm4CWxIvPV9hAwpwCVhIrpvmBhFkEVCUm X1jEBmIzC3hJnD6zlgnC1pZ48u4C1FYbid+PN7NBrHrILDHrx3SwVSICChJtb18xQdwsK/Hk 5CIWkCIJgTVsEt++T2SZwCg8C8nZsxDOnoVkxwJG5lWMQrmJmTm6mXkmeokFBTmpesn5uZsY QWE93U5oB+OpVVaHGAU4GJV4eDMWnooQYk0sK67MPcQozcGiJM7Lv/hEhJBAemJJanZqakFq UXxRaU5q8SFGJg5OqQbGct7vDrM7jnco/34hY+W+tsBBaf+7R1KPqtKqK8PZt/sfZ3XQyth0 zmfmqZjF6w+fvt8lXyB0+slnhoDjD6U5LRom7cp1OOhTEx/F6c55du69XVzen602C013vzZ5 IcuLR2LFEtuLio7eTZGuX72lLp/Fe+2/X++cVBf9q7bbsmiHzdRZD81ZlFiKMxINtZiLihMB 9y8kXUwCAAA=
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeLIzCtJLcpLzFFi42IRnG7noPv+/akIg3UN/BZXXtxnsTh9bC+z A5PHkiU/mTwePH7HHMAUxWWTkpqTWZZapG+XwJUxq38Dc8ElsYp9Py4wNTDOE+pi5OSQEDCR eHv9OXMXIxeHkMAxRon38+awgiR4BQQlfky+x9LFyMHBLKAuMWVKLkTNfCaJCZ3n2EFqhAWk JF6t/MwMUiMsYCDx834mSJhNQEvixecrbCBhTgEriRXT/EDCLAKqEpMvLGIDsZkFvCROn1nL BGFrSzx5dwFqq43E78eb2SBWPWSWmPVjOtgqEQEFiba3r5ggbpaVeHJyEcsERoFZSC6dhXDp LCRjFzAyr2IUKErNSaw01kssKMhJ1UvOz93ECArEhsLgHYx/llkdYhTgYFTi4c1YeCpCiDWx rLgy9xCjBAezkghv+AOgEG9KYmVValF+fFFpTmrxIcYqoGcmMkuJJucDoySvJN7QxMTAxNjY zNjY3MScKsJK4ry/tE5GCAmkJ5akZqemFqQWwSxn4uCUamDc/WnDXjXzhMXT9CMC8nU2v+Ca fNHpZv+6H9klBixrSz9d6U86+bzh8r6bWgeMnm3m6z7+7Kf6pXhHXW1r7VUHp+f+nOU0y/K9 WNpZzRaJZeUaTzZcOsZ2kG23xO6qed5/TNeKzaq786f0PIdlq+S1B+9tc79vOXa0yUHlw65T 6VnfBPJLZP4vVmIpzkg01GIuKk4EAB1Y0iCfAgAA
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/PncnS9KwfKxsya35cHx2PH7Fm8w>
Subject: Re: [v6ops] An Update to Happy Eyeballs
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: v6ops discussion list <v6ops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/v6ops>, <mailto:v6ops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/v6ops/>
List-Post: <mailto:v6ops@ietf.org>
List-Help: <mailto:v6ops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/v6ops>, <mailto:v6ops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 16 Mar 2017 20:05:05 -0000

On 14 Mar 2017, at 20:46, Mark Andrews <marka@isc.org> wrote:

> So you now want Happy Eyeballs, which was designed to remove delays
> of 10's - 100's of seconds before failover, to now override address
> selection policies because the DNS's cache has one address type
> present and not the other.  That is what the 50ms timer achieves.
> It takes ~200ms to get a answer from the other side of the world
> with terrestial links.
> 
> Happy Eyeballs was never about having the absolute fastest time to
> connect.  It was about establishing a connection in a reasonable
> amount of time in presence of network / server failures without
> having ridiciously long failover delays.

What an utterly absurd statement, to claim to speak for the authors “Happy Eyeballs”, and tell us what our invention was or was not designed to do.

Back in 2007 and 2008 at Apple we started to get real-world bug reports about web sites being unusable. These were major web sites, whose DNS servers simply failed to answer AAAA queries, causing unusably long timeouts before getaddrinfo() completed. I won’t name names, because incredibly, some of these major web sites still have broken DNS servers. Some fixed their DNS servers, only then later to break them again.

Without some workaround in place, any ISP attempting to turn on IPv6 support would have caused client devices to start doing AAAA queries, which time out, which make web sites unusable, which results in complaints from customers, which results in the ISP turning off IPv6 support. So it was vital that we work out how to allow an ISP to enable IPv6 without enraging their customers.

In July 2008 I gave a presentation at the Technical Plenary at IETF 72 in Dublin about how Apple fixed this problem, recommending that others do the same. If you haven’t watched the presentation, please do, before telling us what our invention was designed to do. It’s not very long.

<http://www.stuartcheshire.org/IETF72/>

Dan Wing and Andrew Yiurtchenko decided to write up a subset of my recommendations as RFC 6555. Inexplicably they decided to document the asynchronous TCP connection racing, but not the asynchronous DNS query racing, which is odd, given that, at the time, DNS failure to answer AAAA queries was the dominant problem.

Still, Dan Wing and Andrew Yiurtchenko wrote a good, if incomplete, RFC.

Now, nine years later, Tommy Pauly and David Schinazi thought it was about time we shared the remainder of the relevant information with the community.

Like it or not, this is in fact what Apple networking products do, and have done for many years, and, regardless of what you think, it does provide a better user experience than a synchronous blocking call to getaddrinfo().

Stuart Cheshire