Re: [Uri-review] [Fwd: [BEHAVE] Last Call: draft-ietf-behave-turn-uri (Traversal Using Relays around NAT (TURN) Uniform Resource Identifiers) to Proposed Standard]

Ted Hardie <ted.ietf@gmail.com> Fri, 16 October 2009 17:09 UTC

Return-Path: <ted.ietf@gmail.com>
X-Original-To: uri-review@core3.amsl.com
Delivered-To: uri-review@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 29E6C3A68C1; Fri, 16 Oct 2009 10:09:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.549
X-Spam-Level:
X-Spam-Status: No, score=-2.549 tagged_above=-999 required=5 tests=[AWL=0.050, BAYES_00=-2.599]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fzusNISHig+d; Fri, 16 Oct 2009 10:09:11 -0700 (PDT)
Received: from mail-px0-f173.google.com (mail-px0-f173.google.com [209.85.216.173]) by core3.amsl.com (Postfix) with ESMTP id 0082E3A6894; Fri, 16 Oct 2009 10:09:10 -0700 (PDT)
Received: by pxi3 with SMTP id 3so2702345pxi.29 for <multiple recipients>; Fri, 16 Oct 2009 10:09:12 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=7UNnn1yN0GawcxzcHkFeRDyBGU6P0tshsgNINYeThhc=; b=Mh933O/EfO59FXCwlD4jTFhyG++OEMkBH6y/U0oIR7oqeeacfvYeNs3vq/dMfg3+Um onDa7174jx3eDvc4cZrDxewkjm4VoeghM3ssUa7poTTGNeWHR2ORlF67Lxeb+lBjskRG c21F+XxLUSX7o8zS6s9QMQckPRaQEB5Sxl6QA=
DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=iyCaqE1XxgAzk2jE9V8tfdifispmsoiNgQqZHwUDv/KNdqSyrZqVi8So6BYHtLvUjI tgpQNbK95QCbC8svzXYz/lIiVSLGDegg8iESWJbEXqRuLdWvJyeZLu6P4WJUQxDiGnc9 P9ffkKsF76XG7L92NRKmUKAVscJQjjv2337hc=
MIME-Version: 1.0
Received: by 10.143.20.42 with SMTP id x42mr148228wfi.225.1255712951889; Fri, 16 Oct 2009 10:09:11 -0700 (PDT)
In-Reply-To: <4AD81911.4080809@acm.org>
References: <4AD7387A.7060901@ericsson.com> <6e04e83a0910151433y2007a015ia77a407e702a3841@mail.gmail.com> <4AD7AE35.7030701@petit-huguenin.org> <6e04e83a0910151809x522b1547ya48bcf6a2093ea01@mail.gmail.com> <4AD81911.4080809@acm.org>
Date: Fri, 16 Oct 2009 10:09:11 -0700
Message-ID: <6e04e83a0910161009r4ae93cd6j8063f117521d939f@mail.gmail.com>
From: Ted Hardie <ted.ietf@gmail.com>
To: Marc Petit-Huguenin <petithug@acm.org>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Cc: uri-review@ietf.org, andy@hxr.us, ietf@ietf.org, app-ads@tools.ietf.org
Subject: Re: [Uri-review] [Fwd: [BEHAVE] Last Call: draft-ietf-behave-turn-uri (Traversal Using Relays around NAT (TURN) Uniform Resource Identifiers) to Proposed Standard]
X-BeenThere: uri-review@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Proposed URI Schemes <uri-review.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/uri-review>, <mailto:uri-review-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/uri-review>
List-Post: <mailto:uri-review@ietf.org>
List-Help: <mailto:uri-review-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/uri-review>, <mailto:uri-review-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 16 Oct 2009 17:09:12 -0000

Hi Marc,

Thanks for your quick reply; a few notes in-line below.


> Hmm, I see your point.  Because I reuse definitions from RFC 3986, you think
> that these definitions should be used in the same exact way that they are used
> in RFC 3986, where in fact I merely use them as a short cut to not have to copy
> them (especially for <host>).

This is part of the issue, and probably the main part.  As it stands,
reusing those elements appears to put portions of the URI into an
"authority section" model (go here to get the resource specified in
the path, or returned by the query) when they are really closer to a
query portion.

>
> There was not many opaque URI defined in standard track since RFC 3986, but the
> IRIS URI (RFC 3981 section 7.1) looks like an opaque URI that reuse components
> from RFC 2396 and RFC 2732.
>
> Anyway, I can copy and rename the definitions that I need from RFC 3986 if it is
> what is needed.
>

