Re: [core] CoRE v/s Compressed HTTP

Zach Shelby <zach@sensinode.com> Fri, 02 July 2010 12:57 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 2E6463A67EE for <core@core3.amsl.com>; Fri, 2 Jul 2010 05:57:38 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.003
X-Spam-Level:
X-Spam-Status: No, score=-3.003 tagged_above=-999 required=5 tests=[AWL=0.596, 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 pgsqUCXBKkSP for <core@core3.amsl.com>; Fri, 2 Jul 2010 05:57:32 -0700 (PDT)
Received: from auth-smtp.nebula.fi (auth-smtp.nebula.fi [217.30.180.105]) by core3.amsl.com (Postfix) with ESMTP id 94C443A67DA for <core@ietf.org>; Fri, 2 Jul 2010 05:57:31 -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 o62CvZXu012652 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO); Fri, 2 Jul 2010 15:57:37 +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: <006701cb19e5$316d6850$944838f0$@sturek@att.net>
Date: Fri, 02 Jul 2010 15:57:37 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <80A8A42C-0DE5-44AD-AC21-C1C4546B08DE@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> <451C2C3D-2454-47EE-940C-894C4C4CACA9@sensinode.com> <006701cb19e5$316d6850$944838f0$@sturek@att.net>
To: d.sturek@att.net
X-Mailer: Apple Mail (2.1081)
Cc: L.Wood@surrey.ac.uk, core@ietf.org
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 12:57:38 -0000

Morning Don,

On Jul 2, 2010, at 3:50 PM, Don Sturek wrote:

> Hi Zach,
> 
> I think what you wrote is not quite correct.
> 
> I think many solutions will need guaranteed delivery

Agreed, and we have that.

> and I think many will
> need fragmentation/reassembly.  

This is something we still need to experiment with and gain experience. Can applications that need that do it themselves? Or is the Block Option proposal in coap-misc-04 workable? If the WG concludes that we need it and we have a way to do it then we surely will.

> Only a small subset of solutions will work
> with CoAP/UDP and all application messaging fitting into a single packet.

How did we go from transferring payloads in the sizes of 10s of bytes, to several kBs in this WG? ;-) coap-01 requires this to fit in a single MTU, which would usually be between 1280-1500 bytes. At least for all the applications I have experience with in the 6LoWPAN world this is sufficient. For the few things like firmware transfer that need more, you can design a REST interface for that. What do you have in mind?

> 
> The reason I mention this is that I fully expect to see a need in some of
> the features that TCP offers though I agree that congestion control in a
> mesh network is not one of them (at least as implemented in TCP).

Yep, Lars's document has a really good list of stuff we need to experiment with and integrate into the base coap document as they are verified. We hope to try some out already at the plugfest.

Zach

> 
> Don
> 
> 
> -----Original Message-----
> From: core-bounces@ietf.org [mailto:core-bounces@ietf.org] On Behalf Of Zach
> Shelby
> Sent: Friday, July 02, 2010 3:50 AM
> To: Guido Moritz
> Cc: core@ietf.org; L.Wood@surrey.ac.uk
> Subject: Re: [core] CoRE v/s Compressed HTTP
> 
> 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
> 
> _______________________________________________
> 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