Re: [core] core-block-04: Applicability and general remarks draft-bosh-core-new-block-04.txt

mohamed.boucadair@orange.com Thu, 10 September 2020 06:59 UTC

Return-Path: <mohamed.boucadair@orange.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 AF7103A0FDA for <core@ietfa.amsl.com>; Wed, 9 Sep 2020 23:59:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.095
X-Spam-Level:
X-Spam-Status: No, score=-2.095 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=orange.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 v2DPTiZLhPy4 for <core@ietfa.amsl.com>; Wed, 9 Sep 2020 23:59:24 -0700 (PDT)
Received: from relais-inet.orange.com (relais-inet.orange.com [80.12.70.36]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2AB1C3A0FB5 for <core@ietf.org>; Wed, 9 Sep 2020 23:59:24 -0700 (PDT)
Received: from opfednr02.francetelecom.fr (unknown [xx.xx.xx.66]) by opfednr22.francetelecom.fr (ESMTP service) with ESMTP id 4Bn8rV2tv5z10Y0; Thu, 10 Sep 2020 08:59:22 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.com; s=ORANGE001; t=1599721162; bh=CM+/9qi0grJ1bmPbUHNRTUZLtgeDmWgbxhCyQgL7DSs=; h=From:To:Subject:Date:Message-ID:Content-Type: Content-Transfer-Encoding:MIME-Version; b=UGNAw31sQsn9aQKoaQwXS9U+v2PW7tckX9mnEH0AWGdjNWkJohym6A0leB9n5RQjO ym5dnbOvzh3i56mZahbMyUsPoOEwRiFRh5f3uvfo63mox2Nahul8hgg8s8fcbm3GRN FdB0bmW+Zi1AkCHCKY8G+2inaYZ5nR2bU/CBeVIzblk1Lg4+ZjyNoVqY8WWiiKwiCO bSTrRC6uej91ctNsB+v7+fo312aczQWeDABPkqpURBwYVyXQtmrXr3tgxRu98/cdYr 3Gh/cqK1U140Qwkth3JRtU/3GBaTn37J6VKA/yAzAfenuI4R4rDxw1v9qJ9o6AdM7/ W8YnPihmxY3VQ==
Received: from Exchangemail-eme6.itn.ftgroup (unknown [xx.xx.13.32]) by opfednr02.francetelecom.fr (ESMTP service) with ESMTP id 4Bn8rV1sGqz8sYk; Thu, 10 Sep 2020 08:59:22 +0200 (CEST)
From: mohamed.boucadair@orange.com
To: "supjps-ietf@jpshallow.com" <supjps-ietf@jpshallow.com>, "christian@amsuess.com" <christian@amsuess.com>, "core@ietf.org" <core@ietf.org>
Thread-Topic: core-block-04: Applicability and general remarks draft-bosh-core-new-block-04.txt
Thread-Index: AQHWazQlvA4HUPH8rE2dC1hQ5X7Dmakpzm6AgDfVT5A=
Date: Thu, 10 Sep 2020 06:59:21 +0000
Message-ID: <13262_1599721162_5F59CECA_13262_371_5_787AE7BB302AE849A7480A190F8B93303153E110@OPEXCAUBMA2.corporate.adroot.infra.ftgroup>
References: <26993_1595950051_5F2043D8_26993_392_1_787AE7BB302AE849A7480A190F8B93303150608A@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <29030_1593429656_5EF9CE98_29030_149_1_787AE7BB302AE849A7480A190F8B9330314E8C6E@OPEXCAUBMA2.corporate.adroot.infra.ftgroup> <20200805142431.GB3480705@hephaistos.amsuess.com> <390001d66b63$2f8a3790$8e9ea6b0$@jpshallow.com>
In-Reply-To: <390001d66b63$2f8a3790$8e9ea6b0$@jpshallow.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.114.13.247]
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/1Yilk9gqXUu1nRAh64JA8gi76E0>
Subject: Re: [core] core-block-04: Applicability and general remarks draft-bosh-core-new-block-04.txt
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: Thu, 10 Sep 2020 06:59:27 -0000

