Re: [sipcore] Happy Eyeballs for SIP

"Asveren, Tolga" <tasveren@sonusnet.com> Wed, 14 December 2016 17:11 UTC

Return-Path: <tasveren@sonusnet.com>
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 B556112951D for <sipcore@ietfa.amsl.com>; Wed, 14 Dec 2016 09:11:14 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=sonusnetworks.onmicrosoft.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 Oppjp2Cjevr9 for <sipcore@ietfa.amsl.com>; Wed, 14 Dec 2016 09:11:12 -0800 (PST)
Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0060.outbound.protection.outlook.com [104.47.40.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C5481129E94 for <sipcore@ietf.org>; Wed, 14 Dec 2016 09:11:03 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=SonusNetworks.onmicrosoft.com; s=selector1-sonusnet-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=pUy5P3TLMkSeUV+hmgWDCgkigCkWgALtTkhqwS7qACI=; b=M/t7VAjv/2eylMk4trbZmZqAEk1Bw6wnJLkpFazG61jd+g8lAp4afxwi1GAhqG5Ue81edzqwj6cx6GQs/nW7b0Rtcyqq5459PCMg3Y47fqIlrpziTMHM9fdc4GcTFprqAWfDfuV3V+AZvEuKaro+cWPlOkH+RjbzASinj9ZVIFk=
Received: from SN2PR03MB2350.namprd03.prod.outlook.com (10.166.210.141) by SN2PR03MB2352.namprd03.prod.outlook.com (10.166.210.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.771.8; Wed, 14 Dec 2016 17:11:02 +0000
Received: from SN2PR03MB2350.namprd03.prod.outlook.com ([10.166.210.141]) by SN2PR03MB2350.namprd03.prod.outlook.com ([10.166.210.141]) with mapi id 15.01.0771.014; Wed, 14 Dec 2016 17:11:02 +0000
From: "Asveren, Tolga" <tasveren@sonusnet.com>
To: "Dale R. Worley" <worley@ariadne.com>
Thread-Topic: [sipcore] Happy Eyeballs for SIP
Thread-Index: AQHSVWVMRj/FKGerzk2IPpPFNc5xDqEGPnvw
Date: Wed, 14 Dec 2016 17:11:01 +0000
Message-ID: <SN2PR03MB235097F6085678C53AF73F44B29A0@SN2PR03MB2350.namprd03.prod.outlook.com>
References: <SN2PR03MB2350C0711DE8F0B8C6EC44DBB29B0@SN2PR03MB2350.namprd03.prod.outlook.com> (tasveren@sonusnet.com) <87shprvj7c.fsf@hobgoblin.ariadne.com>
In-Reply-To: <87shprvj7c.fsf@hobgoblin.ariadne.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=tasveren@sonusnet.com;
x-originating-ip: [73.29.18.75]
x-ms-office365-filtering-correlation-id: 365b3273-282a-456a-1ba2-08d424442e71
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:SN2PR03MB2352;
x-microsoft-exchange-diagnostics: 1; SN2PR03MB2352; 7:fjieEnB7acVqQ/1Ytr/vBPyfFsXxuSWR1+aZA3AomM2tzBs4KyK8i5PS/z7EiiSo2udAgLL2r9LiDULRcRfQ6q0mnuP2l37fxNdqS8CD84Ci9LD2yG9jJeY60Fa7VS1yv8+Qccz+C0hOM5GRuFYuJBS3UlDU4NroXqXTgeQV45HdtwmRS33yfmDOxDtkv2EyRIAKz7X2/ivkbTlb26vIAYIuvRIF8lSKcqWSpmzgOOrvyKWvAnfQGG6uhtSnms5fLsBVPyJT3Qvfkr8aKMARgSVcYUkQYq1I3+TMGZM0mHLBXRqTNu5haCEKUdoG/U3EqeYJSR6+A4CYjgQntd8wjiYU7Bz0ALPt2GAPkei57XoJpDUHau9ik2NSdZxO4M7Sy59lVJTdemY3xFC5lz9XkofW6nS/JLNNLCsSrb56KowtvJ0SrmOdZDF9vNBDd+BgY+VRAJe7BtcSwvxTmzN/OA==
x-microsoft-antispam-prvs: <SN2PR03MB2352060B544585B97C383774B29A0@SN2PR03MB2352.namprd03.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(100405760836317);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123555025)(20161123558021)(20161123560025)(20161123564025)(20161123562025)(6047074)(6072148); SRVR:SN2PR03MB2352; BCL:0; PCL:0; RULEID:; SRVR:SN2PR03MB2352;
x-forefront-prvs: 01565FED4C
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(979002)(6009001)(7916002)(39450400003)(39410400002)(39840400002)(199003)(13464003)(377454003)(189002)(8676002)(2900100001)(6916009)(189998001)(81156014)(6506006)(6436002)(66066001)(110136003)(106116001)(38730400001)(9686002)(25786008)(92566002)(122556002)(74316002)(86362001)(77096006)(81166006)(8936002)(106356001)(2950100002)(105586002)(7696004)(229853002)(33656002)(3280700002)(99286002)(5660300001)(68736007)(305945005)(3660700001)(76576001)(102836003)(6116002)(54356999)(76176999)(3846002)(50986999)(7736002)(2906002)(101416001)(4326007)(97736004)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR03MB2352; H:SN2PR03MB2350.namprd03.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en;
received-spf: None (protection.outlook.com: sonusnet.com does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: sonusnet.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Dec 2016 17:11:01.9681 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 29a671dc-ed7e-4a54-b1e5-8da1eb495dc3
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR03MB2352
Archived-At: <https://mailarchive.ietf.org/arch/msg/sipcore/FKNl3Y5ESrIqDQZqc6_aIy1r6OQ>
Cc: "sipcore@ietf.org" <sipcore@ietf.org>
Subject: Re: [sipcore] Happy Eyeballs for SIP
X-BeenThere: sipcore@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 14 Dec 2016 17:11:14 -0000

Inline...

Thanks,
Tolga

> -----Original Message-----
> From: Dale R. Worley [mailto:worley@ariadne.com]
> Sent: Tuesday, December 13, 2016 12:21 PM
> To: Asveren, Tolga <tasveren@sonusnet.com>
> Cc: sipcore@ietf.org
> Subject: Re: [sipcore] Happy Eyeballs for SIP
> 
> "Asveren, Tolga" <tasveren@sonusnet.com> writes:
> >> From: sipcore [mailto:sipcore-bounces@ietf.org] On Behalf Of Dale R.
> >> Worley
> >> Sent: Monday, December 12, 2016 7:15 PM
> >> To: sipcore@ietf.org
> >> Subject: [sipcore] Happy Eyeballs for SIP
> >>
> >> This is the start of getting the Happy Eyeballs for SIP work going in
> >> the working group.
> >>
> >> The authors (Olle Johansson, Gonzalo Salgueiro, Dale Worley) are
> >> working with the following strategy (at this time):  The first
> >> tranche is the case where (1) alternative addresses are provided by A
> >> and AAAA records based on one host name, i.e., we are not considering
> >> multiple SRV records, and (2) all of the targets use
> >> connection-oriented protocols.
> >
> > i- Why only A/AAAA records? What about cases where a different SRV
> > record is used for each supported address family? AFAIU this type of
> > configuration is already mentioned in RFC7984.
> 
> Indeed, that configuration is mentioned in 7984, and was inserted into
> 7984 because it is such a common configuration.  However, we decided to
> not handle SRV in this tranche because a comprehensive approach to SRV is
> complicated and nobody has yet proposed a solution that promises to meet
> the desiderata, viz.:
> 
> - achieve the Happy Eyeballs effect, that is, traffic will be very
>   rarely delayed by unreachability of one or more of the targets
> 
> - achieve the specified effect of SRV, that is, among the set of targets
>   which are reachable, over the long run, the traffic will be
>   distributed among them according to the specified priorities and
>   weights in the SRV records
[TOLGA] I understand that "perfect outcome" may be hard to describe -let alone to achieve- especially considering various deployment models/expectations. OTOH, I would think that allowing some freedom in terms of ordering could be all what needs to be mentioned in the specification, e.g. 
Rather than:
One ought to use the SRV records according to their weight/priority where eventually only one of them is the winner and is resolved
This:
One may resolve all/a sub-set of available SRV records by also considering IP Address Family and IP Address Family can be also considered for the order of the queries 

I can provide text/edit the document if we can reach a conclusion/consensus on this point.
> 
> > RFC3263 is a bit vague regarding what needs to be done if there are
> > multiple SRV records:
> >    "If no NAPTR records are found, the client constructs SRV queries for
> >    those transport protocols it supports, and does a query for each."
> > Does this mean "for all transports for the selected -according to
> > priority/weight- SRV Record" or "for all transport/SRV Record pairs".
> 
> Well, since the priorities/weights are extracted from the SRV records, the
> priorities/weights cannot affect how the SRV records are queried for.  My
> interpretation is "for each transport that the client supports and that is
> permitted by the URI scheme and the 'transport' option of the URI (if any),
> the client constructs an SRV query for the URI scheme, the transport and the
> target domain name".  Of course, if there are multiple SRV records for a
> scheme/transport/domain name combination, the single query will return all
> of them.  Thus, a query for sip/TCP/example.com would return the two SRV
> records you quoted:
> 
> > I tend to think the former but RFC7984 seems to differ:
> > "For example, consider a server with DNS name example.com, with TCP
> >    transport specified.  The relevant SRV records for example.com are:
> >
> >       _sip._tcp.example.com.  300 IN SRV 10 1 5060 sip-1.example.com.
> >       _sip._tcp.example.com.  300 IN SRV 20 1 5060 sip-2.example.com.
> 
> Once all the SRV records are obtained, the priority/weight processing is
> applied to them.
> 
> Although it is not specified in RFC 2782 (SRV records), the standard practice
> seems to be that all of the SRV records obtained for all of the protocols are
> considered as a single set for priority/weight processing, which generates an
> ordered list of the target domain names of the SRV records.  (Of course, in
> this example, that is not relevant, since both of the SRV records are for TCP,
> and so are obtained by one SRV query, while the UDP SRV query obtains no
> records.)
> 
> >    The processing of [RFC2782] results in this ordered list of target
> >    domain names:
> >
> >       sip-1.example.com
> >       sip-2.example.com"
> 
> > Then it lists all addresses for both of the SRV Records. Granted, it
> > mentions that addresses are not interleaved but nonetheless it assumes
> > that a query is performed for both of the SRV Records.
> 
> Actually, one query was done, for _sip._tcp.example.com, and it returned
> both records.
> 
> > I am not sure
> > what the right interpretation should be here but it is not
> > well-defined to say the least. To me, it seems like RFC7984 should be
> > updating RFC3263 normatively in this aspect as well -to promote the
> > RFC7984 defined behavior-. And IMHO it would be up to the
> > Happy-Eyeballs draft to define how addresses from multiple SRV Records
> > should be used. Cases, where a dual-stack entity does not know whether
> > IPv4/IPv6 is preferred and multiple SRV records are used for different
> > address families on different servers should be covered as well.
> 
> Can you give an example where the procedures of RFC 2782 aren't sufficient
> to resolve this problem?
[TOLGA]  "Usage Rules" section of RFC2782 seem to imply:
i- A list is prepared by querying all SRV records. Queries are performed by the priority/weight based ordering.
ii- And then there is "freedom" in terms of selecting the server to actually use.

I think i- is where some improvement could be useful in the context of happy-eyeballs. The IP Address Family can be used as a third parameter -in addition to priority/weight- when ordering DNS queries. Granted, one may argue that all queries can be performed in parallel but still some clarification text in the specification could be a good idea to highlight this and prevent any confusion.
> 
> > ii- Why only for connection-oriented protocols? I think the generic
> > problem happy-eyeballs addresses and what is targeted with
> > draft-worley-sip-he-connection-01 are different. The former can be a
> > building block for the latter but that shouldn't mean that it should
> > be restricted by it IMHO. Is there any technical reason why
> > happy-eyeballs is not applicable -by itself- for SIP over UDP?
> 
> The *concept* of Happy Eyeballs can, should, and will be applied to UDP, but
> the *details* are going to be considerably different from the details for TCP.
> For the first tranche, we are attempting to stay near what has been done for
> HTTP, so we are limiting the scope to connection-oriented protocols.
[TOLGA] I think one issue was regarding the "probing" for UDP. With TCP, connection establishment provides information about the quality of the connection toward the server. Why not using OPTIONS for UDP? It wouldn't change the "SIP state" and wouldn't cause any distraction to end users/devices.
> 
> Dale