Re: [core] Editors' draft of changes to draft-ietf-core-coap-tcp-tls-08 after IESG input

Dave Thaler <dthaler@microsoft.com> Sat, 17 June 2017 19:49 UTC

Return-Path: <dthaler@microsoft.com>
X-Original-To: core@ietfa.amsl.com
Delivered-To: core@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A375A129B9D for <core@ietfa.amsl.com>; Sat, 17 Jun 2017 12:49:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.021
X-Spam-Level:
X-Spam-Status: No, score=-2.021 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 1njC_omHX2Gl for <core@ietfa.amsl.com>; Sat, 17 Jun 2017 12:49:46 -0700 (PDT)
Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0094.outbound.protection.outlook.com [104.47.33.94]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7CF13129BA4 for <core@ietf.org>; Sat, 17 Jun 2017 12:49:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=XlMFrCSG/HvROE5vcTvjmePmwvQUs8ByyvLCcaFAg5k=; b=Jqa/9Z8pcYqmQu2zSADb4KtqVn9tMrzCKhTkpESFge2qQGPTL/aGThlWkj36gE5mmDtWQ6X5MN/latUH9/vWtpnSA61rlURfDTcZtYMwWBzLJfJ7wc4QIqUdyszc4RMo+p3vWuCnYD5/Sxh48BvMsyfzsasyWlboAQ9tGC5rKWQ=
Received: from CY1PR03MB2265.namprd03.prod.outlook.com (10.166.207.17) by CY1PR03MB2265.namprd03.prod.outlook.com (10.166.207.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Sat, 17 Jun 2017 19:49:39 +0000
Received: from CY1PR03MB2265.namprd03.prod.outlook.com ([10.166.207.17]) by CY1PR03MB2265.namprd03.prod.outlook.com ([10.166.207.17]) with mapi id 15.01.1157.017; Sat, 17 Jun 2017 19:49:39 +0000
From: Dave Thaler <dthaler@microsoft.com>
To: Carsten Bormann <cabo@tzi.org>, Bill Silverajan <bilhanan.silverajan@tut.fi>
CC: "core@ietf.org" <core@ietf.org>
Thread-Topic: [core] Editors' draft of changes to draft-ietf-core-coap-tcp-tls-08 after IESG input
Thread-Index: AQHSzYjBwBIBdIBPxEuU/kZRm5tUPKH1ereAgAAOooCAMOBQAIABv0aAgAAKMICAANT6gIAAKFOAgAB1BvA=
Date: Sat, 17 Jun 2017 19:49:37 +0000
Message-ID: <CY1PR03MB226514546EE50194EAFF4D47A3C60@CY1PR03MB2265.namprd03.prod.outlook.com>
References: <76EA187B-4A41-4363-B49E-75064626190A@tzi.org> <ee31590027944221a50467618d36fb2e@FE-MBX1027.de.bosch.com> <BACD0C4E-5438-46B8-ADEA-30AF44409440@tzi.org> <CY1PR03MB2265ED47B6ADE6B7A2810C77A3C00@CY1PR03MB2265.namprd03.prod.outlook.com> <55877B3AFB359744BA0F2140E36F52B55B9FC95E@MBX110.d.ethz.ch> <16E1AFB1-AA50-4F49-ACB6-3B2B7703C7AD@tzi.org> <3246d149-f2c3-083a-c95a-0830b1520b07@tut.fi> <6EDC3CEC-E5E6-4269-9074-9EEC4844C18D@tzi.org>
In-Reply-To: <6EDC3CEC-E5E6-4269-9074-9EEC4844C18D@tzi.org>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: tzi.org; dkim=none (message not signed) header.d=none;tzi.org; dmarc=none action=none header.from=microsoft.com;
x-originating-ip: [73.157.18.29]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; CY1PR03MB2265; 7:J9algTCvnmTx89hSJpJTw2aLjoOib9M44nWFnN0/vm1Mekw8NQwBpjF7R/+BGhE+LBf8JopNubKEwLNaA/YNbATgrXB5KXWG9G5veQfIoBUfPIPMVBFShYu7uYN3cJExqlFXiHP5bDJfumS+Mo4OxNCpiyj4f6FVFEAB0tJcsXLaeAY8bdOZP338JlcjgTPjoZQDOS6dmxhe26LhlQv+FlLh9LvwrDHtei16XC7miSthsCanvdDe0DWP4UNJf3beyP4+sblw3rbzoJv7fkeajCDDkVURk9GmoS3oOympJCV32DaJztexiNOfqktJR45jh8mhrZEQpbMzot4Q6UReG7p9GkFuSL9J+3AMt58xnhjakI+LSt03Vm2MskEtpXXkfQ7RemarXQPZlrqw0Xa4fYoSUXrZY0oGVcMKWhwv7LW/Qk3ueNq3vuTUhIdXpUizxrVijaLVNjWpBO8q6kAJWu63cQF7UugGfVPNQdAQKaKU38d5rQgqAXqJE5TebgNRHMEL2Sw8BKyLk6vbN5iUfjvy9CYw78Lvn8mcUoBi+QyAuLsAkmJu0ZKcdjIhuTIhYtwJbidMsCw+XhOVPmOyhNW8FHAlNzWIePtJ1ssbJqvH5w1HTqVtnmUFoYMV5nsdIG9/HGAb53v6h8M3Wv4hV9Hsk0HFo0ER7p7ocqNe9T5cQX/dBEhJDatzXrnVHApJfmog6gUFNrHd9k24Fe1eNFNHUPUJfmo4BfPEgYtoD5I2UkwzyBQeIOJ2pTc0Q2kiUOL3UQXXkaFH7oaKB62XwfMavg8slrLG5v2PClv9YfZvkCp+Ik3C9UyMREWrOcc1
x-ms-traffictypediagnostic: CY1PR03MB2265:
x-ms-office365-filtering-correlation-id: b8d00cd8-bac8-41a6-e9e6-08d4b5b9fd6e
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(48565401081)(201703131423075)(201703031133081)(201702281549075); SRVR:CY1PR03MB2265;
x-microsoft-antispam-prvs: <CY1PR03MB22653A03544E7F9507642349A3C60@CY1PR03MB2265.namprd03.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(158342451672863)(278428928389397)(189930954265078)(219752817060721);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(61425038)(6040450)(601004)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(3002001)(93006095)(93001095)(6055026)(61426038)(61427038)(6041248)(20161123558100)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR03MB2265; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR03MB2265;
x-forefront-prvs: 034119E4F6
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(39410400002)(39850400002)(39860400002)(39450400003)(39400400002)(13464003)(24454002)(377454003)(54356999)(14454004)(77096006)(38730400002)(10290500003)(8936002)(86612001)(6246003)(6506006)(478600001)(8990500004)(86362001)(2900100001)(6436002)(50986999)(81166006)(7696004)(8676002)(966005)(230783001)(5005710100001)(2906002)(53936002)(305945005)(6116002)(102836003)(2950100002)(33656002)(3280700002)(5660300001)(74316002)(76176999)(10090500001)(66066001)(25786009)(122556002)(93886004)(4326008)(6306002)(9686003)(3846002)(7736002)(229853002)(3660700001)(55016002)(53546009)(99286003)(189998001); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR03MB2265; H:CY1PR03MB2265.namprd03.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en;
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jun 2017 19:49:37.7814 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR03MB2265
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/jz-UJAsusRWULy_veH5sioTgPoY>
Subject: Re: [core] Editors' draft of changes to draft-ietf-core-coap-tcp-tls-08 after IESG input
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core/>
List-Post: <mailto:core@ietf.org>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 17 Jun 2017 19:49:49 -0000

Agree with Carsten.  Also, Adam Roach pointed out that some protocols solve the port number 
discovery problem by using SRV record lookups.   So I can see a couple possible ways forward
that could work, with different tradeoffs:

1) Use separate URI schemes, as draft -07 did, and simply accept the fact that two URIs 
    (e.g., coap: and coap+tcp: URIs) might refer to the same resource.  Indeed RFC 3986 section 6.1
     explicitly discusses this point as allowed:
	>   Even though it is possible to determine that two URIs are equivalent,
	>   URI comparison is not sufficient to determine whether two URIs
	>   identify different resources.  For example, an owner of two different
	>   domain names could decide to serve the same resource from both,
	>   resulting in two different URIs.  Therefore, comparison methods are
	>   designed to minimize false negatives while strictly avoiding false
	>   positives.

