Re: [core] CoRE v/s Compressed HTTP

Zach Shelby <zach@sensinode.com> Fri, 02 July 2010 10:49 UTC

Return-Path: <zach@sensinode.com>
X-Original-To: core@core3.amsl.com
Delivered-To: core@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id D49AE3A6959 for <core@core3.amsl.com>; Fri, 2 Jul 2010 03:49:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.972
X-Spam-Level:
X-Spam-Status: No, score=-2.972 tagged_above=-999 required=5 tests=[AWL=0.627, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
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 qHolWD2ggBmh for <core@core3.amsl.com>; Fri, 2 Jul 2010 03:49:39 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id E55653A6809 for <core@ietf.org>; Fri, 2 Jul 2010 03:49:38 -0700 (PDT)
Received: from [62.145.172.52] ([62.145.172.52]) (authenticated bits=0) by auth-smtp.nebula.fi (8.13.4/8.13.4) with ESMTP id o62AnkRj031933 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 2 Jul 2010 13:49:47 +0300
Mime-Version: 1.0 (Apple Message framework v1081)
Content-Type: text/plain; charset="iso-8859-1"
From: Zach Shelby <zach@sensinode.com>
In-Reply-To: <004301cb19d1$17ae4fb0$470aef10$@moritz@uni-rostock.de>
Date: Fri, 02 Jul 2010 13:49:48 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <451C2C3D-2454-47EE-940C-894C4C4CACA9@sensinode.com>
References: <8977BB27-E20B-4CA6-BB4A-655984542574@oracle.com> <003001cb19c8$69df0c10$3d9d2430$@moritz@uni-rostock.de> <FD7B10366AE3794AB1EC5DE97A93A37306DCB52C66@EXMB01CMS.surrey.ac.uk> <004301cb19d1$17ae4fb0$470aef10$@moritz@uni-rostock.de>
To: Guido Moritz <guido.moritz@uni-rostock.de>
X-Mailer: Apple Mail (2.1081)
Cc: core@ietf.org, L.Wood@surrey.ac.uk
Subject: Re: [core] CoRE v/s Compressed HTTP
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Constrained RESTful Environments \(CoRE\) Working Group list" <core.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/core>, <mailto:core-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/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: Fri, 02 Jul 2010 10:49:41 -0000

Regarding UDP and congestion control, I really think everyone should read the contribution from Lars:

http://tools.ietf.org/id/draft-eggert-core-congestion-control-00.txt

One main point is that the whole congestion control model of TCP wouldn't really help us, the flow model is totally different here. The other issue we have in CoRE is that not all requests even need to be (or should be) reliable - e.g. multicast or streaming.

The current coap-01 limitation on CoAP message size is that the resulting datagram must fit into the MTU. For 95% of the cases this payload size is sufficient. For that 5% (firmware update?), which I am personally not sure we should optimize for, coap-misc-04 does have a proposed block option to enabled transferring blocks of a representation. This is something to experiment with. 

Zach

On Jul 2, 2010, at 1:26 PM, Guido Moritz wrote:

>> "Clearly, some effort at the lower levels to improve network reliability
>> can have a significant effect on
>> application performance."
> Jep, but from the CoAP point of view I would say this is what brings us
> closer to UDP than to TCP. TCP uses ACKs and Retransmissions to get some
> kind of reliability. But keep in mind that CoAP (and I assume it does) has
> no huge packets on application layer.  Of course, if application layer
> packets are much bigger than transport layer packets, the ACK/Retr mechanism
> on transport layer is a huge advantage concerning performance issues. But I
> think CoAP is more heading towards smaller packets. So packet size on
> application and transport layer might have the same size and thus an
> application packet fits in one transport packet. So there would be no need
> for the TCP ACK/Retr of stuff TCP and you can do this on application layer
> directly with the same efforts and higher degree of reliability ('Did it'
> vs. 'Got it'). So the main question at this point: which message/packet
> sizes do we assume for a single request/response/transmission/what ever.
> 
> The other side of the coin would the checksum mechanism of TCP. Do we want
> to use this on our nodes or leave this up to other layers?
> 
> The last thing is the flow control/sliding window stuff. I think we will not
> really need this in CoAP due to quite small receive/send buffers implied by
> the resource constraints.
> 
> Guido
> 
>> -----Ursprüngliche Nachricht-----
>> Von: L.Wood@surrey.ac.uk [mailto:L.Wood@surrey.ac.uk]
>> Gesendet: Freitag, 2. Juli 2010 11:37
>> An: Guido Moritz
>> Cc: core@ietf.org
>> Betreff: RE: [core] CoRE v/s Compressed HTTP
>> 
>> Yes, only a high-layer check can guarantee that what was sent is what was
>> received, without corruption.
>> But to quote saltzer et al.:
>> "Clearly, some effort at the lower levels to improve network reliability
>> can have a significant effect on
>> application performance."
>> So transport-layer data consistency can benefit implementations.
>> 
>> It's a series of tradeoffs and engineering decisions, not necessarily
>> clear-cut.
>> 
>> L.
>> 
>> There is no end to the end-to-end argument.
>> 
>> -----Original Message-----
>> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of
>> Guido Moritz
>> Sent: 02 July 2010 10:25
>> 
>> [..]
>> (2) CoAP want's to use UDP instead of TCP. First I also did not found an
>> obvious reason, until I read Saltzer et al. [1]. As long as we not need
> the
>> flow control mechanisms of TCP and we keep the packet sizes reasonable
>> small enough, the only task of the transport layer is the transport
> itself.
>> Data consistency is not the task of the transport layer. ACK must be done
>> on the application layer if you really want to be sure your message has
>> been processed.
>> [..]
> 
> 
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core

-- 
Zach Shelby, Chief Nerd, Sensinode Ltd.
http://zachshelby.org  - My blog "On the Internet of Things"
http://6lowpan.net - My book "6LoWPAN: The Wireless Embedded Internet"
Mobile: +358 40 7796297