IRIS is an interesting model here, as it is one of the few others to
really use S-NAPTR.  I've cc'ed Andy on this message to ping him to
take a look at your draft.  IRIS's complexity is pretty substantial on
a number of fronts, and the URI resolution is certainly
one of the areas where the complexity has daunted some of those
interested in the protocol.  It's also noteworthy that IRIS created a
very rigid URI, with a very flexibile resolution mechanism.  I'm not
sure, honestly, that approach was a success.
>

>>> Where does it get the preference order?  The document seems to imply that
>>> the preference order is associated with an application using the URI, which
>>> you have restated in 2. below.  As stated above, this implies knowledge
>>> of that preference order in the URI parser, without explicitly passing that
>>> knowledge.  If that is not correct, sorry, but that is how the document reads
>>> to me at the moment.  If that is correct, it seems fragile.
>
> The I-D talks about two separate things:
>
> First a resolution mechanism, or algorithm, that take in input this 4 elements:
>
> - A list of ordered TURN transport
> - A domain or an IP address
> - A port that can be empty
> - A transport that can be empty
>
> With this information and the RR retrieved from the network, it builds a list of
> {IP, port, transport} tuples.
>
> The second thing described in the I-D is an URI that permit to conveniently
> provide the 3 last elements in a unique character string.  The URI parser (at
> the difference of the resolution algorithm) does not care about which TURN
> protocols are implemented or not, or which one is more efficient or more secure
> than the other (according to the implementer).
>
>            +------+                 +----------+
> TURN URI -->|Parser+--> domain/IP -->|Resolution+--> {IP, port, transport} list
>            |      +--> port ------->|mechanism |
>            |      +--> transport--->|          |
>            +------+                 |          |
> TURN transport list----------------->|          |
> RRs--------------------------------->|          |
>                                     +----------+
>
>>
>>
>>
>> 1. The NAPR/SRV/A/AAA RRs that express the preferences of the domain(s)
>> administrators.
>>
>> 2. The ordered list of TURN transports that express the preferences of the
>> application developers (i.e. the capabilities of the application - what
>> protocols are implemented - and in case the algorithm cannot decide, the
>> preferred protocol - the fastest implementation, or more secure, etc...).
>>
>> 3. The URI itself that express the preferences of the user of the application
>> (i.e. specific IP, specific port, specific transport or just the domain if the
>> user does not care).
>>
>> Moving the ordered list of TURN transports to the URI would prevent the
>> application to provide to the resolution algorithm its own capabilities and
>> preferences.
>>
>> Let me know if you think that the current text does not reflect this
>> explanation, in which case I will try to add some text.

This is clearer; thanks.  My own reading of the current text did not
reflect this understanding.  Reading it, it seemed to me to imply that
the *URI resolution* relied on knowing the TURN preferences of the
calling application (your 2).  Your text above notes that the URI
resolution does not depend on this at all; the URI resolution proceeds
and then the application logic is applied.  Is that correct?


>>
>>
>>> Honestly, I am increasingly confused about why it would not be
>>> better to simply use the existing DNS URI scheme to point to
>>> the NAPTR RRs, then apply all the post processing to what
>>> is returned, without trying to do a portion of this within this scheme
>>> structure.  That's obviously a different set of trade-offs, but given
>>> the extensive set of scheme-specific behavior this requires, I'm
>>> not sure I understand the engineering choice here.
>
> Let met know if after reading my explanation above you still think that the DNS
> URI is a solution to explore, and I will then answer that.

As I said before, I think it is a different set of trade-offs, and
last call is not really
a fair time to suggest a completely different road.  What it gets you
is the ability
to separate the "get the RRs" step from all the other steps in the application
logic.  If that would be useful, then by all means do explore it; if the working
group's conclusion is that the right approach is mint a single URI that both
retrieves the relevant NAPTR  RRs and carries the other parameters needed to
identify the TURN server, then continuing to work on this may be the way to go.
What started me down the line of thinking that led to separating them was the
notion that at least some of the parameters (the application's preference order)
were already outside the URI.

regards,

Ted Hardie





>
> Thanks.
>
> --
> Marc Petit-Huguenin
> Personal email: marc@petit-huguenin.org
> Professional email: petithug@acm.org
> Blog: http://blog.marc.petit-huguenin.org
>