2) Specify that the port number in a coap URI, if present, is specifically a UDP port number.
     Port numbers for any other transports must be resolved using SRV record lookups,
     and the choice of transport protocol must be done by some algorithm by which the 
     client can try various ones until one works.   The downside is extra complexity in the
     client, and extra traffic on the network (both of which might be significant downsides
     in a constrained network or a constrained client).

3) Specify a mechanism whereby lower-layer identifiers (e.g., transport specific URIs like the 
    wss: URI shown in the coap-tcp draft -09) can be resolved for a given coap URI.  E.g., via a
    resource directory or similar functionality built into a server.   The downside is extra
    complexity in both clients and servers, and extra specification work for the WG that the
    coap-tcp draft would be blocked on before it would be usable.  This also requires a way
    to discovery TCP endpoint information either by defining a URI format or by making the
    discovery mechanism be capable of passing something other than URIs.

Obviously I'm in favor of approach #1 (which is also the approach OCF already took for its
standard), but any of the above would be possible.  Maybe there's other variations too.
But I think we have to pick one before coap-tcp is usable.

Also to Carsten's point about the IETF's issues with #1 not being in any document, I agree.
As the editor of RFC 7595, I am willing to co-edit a (not coap-specific) document on this general
topic to ensure it's fair and applicable to a wide variety of scenarios including our constrained
node/network scenarios.

