Re: [core] draft-ietf-core-new-block: Congestion Control

Jon Shallow <supjps-ietf@jpshallow.com> Mon, 26 October 2020 14:42 UTC

Return-Path: <supjps-ietf@jpshallow.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 43D2C3A0BE6 for <core@ietfa.amsl.com>; Mon, 26 Oct 2020 07:42:47 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] 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 BjYLWRFkzDBQ for <core@ietfa.amsl.com>; Mon, 26 Oct 2020 07:42:45 -0700 (PDT)
Received: from mail.jpshallow.com (mail.jpshallow.com [217.40.240.153]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 37C7A3A0BE3 for <core@ietf.org>; Mon, 26 Oct 2020 07:42:43 -0700 (PDT)
Received: from mail2.jpshallow.com ([192.168.0.3] helo=N01332) by mail.jpshallow.com with esmtp (Exim 4.92.3) (envelope-from <jon.shallow@jpshallow.com>) id 1kX3hn-0002qg-So; Mon, 26 Oct 2020 14:42:39 +0000
From: Jon Shallow <supjps-ietf@jpshallow.com>
To: 'Michael Richardson' <mcr+ietf@sandelman.ca>, core@ietf.org
References: <118201d6a958$5ac8bed0$105a3c70$@jpshallow.com> <4020.1603471352@localhost> <119e01d6a95e$5f8acc00$1ea06400$@jpshallow.com> <14157.1603572407@localhost>
In-Reply-To: <14157.1603572407@localhost>
Date: Mon, 26 Oct 2020 14:42:26 -0000
Message-ID: <001c01d6aba6$38ff3ae0$aafdb0a0$@jpshallow.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 14.0
Thread-Index: AQIWlqb2iKC3R3viCvjymGPo29qZmgHUEiDOAbf7AU8C2VqRFaj26jyA
Content-Language: en-gb
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/LdnI9mn4GlktmaBsij76PQ1Y_lw>
Subject: Re: [core] draft-ietf-core-new-block: Congestion Control
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
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: Mon, 26 Oct 2020 14:42:47 -0000

Hi Michael,

It is good to have these thought provoking questions.

See inline.

Regards

Jon

> -----Original Message-----
> From: Michael Richardson [mailto:ietf-supjps-mcr+ietf@sandelman.ca]
> Sent: 24 October 2020 21:47
> To: Jon Shallow
> Cc: core@ietf.org
> Subject: Re: [core] draft-ietf-core-new-block: Congestion Control
> 
> 
> Jon Shallow <supjps-ietf@jpshallow.com> wrote:
>     > The original concept of Quick-Block2 was to get all of the data over in
>     > an efficient manner (subject to congestion control) and reduce the
>     > number of requests needed as a part of that process.  An Observe
>     > trigger just needed to send over all of the data within the body.
> 
>     > "Selective" access to resource data was not required but is provided by
>     > Block2 (but missing blocks can be re-requested using Quick-Block2).
>     > When asked yesterday, I knew that there were likely to be issues in
>     > this area and my answer was not well thought through - hence what you
>     > picked up.
> 
> I'm asking if a return reachability check is needed before the multiple
> packet reply.

There is none at present.  This is only an issue if using NoSec security mode as any other mode implies reachability is there.

> 
> That is, is there an amplication attack possible here is one can forge the
> source address.

Yes.  This is covered in part by https://tools.ietf.org/html/rfc7252#section-11.3 .  If a security mode other than NoSec, then this should not be an issue as it becomes very difficult to spoof a source address.

In the case of the DOTS protocol which triggered this draft,, Security is a requirement https://tools.ietf.org/html/rfc8782#section-10 .  That said, it is worth adding something to https://datatracker.ietf.org/doc/html/draft-ietf-core-new-block-01#section-11 to recommend a security mode other than NoSec as picked up from https://tools.ietf.org/html/rfc7252#section-11.4 .

> 
> It might be that nobody will never use *-Block[12] (I also like Robust)
> without an OSCORE context, in which case there is probably enough security
> to prevent abuse by forged source address.

Agreed.

> 
>     > It is possible to ask for a specific offset and the blocks following as
>     > the Quick-Block2 option can be used multiple times in a single GET
>     > request - they would be the base offset (as indicated by block.num and
>     > block.szx) and the remaining options used for block.num+1,
> block.num+2
>     > etc.  If more than MAX_PAYLOAD options were defined, the first
>     > MAX_PAYLOAD would come back, then an ACK_TIMEOUT pause and then
> the
>     > next blocks etc.
> 
> So, given a Christmas-Tree-Packet (largest packet, every possible option
> space used, every extension turned on...) how much data can I get back? :-)

If the server is unable to use the smallest block size (16) (lack of PDU space) and there is 16 or more bytes, then no data will get transferred back.  This issue is the same as for the regular Block2. 

I believe that this should generate a 4.13 (Request Entity Too Large), but am open to other suggestions.

> 
> If it is legit to include multiple copies of the options, can I ask for the same
> offset to be sent to me multiple times?

Good catch. No as there is no point in supporting this. The text will get updated to indicate this is invalid and will get rejected.
 
> 
> --
> Michael Richardson <mcr+IETF@sandelman.ca>   . o O ( IPv6 IøT consulting )
>            Sandelman Software Works Inc, Ottawa and Worldwide
> 
> 
>