Re: [apps-discuss] Review of draft-ietf-alto-protocol-11.txt

Richard Alimi <ralimi@google.com> Tue, 15 May 2012 07:37 UTC

Return-Path: <ralimi@google.com>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0E0D021F861A for <apps-discuss@ietfa.amsl.com>; Tue, 15 May 2012 00:37:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.494
X-Spam-Level:
X-Spam-Status: No, score=-102.494 tagged_above=-999 required=5 tests=[AWL=0.483, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, RCVD_IN_DNSWL_LOW=-1, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xYnJxp9GzWGd for <apps-discuss@ietfa.amsl.com>; Tue, 15 May 2012 00:37:42 -0700 (PDT)
Received: from mail-lpp01m010-f44.google.com (mail-lpp01m010-f44.google.com [209.85.215.44]) by ietfa.amsl.com (Postfix) with ESMTP id CA24F21F849A for <apps-discuss@ietf.org>; Tue, 15 May 2012 00:37:41 -0700 (PDT)
Received: by lagv3 with SMTP id v3so3017761lag.31 for <apps-discuss@ietf.org>; Tue, 15 May 2012 00:37:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding:x-system-of-record; bh=VvChiZLIkm3Uwl1u9ciqYe/YAydY8zj0WGJbeh8D6Xk=; b=ZhkEBvIYolblh5Ymq0iZZLoehQSB/sxI+FsEOALbYwRuBnNGjhZ5eL3kRUc+97FX+d D0gqpKnk9aqsM/2vJkMvG7QNWvO6tT9JAqBwjgBaEcu8Jxm/rARmf0RvziIpMj6Wf7x9 57CDvA+273asvMXx9QZm8UBbnQXi0Fg9yYPZDWR8w3BEFjvKtJxMvh5lFW+Iuvy4vSQX qIj0eEMCx+aBvLrscBCMpIvAYtckJP5XzkgNaahNWjCGaVn0F+Mw+erxl3F/Yka3sdDy qHeSGliq4u+tCXttVtiKYXTzecg1oYshzDAkughUXadm38QotI0lgkli5IvEewIYtn1T sJsQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding:x-system-of-record :x-gm-message-state; bh=VvChiZLIkm3Uwl1u9ciqYe/YAydY8zj0WGJbeh8D6Xk=; b=RN+BnaoxV6asFZX3t2LcX1CCvcvUT2Yu4PplQb++a+OgOZ4+UKo31qpoymeuIcyFa7 MzFw8GZsv3pe8oyQ4H9XLNCpbKG0NOO6GFjNsFAcMuAt3AhuSx5GIABSKjWNM5lokSd0 qwakt+KsRmySO1vDhUrPJnHYiTAm9TbS/Epe+SzMICdlyORdQ4jBHlhJOs4tuGVeG3k2 xAs2eD+Z2E7GoDmcK8S/HmIaPVmYjak25CIbAYRdq6PUPzzPkkQdlD7mX7BWt9CToeUC WVIlz1Qk2ZrH0PXBYN/lCa83RU+LPKw/RVJihGoHiaEIYqg+O8Wt7gu0Px1GfnaaNBVO TX2Q==
Received: by 10.112.47.8 with SMTP id z8mr1670535lbm.51.1337067460590; Tue, 15 May 2012 00:37:40 -0700 (PDT)
Received: by 10.112.47.8 with SMTP id z8mr1670526lbm.51.1337067460438; Tue, 15 May 2012 00:37:40 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.112.45.201 with HTTP; Tue, 15 May 2012 00:37:10 -0700 (PDT)
In-Reply-To: <CA+9kkMD6+JdMAecz2h=CzRc6x_kt3042Lr_z0crUzzfdCXJJ5Q@mail.gmail.com>
References: <CA+9kkMB4nUayYO3q8ydj477jh9NM8oZyXAQ5k-NsRN=KHjb3cA@mail.gmail.com> <CADOmCZV3N=DrgiCX1W++OjkBhdNo4-0YMBPARJzEM9aTybSa0Q@mail.gmail.com> <CA+9kkMD6+JdMAecz2h=CzRc6x_kt3042Lr_z0crUzzfdCXJJ5Q@mail.gmail.com>
From: Richard Alimi <ralimi@google.com>
Date: Tue, 15 May 2012 00:37:10 -0700
Message-ID: <CADOmCZXj2kLTq2oFJ+Xpz7OicQK9aTuiUBzGuQWYHUscsn-ZAg@mail.gmail.com>
To: Ted Hardie <ted.ietf@gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
X-System-Of-Record: true
X-Gm-Message-State: ALoCoQl6iX2uqlhpjS8FWbcyPtfLOzSASFy4USzh1OZ49KRf6ZBeRIyndIrAmLiSPCUdECIMHOd9etVGfCXYxnJe6d3yeeuUPSYvodILYEdSaWoGLus+LKqLWJNX9miqDpxs7K1OOLGuUVnpFEhWlmGZWPK6FSHJ5w==
X-Mailman-Approved-At: Tue, 15 May 2012 08:52:31 -0700
Cc: draft-ietf-alto-protocol.all@tools.ietf.org, alto <alto@ietf.org>, apps-discuss@ietf.org
Subject: Re: [apps-discuss] Review of draft-ietf-alto-protocol-11.txt
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 15 May 2012 07:37:43 -0000

On Mon, May 14, 2012 at 7:09 AM, Ted Hardie <ted.ietf@gmail.com> wrote:
> On Sat, May 12, 2012 at 12:39 PM, Richard Alimi <ralimi@google.com> wrote:
> <snipped>
>>> If I understand JASONString correctly, no language tag is supplied,
>>> so human readability will be highly variable,  Fixing that, rather
>>> than relying on a local mapping of the underlying code, is hard
>>> work.  Dropping this optional aspect of the error resource may
>>> be something for the WG to consider; this pushes localization
>>> of the error code description to the endpoint.
>>
>> That seems reasonable.  The intent was to help with debugging (and not
>> display to a user), so I'd either be okay with removing it or keeping
>> it and not worrying about the language.  Is there standard guidance to
>> apply here?
>>
>
> I don't think there is standard guidance.  My personal advice, free
> today and worth what you pay for it, is that localization of error
> codes works better if the client simply has a local table of what maps
> to the code.  If you have to do language negotiation just to get the
> error string right, you're introducing a lot of complexity for
> marginal gain.  If it's a debug string, rather than a user-facing
> error, then marking it such and noting it will contain arcana rather
> than actual error explanations is probably okay.  I don't think many
> people expect a localized stack trace.

Okay - I'll see if anyone else in the WG would like to comment, but
for now we can plan to remove it.

>
> <much snipped>
>> Yes - I see the disconnect.  I'd like to avoid solving the larger
>> deployment considerations under NATs (the deployment consideratoins
>> document should be handling that) in this document and instead focus
>> on the messaging details.
>
> I haven't read the deployment considerations doc, but if this is
> handled there, then a pointer to that would be fine.

Okay, so my memory served me incorrectly here.  I thought it was
handled there, but it wasn't...

>
>> Perhaps it would be best to change the
>> statement w.r.t. STUN to instead say MAY.  This document can certainly
>> give a concise statement of the problems you identified there.
>>
>> How does that sound?
>>
>
> I don't think it is really a question of MAY vs. SHOULD.  The document
> seems to be assigning responsibility to working out the NAT boundary
> problem to the client.  That means the client needs some way of
> determining whether it is going through an address translator to reach
>  the target.  I think keeping it at SHOULD use STUN for cases where a
> translation will take place is correct; the problem is it is SHOULD
> NOT for cases where the source and destination are within a NAT
> boundary.  If you can, I would personally say something brief like
> that, and give a pointer to the deployment considerations document for
> more on how you determine when you have each case.  The optimization
> (omitting the Source Endpoint), just highlights the problem.

Okay, so I think we'll need a bit more discussion on this as to how to
handle it.  I tend to think the deployment considerations document
would be a better place to handle this, but this section of it doesn't
exist yet today (contrary to my memory).

A solution without multiple levels of NATs here would be for the ALTO
Client to do the following algorithm:

  let D = set of destination addresses to which the cost should be queried
  for each address 'a' through which the ALTO Client is reachable
(discovered via STUN, local interface address)
    Pick D_a = { subset of D that can reach the ALTO Client via address 'a')
    query the Endpoint Cost Service with the source address and
destination addresses D_a

Things get hairier with multiple NATs, obviously.  The trickier part
of this would be how a client determines 'a'.  Multiple P2P
applications that I know about already implement logic for detecting
if it can use local address to talk to another peer.  We could
explicitly reference one of those as an example, but AFAIK those
algorithms mostly work only if there's a peer speaking the same P2P
protocol at the other end.

So, how about this which doesn't introduce a dependency on text which
does not yet exist in the deployment considerations document:
(1) as you suggested, indicate that the client SHOULD use STUN to
discover its own IP addresses when query for destination addresses
that are not behind the same NAT boundary, and SHOULD NOT use STUN for
destination addresses that are behind the same NAT boundary.
(2) Add this algorithm sketch as an example for using the Endpoint
Cost Service in a NAT environment, with the statement that determining
D_a may be application-dependent.

Then, if we want to add detail for specific techniques, we could add
those later in the deployment considerations document.

How does that sound?
Rich

>
>
> regards,
>
> Ted Hardie