[sipcore] Happy Earballs

worley@ariadne.com (Dale R. Worley) Tue, 04 April 2017 19:54 UTC

Return-Path: <worley@alum.mit.edu>
X-Original-To: sipcore@ietfa.amsl.com
Delivered-To: sipcore@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AA25C1294E2 for <sipcore@ietfa.amsl.com>; Tue, 4 Apr 2017 12:54:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.934
X-Spam-Level:
X-Spam-Status: No, score=-1.934 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_SOFTFAIL=0.665] autolearn=no 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 o0MR9_30BG7Z for <sipcore@ietfa.amsl.com>; Tue, 4 Apr 2017 12:54:20 -0700 (PDT)
Received: from resqmta-ch2-10v.sys.comcast.net (resqmta-ch2-10v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:42]) (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 56411127449 for <sipcore@ietf.org>; Tue, 4 Apr 2017 12:54:18 -0700 (PDT)
Received: from resomta-ch2-04v.sys.comcast.net ([69.252.207.100]) by resqmta-ch2-10v.sys.comcast.net with SMTP id vUVocXPTY61D9vUWvcYeEU; Tue, 04 Apr 2017 19:54:17 +0000
Received: from hobgoblin.ariadne.com ([IPv6:2601:192:4603:9471:222:fbff:fe91:d396]) by resomta-ch2-04v.sys.comcast.net with SMTP id vUWucFxNGFcZ2vUWvcDs3B; Tue, 04 Apr 2017 19:54:17 +0000
Received: from hobgoblin.ariadne.com (hobgoblin.ariadne.com [127.0.0.1]) by hobgoblin.ariadne.com (8.14.7/8.14.7) with ESMTP id v34JsG1h028982 for <sipcore@ietf.org>; Tue, 4 Apr 2017 15:54:16 -0400
Received: (from worley@localhost) by hobgoblin.ariadne.com (8.14.7/8.14.7/Submit) id v34JsFaC028979; Tue, 4 Apr 2017 15:54:15 -0400
X-Authentication-Warning: hobgoblin.ariadne.com: worley set sender to worley@alum.mit.edu using -f
From: worley@ariadne.com
To: sipcore@ietf.org
Sender: worley@ariadne.com
Date: Tue, 04 Apr 2017 15:54:15 -0400
Message-ID: <87zifw9cew.fsf@hobgoblin.ariadne.com>
X-CMAE-Envelope: MS4wfBzu9grnqoMobto9k9nQFyGtNFZcHhQur2br9RzkBMJ3G8OCHf8hcvp2wkU3UX1kik4gFTryyPL9HKc+Jbi65OMFSM8z3g7VqopFECKQ3fZMXV4Zcsi7 KKazXbRxsaC3PjZnrB4AQ1qKfomnoy9TEW3fExaRKNDai6iY4pmHPy+t
Archived-At: <https://mailarchive.ietf.org/arch/msg/sipcore/ak56TRPQTomr97OUVAbJddPWAMQ>
Subject: [sipcore] Happy Earballs
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: SIP Core Working Group <sipcore.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sipcore>, <mailto:sipcore-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sipcore/>
List-Post: <mailto:sipcore@ietf.org>
List-Help: <mailto:sipcore-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sipcore>, <mailto:sipcore-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Apr 2017 19:54:22 -0000

I've submitted an update on the Happy Earballs algorithm I've been
working on, draft-worley-sipcore-happy-earballs-00, and I'd like
feedback.  The details are in the draft, of course, but the outline is
this:

RFC 3263 specifies that the various target addresses for a SIP message
must be contacted in a particular order.  If a target fails to respond,
the sender has to wait (possibly resending) for 32 seconds (by default)
before moving on to another target.  This creates a horrible user
experience if the sender thinks it has connectivity to a target (e.g.,
an IPv6 address) but doesn't.

To get around this, introduce a new rule:  a sender is allowed to change
the order of contacting targets provided that collectively, all targets
that are "responsive" still receive the traffic distribution that would
result from strict application of RFC 3263.

A sender caches information about the responsiveness of targets and uses
that, along with the DNS information, to decide what order to contact
the targets.  If a sender doesn't have responsiveness information about
a target, it first sends a non-state-changing probe communication to the
target to determine if the target is responsive.  One example of a probe
is an OPTIONS request with "Max-Forwards: 0".

(In the case of two TCP targets, which parallels RFC 6555 and
draft-johansson-sipcore-he-connection, the sender can simultaneously
initiate TCP connections to the targets because the TCP SYNs are probes
of the targets.  Whichever target responds fastest is necessarily
"responsive".)

Within this framework, and the goal of minimizing the time required to
send messages, the sender is confined to a fairly narrow range of
behaviors, which can be characterized by a generic algorithm that has
certain degrees of freedom that can be called a "policy".

Dale