Hi Christian, all, 

We finally managed to prepare a candidate -01 of the draft that hopefully addresses your review. The main changes are:

* Update the Applicability Scope 
* Remove the TBA3 (Missing Payloads), but use 4.08 instead
* The options are marked as unsafe. The caching behaviour is updated
* Move the CC text to a (new) dedicated section
* Avoid the normative language for the usage of Tokens. A new (short) section is added for the token discussion.
* Rename the options to Quick-Block1/2

We made other edits to enhance the readability of the document. 

The candidate version is available at: https://core-wg.github.io/new-block/draft-ietf-core-new-block.txt 

A diff to track the changes can be seen here: https://tools.ietf.org/rfcdiff?url1=https://tools.ietf.org/id/draft-ietf-core-new-block.txt&url2=https://core-wg.github.io/new-block/draft-ietf-core-new-block.txt 

Please check the candidate version. 

Thank you. 

Cheers,
Jon & Med

> -----Message d'origine-----
> De : supjps-ietf@jpshallow.com [mailto:supjps-ietf@jpshallow.com]
> Envoyé : mercredi 5 août 2020 22:01
> À : christian@amsuess.com; BOUCADAIR Mohamed TGI/OLN
> <mohamed.boucadair@orange.com>; core@ietf.org
> Objet : RE: core-block-04: Applicability and general remarks draft-
> bosh-core-new-block-04.txt
> 
> Hi Christian,
> 
> Thanks for this review.  Med and I will update the draft as
> appropriate.
> 
> Otherwise, comments inline
> 
> Regards
> 
> Jon
> 
> > -----Original Message-----
> > From: christian@amsuess.com [mailto:christian@amsuess.com]
> > Sent: 05 August 2020 15:25
> > To: mohamed.boucadair@orange.com; Jon Shallow (supjps-
> > ietf@jpshallow.com); core@ietf.org
> > Subject: core-block-04: Applicability and general remarks
> > draft-bosh-core- new-block-04.txt
> >
> > Hello Med, hello Jon,
> >
> > here's a few concrete points I'd like to suggest for new-block:
> >
> > * Applicability: I'd have expected to read something like this in
> the
> >   introduction:
> >
> >   > The block-wise transfer of [RFC7959] covers the general case,
> but
> >   > falls short in situations where packet loss is highly
> asymmetrical.
> >   >
> >   > The new options introduced here provide roughly similar
> features to
> >   > the Block1/Block2 options. They provide additional properties
> that
> >   > are tailored towards the intended use case, and leave out
> mechanisms
> >   > like non-atomic access and proxy support that would complicate
> their
> >   > description.
> >   >
> >   > They are not intended for general CoAP usage, and any use
> outside
> >   > the DOTS use case should be carefully weighed against the loss
> of
> >   > interoperability with generic CoAP applications. It is hoped
> that
> >   > experience gained with these options can go into future
> extensions
> >   > of the block-wise mechanism that are both generally applicable
> and
> >   > serve this particular use case.
> 
> Jon> Thanks for the suggestions
> >
> > * Separation of layers, sub-topic "congestion control": It should
> be
> >   possible to phrase all congestion control parts of this in a
> dedicated
> >   section (which may also make sense as an appendix).
> 
> Jon> Good idea
> 
> >
> >   I'd avoid all other mentions of things like PROBING_RATE: For
> example,
> >   Section 3.4 right in the middle of a paragraph on re-requesting
> >   missing blocks states that
> >
> >   > The rate of requests for missing blocks is subject to
> PROBING_RATE.
> >
> >   Yes it is, but so is every single CoAP request until the client
> hears
> >   back from the server. Repeating these things in places where are
> not a
> >   new requirement may make it easier for some implementers that
> try to
> >   build the whole stack in a single go, but even for them is prone
> to
> >   the authors missing a spot -- and for everyone else this will
> each
> >   time trigger the question of "is this new here or isn't this
> already
> >   handled by a component two layers down the stack?".
> 
> Jon> OK
> >
> >   I haven't tracked every single retransmission and rate limiting
> >   statement throughout the document, but I expect that this
> section
> >   could boil down to something like
> >
> >   > For the DOTS use case, the following default CoAP parameters
> are
> >   > updated to better reflect the typical deployments:
> >   >
> >   > * PROBING_RATE: 10 kilobyte/second
> >   >
> >   > The averaging process mentioned in RFC7252 Section 4.7 after
> which
> >   > PROBING_RATE applies is not fully defined there. For the above
> >   > applications, a new parameter PROBING_RATE_WINDOW is
> introduced.
> >   > Messages up to a total size of PROBING_RATE_WINDOW may be sent
> >   > before PROBING_RATE is considered, and the probing rate may
> >   > generally be exceeded by that amount of data in short term.
> >   >
> >   > * PROBING_RATE_WINDOW: 15 kilobyte
> >
> >   (The latter replaces MAX_PAYLOADS, and I'm not sure whether it
> is
> >   better to express this in terms of package count or bytes on the
> wire,
> >   just giving an example here. All numbers in the above were
> pulled out
> >   of uninformed air.)
> 
> Jon> My leaning is towards packet count - circuit speeds cover a
> Jon> significant
> range. I need to think this through.
> Jon> The default RFC7252 PROBING_RATE is too low in my humble
> estimation
> Jon> - a
> large packet can cause long inter-packet gaps (300 bytes is a 5
> minute
> delay)
> >
> > * Separation of layers, sub-topic "Tokens": Same thing, next
> layer.
> >
> >   Whenever you're tempted to talk of a token, consider some of
> these
> >   replacement phrases as a first step:
> >
> >   * "MUST be sent with a new token" -> "is a new request".
> >   * "Tokens MUST be included" -> (nothing -- transports use tokens
> by
> >     construction)
> >   * "MUST be sent with the same token as the response" -> "is sent
> as a
> >     response to" / "is sent as an additional response to that
> request".
> >     (Here it may make sense to refer to the tokens in an
> additional "
> >     (which means it uses the same token, the same way an
> observation
> >     response uses the requests's token for multiple responses)").
> 
> Jon> Agreed - Token references needs to be tidied up.  Will work on
> this.
> "additional" may help us here to clarify which token 'value' should
> be used where.
> >
> > * Naming: It's technically a minor thing, but people have already
> >   complained to me about how hard the Block[12] names are to
> > comprehend,
> >   and introducing these options as Block[34] would not help here.
> >
> >   I'd like to suggest QuickBlock-Block[12].
> 
> Jon> Certainly Block[34] are likely to transfer data more quickly
> than
> Block[12].  However xxxx [12] implies a replacement for Block[12]
> which I am not so sure about.
> 
> >
> >   (I know that this part of designing a new option is annoying. In
> the
> >   interest of winding up with something that can be learned
> easily, it
> >   is unfortunately essential).
> >
> >   In connection with that, it may make sense to briefly think
> about a
> >   draft name before it is submitted as a WG draft. new-block
> sounds like
> >   a 7959bis, which in my understanding this does not aim to be.
> 
> Jon> Good idea.
> >
> > * 4.TBA3 Missing Payloads: I don't quite see why this needs a
> distinct
> >   code. 4.08 Request Entity Incomplete sounds perfectly suitable
> to me.
> 
> Jon> As we have to define the diagnostic payload as containing the
> Jon> missing
> blocks, we did not want to change the semantics of how 4.08 is used
> - hence TBA3.
> 
> Jon> That said, a 4.08 response could contain 1 or more Block3
> options
> Jon> but
> that would take up more space.
> >
> >   If you think that sending an existing 4.xx code in the middle of
> a
> >   block-wise transfer would cancel the transfer, there's still two
> ways
> >   out of this:
> 
> Jon> I was concerned about the 4.08 diagnostic payload changing
> format,
> Jon> but
> yes, an 'unexpected' error code could terminate the transfer.
> >
> >   * You're just defining what a block-wise transfer is; just allow
> it.
> >
> >     (In a RFC7959 block-wise transfer that runs over a proxy, the
> proxy
> >     may be currently incapable of doing any forwarding and return
> 5.03
> >     Service Unavailable Max-Age:5. The client would then just
> pause 5
> >     seconds and send the latest block again.)
> >
> >   * For all but the last block, it may also be an option to send
> it as a
> >     payload to a 2.31 code -- I don't think that would be outright
> >     forbidden (and at any rate, all involved clients speak the
> protocol
> >     anyway).
> 
> Jon> I have an issue with changing the 2.31 reporting on the last
> Jon> successful
> block received - this currently fails if block num of 0 is missing
> as we cannot indicate block num = -1 has been received.
> Jon> If the last block is received, but a previous one was not, a
> 2.31
> Jon> could
> be used to re-request the missing block, but a 2.01/2.04 would need
> to be held back for the final block acknowledgement.
> >
> > * The draft describes this all as "just working through a proxy" -
> -
> >   original block-wise does not, and I'd like to hear how this is
> hoping
> >   to get away without the options being proxy-unsafe.
> 
> Jon> I was not aware of CoAP to CoAP proxy issues with BLOCK[12]
> when
> Jon> this
> was written, but your comment implies that there is.  Certainly CoAP
> to other protocol proxies could run into issues.
> 
> Jon> I was thinking of block by block proxying working and hence
> could
> Jon> be
> proxy unsafe.
> >
> >   Is there any point at all in using block-by-block proxying for
> these
> >   use cases? Unless a proxy is sitting right inside the link under
> >   attack, and unless the bodies get huge, it may be way easier for
> this
> >   to be purely hop-by-hop. Proxies would reassemble the full
> bodies and,
> >   for the next hop, just decide what works best there (be it
> regular
> >   block-wise, Block34 or BERT).
> 
> Jon> Yes, there could be full body re-assembly and the full body
> held in
> cache if needed.  This would add in a bit of latency.  However this
> would restrict a Block[34] possibility of supporting streaming of
> data should that be required.
> >
> >   (If there's a point in allowing block-by-block forwarding, we
> can talk
> >   it through and work through the initial ideas that will come up
> like
> >   "We use large enough Request-Tag values so they are unique",
> "how
> >   large does that need to be", "why do we end up having a Request-
> Tag in
> >   every request now" and "why do we not want that", but my gut
> feeling
> >   is we won't need to go there.)
> 
> Jon> For Block3 which would use Request-Tag, I would expect that for
> a
> specific body of data for a specific resource the Request-Tag to
> remain the same - and if the body changes a new Request-Tag is used.
> Jon> As this is the same Request-Tag for whether the whole body is
> Jon> cached,
> or individual blocks of the body the Request-Tag usage will not
> change.
> 2^32 should be large enough - 2^64 even better - but re-usage has to
> be generally considered.
> 
> ~Jon
> >
> > Kind regards
> > Christian
> >
> > --
> > To use raw power is to make yourself infinitely vulnerable to
> greater
> > powers.
> >   -- Bene Gesserit axiom


_________________________________________________________________________________________________________________________

Ce message et ses pieces jointes peuvent contenir des informations confidentielles ou privilegiees et ne doivent donc
pas etre diffuses, exploites ou copies sans autorisation. Si vous avez recu ce message par erreur, veuillez le signaler
a l'expediteur et le detruire ainsi que les pieces jointes. Les messages electroniques etant susceptibles d'alteration,
Orange decline toute responsabilite si ce message a ete altere, deforme ou falsifie. Merci.

This message and its attachments may contain confidential or privileged information that may be protected by law;
they should not be distributed, used or copied without authorisation.
If you have received this email in error, please notify the sender and delete this message and its attachments.
As emails may be altered, Orange is not liable for messages that have been modified, changed or falsified.
Thank you.