Re: [DNSOP] [v6ops] New Version Notification for draft-v6ops-xie-network-happyeyeballs-00.txt

Philip Homburg <pch-v6ops-8@u-1.phicoh.com> Wed, 26 September 2018 09:27 UTC

Return-Path: <pch-bCE2691D2@u-1.phicoh.com>
X-Original-To: dnsop@ietfa.amsl.com
Delivered-To: dnsop@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 565B9130E0E; Wed, 26 Sep 2018 02:27:58 -0700 (PDT)
X-Quarantine-ID: <giNguRAerm2S>
X-Virus-Scanned: amavisd-new at amsl.com
X-Amavis-Alert: BAD HEADER SECTION, Duplicate header field: "Cc"
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9] autolearn=ham autolearn_force=no
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 giNguRAerm2S; Wed, 26 Sep 2018 02:27:56 -0700 (PDT)
Received: from stereo.hq.phicoh.net (stereo6-tun.hq.phicoh.net [IPv6:2001:888:1044:10:2a0:c9ff:fe9f:17a9]) (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 DB27E130DD0; Wed, 26 Sep 2018 02:27:55 -0700 (PDT)
Received: from stereo.hq.phicoh.net (localhost [::ffff:127.0.0.1]) by stereo.hq.phicoh.net with esmtp (TLS version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384) (Smail #157) id m1g566p-0000GjC; Wed, 26 Sep 2018 11:27:51 +0200
Message-Id: <m1g566p-0000GjC@stereo.hq.phicoh.net>
To: v6ops@ietf.org
Cc: George Michaelson <ggm@algebras.org>
Cc: dnsop WG <dnsop@ietf.org>
From: Philip Homburg <pch-v6ops-8@u-1.phicoh.com>
Sender: pch-bCE2691D2@u-1.phicoh.com
References: <153751052820.5339.10049404273601155140.idtracker@ietfa.amsl.com> <CAAObRXLWpXVbPyyxuzJH8osi+R1rdV8N8=Woqvq3UR9nk8kDaA@mail.gmail.com> <CAJE_bqd4jjeZy9Stp-v6O0VOyvEJiE9vW1BLuy-wzqPGvDagoQ@mail.gmail.com> <CAAObRX+6ktcD8i_aToKbX7UJoSPT0NMPV0xKqT8-k+7_d0R5Nw@mail.gmail.com> <20180925072015.GV11393@Space.Net> <CAAObRXKhS++5_cmvjTx3LY+ti6NbGj1NvtL6XeQGOvYuJKw0uw@mail.gmail.com> <3BDC24C2-6D51-4FF1-8A48-CAD4F8CEBF9C@employees.org> <CAAObRXJd3Ym_JezijzFVGGUj6hnkLd78dA-B_oug1gZ_-kbeAw@mail.gmail.com> <CAKr6gn0p0ayWimZ8kWCAfNhLnpaK3j9WOGOmNCMXMac=cLR1Tw@mail.gmail.com>
In-reply-to: Your message of "Wed, 26 Sep 2018 12:58:30 +1000 ." <CAKr6gn0p0ayWimZ8kWCAfNhLnpaK3j9WOGOmNCMXMac=cLR1Tw@mail.gmail.com>
Date: Wed, 26 Sep 2018 11:27:50 +0200
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnsop/Rc3IGlomXKiLJrIE9gBaVt2NUgQ>
Subject: Re: [DNSOP] [v6ops] New Version Notification for draft-v6ops-xie-network-happyeyeballs-00.txt
X-BeenThere: dnsop@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF DNSOP WG mailing list <dnsop.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnsop>, <mailto:dnsop-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnsop/>
List-Post: <mailto:dnsop@ietf.org>
List-Help: <mailto:dnsop-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnsop>, <mailto:dnsop-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 26 Sep 2018 09:27:58 -0000

In your letter dated Wed, 26 Sep 2018 12:58:30 +1000 you wrote:
>I have said before, but don't know if I still adhere to it, but
>anyways, here's a question: How *long* do people think a biassing
>mechanism like HE is a good idea?
>
>I used to love HE. I now have a sense, I'm more neutral. Maybe, we
>actually don't want modified, better happy eyeballs, because we want
>simpler, more deterministic network stack outcomes with less bias
>hooks?

In my own implementation of HE, I globally (i.e. across all processes) keep
track of the time it takes to establish a TCP connection for individual
addresses, and I compute values for IPv4 and IPv6.

Conceptually I like the idea that if you know (from past measurements) that 
it takes 100ms or less to establish a connection, you don't wait for a
couple of seconds for an attempt to fail. In addition, instead of trying
one address at a time, you can add a new connection attempt when the
previous one is still running.

All of this provides for a better user experience, at the cost of being
less deterministic and masking failures.

Note that in my implementation, I select the best address (giving a 30ms
preference to IPv6) wait for the expected time for the TCP connection
to complete and only if that timer expires, move to the next address.
So there is no race.