Re: [Spud] discovery

Brian Trammell <ietf@trammell.ch> Fri, 20 March 2015 11:47 UTC

Return-Path: <ietf@trammell.ch>
X-Original-To: spud@ietfa.amsl.com
Delivered-To: spud@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 56AA21B2CAB for <spud@ietfa.amsl.com>; Fri, 20 Mar 2015 04:47:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.912
X-Spam-Level:
X-Spam-Status: No, score=-1.912 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 e-1XrKRtmkTN for <spud@ietfa.amsl.com>; Fri, 20 Mar 2015 04:47:05 -0700 (PDT)
Received: from trammell.ch (trammell.ch [5.148.172.66]) by ietfa.amsl.com (Postfix) with ESMTP id 36AD31A8973 for <spud@ietf.org>; Fri, 20 Mar 2015 04:47:04 -0700 (PDT)
Received: from [10.120.1.181] (rrcs-184-75-115-252.nyc.biz.rr.com [184.75.115.252]) by trammell.ch (Postfix) with ESMTPSA id 4FE761A0111; Fri, 20 Mar 2015 12:47:03 +0100 (CET)
Content-Type: text/plain; charset=us-ascii
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\))
From: Brian Trammell <ietf@trammell.ch>
In-Reply-To: <7D4541ED-80A7-4C53-9386-58E755BF8375@ifi.uio.no>
Date: Fri, 20 Mar 2015 07:47:02 -0400
Content-Transfer-Encoding: quoted-printable
Message-Id: <C07A916B-38B1-4CC8-953A-604051C5CB1E@trammell.ch>
References: <CAD62q9V8wg6YrTVmg4px=sBdXZyEYZE0iAUd6mJfmgJnDLEMmg@mail.gmail.com> <BAD98A61-4B9D-43B6-B79E-0B3CE26A6740@trammell.ch> <E97A77C9-0C06-4036-95AF-8D8EF19D0AB0@ifi.uio.no> <8996D749-9936-4BB3-B494-08556CE8D41C@trammell.ch> <7D4541ED-80A7-4C53-9386-58E755BF8375@ifi.uio.no>
To: Michael Welzl <michawe@ifi.uio.no>
X-Mailer: Apple Mail (2.2070.6)
Archived-At: <http://mailarchive.ietf.org/arch/msg/spud/c6NKXZrl6-Ix6hA1I9AMLcXi3Wo>
Cc: Aaron Falk <aaron.falk@gmail.com>, "spud@ietf.org" <spud@ietf.org>
Subject: Re: [Spud] discovery
X-BeenThere: spud@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Session Protocol Underneath Datagrams <spud.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spud>, <mailto:spud-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/spud/>
List-Post: <mailto:spud@ietf.org>
List-Help: <mailto:spud-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spud>, <mailto:spud-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 20 Mar 2015 11:47:07 -0000

> On 20 Mar 2015, at 04:19, Michael Welzl <michawe@ifi.uio.no> wrote:
> 
> 
>> On 20 Mar 2015, at 03:00, Brian Trammell <ietf@trammell.ch> wrote:
>> 
>>> 
>>> On 19 Mar 2015, at 19:21, Michael Welzl <michawe@ifi.uio.no> wrote:
>>> 
>>> 
>>>> On 19. mar. 2015, at 17.18, Brian Trammell <ietf@trammell.ch> wrote:
>>>> 
>>>> hi Aaron,
>>>> 
>>>>> On 19 Mar 2015, at 11:48, Aaron Falk <aaron.falk@gmail.com> wrote:
>>>>> 
>>>>> The draft
>>>> 
>>>> ... where "the draft" is draft-hildebrand-spud-prototype ...
>>>> 
>>>>> doesn't say much about how one efficiently determines whether the other end is SPUD-capable so that an application can know whether it can use it.
>>>> 
>>>> No, it doesn't.
>>>> 
>>>>> Has anyone given thought to this?
>>>> 
>>>> Yes, I have...
>>>> 
>>>> I think for the most part that this question is (1) very important but (2) mostly orthogonal to that we're trying to answer in spud-prototype.
>>>> 
>>>> Initially, I would expect that discovery works the same way that it does for any other user of the transport layer: you either have a URL, or a name and a port, or some information from your application-layer protocol's discovery service, which includes "uses x-over-SPUD" in its semantics.
>>>> 
>>>> Dynamically discovering a SPUD endpoint might make sense if a server port / URL schema is assigned to a service over X or a service over x-over-SPUD. In this case, the magic number we've selected makes SPUD server probing by the client possible: a SPUD packet is neither valid UTF-8, UTF-16, UTF-32, ASN.1 BER or DER, DTLS, NTP, DNS, DHCP, TFTP, or Bittorrent. This is not an exhaustive list, but we haven't found a protocol over UDP that is likely to consider d8 00 00 d8 as the first four bytes anything other than an error.
>>> 
>>> - but that won't tell you if SPUD actually does work across the path...
>> 
>> True. But discovery (is there an endpoint there?) is a separate question from path transparency (once you've found the endpoint, can you actually talk to it?)
> 
> Not entirely I think - see below:

The questions are absolutely separate. The way you answer them, not necessarily.

>> This would be an argument for specifying a dynamic discovery method, though -- not for determining whether you should use SPUD, but whether you can.
> 
> So I think, as much as some folks seem to hate it, there really isn't a way around happy-eyeballing...

In general, I don't disagree with this -- let me rephrase it to make sure we're saying the same thing:

"Dynamic discovery mechanisms are necessary at both endpoints to determine both far-endpoint and path-modulated availability of [a new protocol]."

> the reason I say it's not entirely separate ifrom discovery s that happy eyeballs can check availability both on the path and the other end in one go.

Since the point of happy/angry eyeballs is low connection setup latency, yes: the more stuff you can do with the fewer packets the better.

> However, having a separate method that really only deals with the other end can limit how much happy eyeballing one needs to do (i.e.: no point even trying SPUD if the other side doesn't use it).

There's an engineering tradeoff here between robustness and complexity, and I really hope that HOPS and related efforts get us some better insight as to what the exponents are on the types of impairments we hope to see. 

We're trying to run some measurements right now to get some numbers on how likely UDP-based encaps are to make it through the network, and how likely differential treatment of UDP and TCP packets will cause performance issues, as it's the UDP-ness of SPUD that is likely to cause us the most problems initially. (If anyone knows of studies to this question or available data to measure, please let us know. :) )

Cheers,

Brian