Dave

> -----Original Message-----
> From: core [mailto:core-bounces@ietf.org] On Behalf Of Carsten Bormann
> Sent: Saturday, June 17, 2017 5:32 AM
> To: Bill Silverajan <bilhanan.silverajan@tut.fi>
> Cc: core@ietf.org
> Subject: Re: [core] Editors' draft of changes to draft-ietf-core-coap-tcp-tls-08
> after IESG input
> 
> Hi Bill,
> 
> > On Jun 17, 2017, at 12:07, Bill Silverajan <bilhanan.silverajan@tut.fi> wrote:
> >
> > Hi,
> >
> >>> It would be good to know what the actual assumptions are.
> >>> CoAP clients do trial-and-error until they get a response?
> >>> All CoAP endpoints are expected to implement all transport and the pick
> of transport is just because of the middlebox baggage?
> >
> > In discouraging the use of several URI schemes for CoAP, one review
> recommended a series of steps, in which CoAP over UDP is MTI: Always try
> UDP first, and if no response is forthcoming, to then resort to TCP. Port
> 80/443 would always default to CoAP over ws or wss without needing to
> engage UDP initially. Obviously this has repercussions regarding protocol and
> application logic.
> 
> Right.  It also does not work for one of the main applications of CoAP-TCP:
> traversal of NATs with short UDP binding lifetimes.  The probe will always
> work through such a NAT, but then the observation relationships won’t,
> because the UDP binding is gone by the time the notification needs to be
> transferred.
> 
> (Of course, a server can work around this issue by providing a URI with an IP
> address that listens on TCP only, so the UDP probe fails.  This likely outcome
> is wrong on so many levels…)
> 
> […]
> 
> > Conversely, it must also be recognised that right now, some mechanisms
> are bound to the "coap" and "coaps" URI schemes, such as using ".well-
> known/". Minting new CoAP URI schemes would also require extending this
> to support them.
> 
> Not sure I get this point.  We did add well-known support for the new URI
> schemes in -07.
> 
> Grüße, Carsten
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.i
> etf.org%2Fmailman%2Flistinfo%2Fcore&data=02%7C01%7Cdthaler%40micro
> soft.com%7C1ad8529c19f343d5017908d4b57ce883%7C72f988bf86f141af91ab
> 2d7cd011db47%7C1%7C0%7C636332995469085604&sdata=6rpivhUTBq5mJ2C
> biutiISXwkLW3g9FLQfboOq5zj5g%3D&reserved=0