Re: [core] #388 (coap-tcp-tls): Multiple versions over the same connection

Carsten Bormann <cabo@tzi.org> Wed, 27 April 2016 06:02 UTC

Return-Path: <cabo@tzi.org>
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 23BA712D5E2; Tue, 26 Apr 2016 23:02:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.62
X-Spam-Level:
X-Spam-Status: No, score=-2.62 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01] autolearn=ham autolearn_force=no
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 Be0HuxLl40Hc; Tue, 26 Apr 2016 23:02:03 -0700 (PDT)
Received: from relay4-d.mail.gandi.net (relay4-d.mail.gandi.net [217.70.183.196]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7767512D5E0; Tue, 26 Apr 2016 23:02:03 -0700 (PDT)
Received: from mfilter44-d.gandi.net (mfilter44-d.gandi.net [217.70.178.175]) by relay4-d.mail.gandi.net (Postfix) with ESMTP id 1CB1C1720B1; Wed, 27 Apr 2016 08:02:02 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mfilter44-d.gandi.net
Received: from relay4-d.mail.gandi.net ([IPv6:::ffff:217.70.183.196]) by mfilter44-d.gandi.net (mfilter44-d.gandi.net [::ffff:10.0.15.180]) (amavisd-new, port 10024) with ESMTP id v83yy6JqYWhE; Wed, 27 Apr 2016 08:01:59 +0200 (CEST)
X-Originating-IP: 93.199.242.26
Received: from nar-3.local (p5DC7F21A.dip0.t-ipconnect.de [93.199.242.26]) (Authenticated sender: cabo@cabo.im) by relay4-d.mail.gandi.net (Postfix) with ESMTPSA id A01161720A9; Wed, 27 Apr 2016 08:01:58 +0200 (CEST)
Message-ID: <572055D4.2030806@tzi.org>
Date: Wed, 27 Apr 2016 08:01:56 +0200
From: Carsten Bormann <cabo@tzi.org>
User-Agent: Postbox 4.0.8 (Macintosh/20151105)
MIME-Version: 1.0
To: Christian Groves <Christian.Groves@nteczone.com>
References: <054.aef06920484b3c4a22ed81045af09fce@trac.tools.ietf.org> <069.fd4e0c5e045b353a56cb0fb14a518d64@trac.tools.ietf.org> <182ce2c0-a70d-a79a-b047-e801fb0ecf4e@nteczone.com>
In-Reply-To: <182ce2c0-a70d-a79a-b047-e801fb0ecf4e@nteczone.com>
X-Enigmail-Version: 1.2.3
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/core/BkZdVDuwKeqwBrJxPnapA_Lcm0Y>
Cc: draft-ietf-core-coap-tcp-tls@ietf.org, core@ietf.org
Subject: Re: [core] #388 (coap-tcp-tls): Multiple versions over the same connection
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.17
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: Wed, 27 Apr 2016 06:02:05 -0000

Hi Christian,

> Is there any assumption that new CoAP versions need to be backward
> compatible? I didn't see anything mentioned in RFC7252.

UDP CoAP packets have a "version number" because there were two bits
free in the header and we wanted to have a specific bit pattern in there
so CoAP packets multiplex nicely with DTLS and STUN packets on the same
port.

Nobody had or has any idea what a future version of CoAP would look
like; no need for one has come up*).  A different version number would
only be used to ensure that current CoAP implementations never process
messages in a future new format; CoAP's protocol evolution method is to
use options.

In a reliable stream (TCP/TLS/Websockets), there is no need to indicate
a protocol version per-message; if version negotiation is ever required,
this can be done at the start of the stream.

Grüße, Carsten

PS.: I'm not sure people have tried using different HTTP versions (1.0
vs. 1.1) within the same TCP connection; not that HTTP versions ever
meant that much...   (See the note in Section 3.5 of RFC 7540 for the
HTTP/2 view on that.)

*)  OK, maybe we want to have a longer message ID in a future high-rate
variant of UDP CoAP.  No message-IDs are needed in TCP CoAP...