[core] Fwd: Re: block1 size negotiation with 4.13 Request Entity Too Large

Achim Kraus <achimkraus@gmx.net> Wed, 22 July 2020 07:57 UTC

Return-Path: <achimkraus@gmx.net>
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 721D03A0F78 for <core@ietfa.amsl.com>; Wed, 22 Jul 2020 00:57:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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, FREEMAIL_FROM=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=gmx.net
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 iOOcMfqk35mK for <core@ietfa.amsl.com>; Wed, 22 Jul 2020 00:57:03 -0700 (PDT)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (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 76C293A0F76 for <core@ietf.org>; Wed, 22 Jul 2020 00:57:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1595404619; bh=+4La41I10DXjLchrwA/vL39a3UPFsfq40DO3PkcA4DI=; h=X-UI-Sender-Class:Subject:References:To:From:Date:In-Reply-To; b=BOnrDXTCxfd1kObkd8Xxdm+zRnpJZ404WxLcLCVXkFew6yLxsRWEzbUGZWPYxvAhL dY+rIpkqYUH0hZ4cKbb2YvCADCVl8KtIsoZENcoWp/5ekABvVbjRj40QVmGSSeDcJ6 RR6eNdt5fuuHM5ZsLW4wVhSkpHK/xOtQVSRxNoWg=
X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c
Received: from [192.168.178.45] ([94.216.229.78]) by mail.gmx.com (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MGhuK-1k1xFo3d6w-00Dsx7 for <core@ietf.org>; Wed, 22 Jul 2020 09:56:58 +0200
References: <189d3f1e-9c83-b1c7-d8a1-7f195265bd2d@gmx.net>
To: "core@ietf.org" <core@ietf.org>
From: Achim Kraus <achimkraus@gmx.net>
X-Forwarded-Message-Id: <189d3f1e-9c83-b1c7-d8a1-7f195265bd2d@gmx.net>
Message-ID: <e017c262-c88e-6d77-5f05-2ae2c1145aa8@gmx.net>
Date: Wed, 22 Jul 2020 09:56:57 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0
MIME-Version: 1.0
In-Reply-To: <189d3f1e-9c83-b1c7-d8a1-7f195265bd2d@gmx.net>
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable
X-Provags-ID: V03:K1:a0Vq19q4qq6wSbGcQz3Rhten+hqhsGW7DH/J0ElC89wClfTvQ3s TbV8SmcuFHIpE6EG0/+6Nk5d2lKHHqPIiNSRa1BWJyWUA5h4qxJueRjQw435U//V2FZy4IT bjSKjoMnantICvDHrQKEIqnvbKZu2dcgF9Dm2fWkK9QHAlbQ1puaiWef3voTa7vq5sTma/d GGDboIG5Er0VqmdYcAsaw==
X-UI-Out-Filterresults: notjunk:1;V03:K0:TQgLz1Pxl8g=:XslCj7SyzaYUNyl9+KcgXk K3+AN7EO+KxWq5311GMeXY2KOGqDVFfqoNYpdbfEIbrJTitsuW65xtEZMBcOV4T03DhpQcMl/ VV0SLi5Ntnl5Bx4zW/CZgdlVRx8Zym0JMKnbg6gwATR2vBJC16HJsaFTyZRlCMq+pomxM7w/k 3oH7um77ioDWz9CDpm+qUnRBiEMKery2Zse7WBxTff4jPfdtYPzu7syhpHn+KF4vKZoB0wQkl kD/9Y6on+mO6w//8NkN5nP+1GPX041WCaChX33Ia2U7gBwVLUG7uatFFsJETPFp1kq7uE8Ban XtDaKOz7F0Vj+Ap0F6Uqc4XG3GAKcxIphOMuM67LjSpo4iO0OuX97psc2RurNvykhv8O9+Tn5 I2uRqoT+S9ZV9FMFonmPcjTKBYTlhlJ3mhHL+aDtWNnYOcSeb5dJJ/DN5r0eJUcPZkrEKB4Fu 5oB07YtG5d0nkHWKoJbVmVwt147J7XHEAx/7iFnKUeGTDwlQTLXec4XeO2G25AgVyf4QXZZhn CnRUzr0qRkGg84vtQfKPuvUM3o0zluxwc4y4I+lihMfCHKJMrhIgAQzR4T7CMmyIdPJ19XuE7 jipD33Q6N4Z65tz6ia/kCXk1svpzoPj3VyVeaxq3O77gH39Bg/fS667VGLOf8GgyvirLgpV1Q pt0lKdRrJNQl++Ae/JqD1oX9U44xV7LPDZkI1gx8DOzPzEwX1X6RHqTOR+phHo/qXLrAh0NGE FjXaS7qJzkZYw3wpVD/wqkzvwhC7sM4YFtm1/hf9w0x46pZ2jVADbnERjW8GFTVHXwIvE3Mb3 MNSkdH09wL511YgJvWoSnUvbfIPqXngwSWeKIVw+KsepLNHq3QSwdce09MAkz8dHlvEsQJ9cn FQTT7OAz1Z6RMA5DNoSSl6+IrVKrttYu4R4ZSOR/LzgW4RHCGcuhPRmzrQ7fqUmwIbkRGHBX0 tCwkKHApr6x6DuWKpgK2ZzdR50tjSR9r+/1FJfPpS6XRW+K9NYaUvD/jpQYUGeHT415yaGrR2 GBO69q+IGtzZ88yQ7M4yuwMJA8SuGNzWWDgYISGT823Pyt8Ekbo9Z/XvM/ruMse6IM6QGPPgH arUIMGTcAWX2oFF4sDTgfY5B/z78gafiQTnDPD6L/huywT3zuk/wC9AoiyHFZHmTJ2VkP0GtU Xgv2caV4SznOCc6IffREbbnXRZfYvEppQHnTTNmvTnZnkgn2L3G/fvdg7paOXfb6rvLgeO81e YbbwqU6TxNtZU0kPf0O7ldUyduYNchAjR6uIZHg==
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/MIVbB1-b1mHnZpyFSMTVpiwFHfo>
Subject: [core] Fwd: Re: block1 size negotiation with 4.13 Request Entity Too Large
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: Wed, 22 Jul 2020 07:57:04 -0000

Dear list,

I would really appreciate, if the detail questions about the 4.13
failover could be answered!

Without answers, I'm still afraid, that implementations will became
"overcomplicated" and "less interoperable".

1. is it intended to change the block size only in the first exchange?
Or on other exchanges? (Additionally, if changing later is considered as
failure, how should that failure be handled/processed?)

2. is it intended, that a 4.13 response without block1 option to a
request also without block1 option, should also use/try a failover with
a request with block 1 option?

best regards
Achim Kraus


-------- Weitergeleitete Nachricht --------
Betreff: Re: [core] block1 size negotiation with 4.13 Request Entity Too
Large
Datum: Wed, 8 Jul 2020 10:24:47 +0200
Von: Achim Kraus <achimkraus@gmx.net>
An: core@ietf.org WG <core@ietf.org>

Hi list,

over the last 3 years the two eclipse open source projects leshan
(LwM2M) and Californium (CoAP/DTLS) have received a couple of request to
implement a blockwise failover for 4.13.

Simon prepared now a PR to close this GAP. Doing so, he found, that
changing the blocksize in the middle of a transfer is easy as well.

But there my concerns have started. I don't want to create a gap in the
interoperability!

RFC 7959, section 2.0, page 7

"(If the first request uses a bigger block size than the receiver
prefers, subsequent requests will use the preferred block size.) "

section 2.3, page 11

"(The effect is that, if the server uses the smaller of (1) its
preferred block size and (2) the block size requested, all blocks for a
body use the same block size.)"

section 2.5, page 14

"Note that any reduction in the block size may mean that the second
request starts with a block number larger than one, as the first
request already transferred multiple blocks as counted in the smaller
size."

FMPOV, that are all indicators to change the blocksize only with the
first exchange. But I also miss the concrete statement about that.
So, did I overread something? What was the intention, at which exchange
should the blocksize be adapted?

For the other question about using block1 in the response without using
it in the request, I found:

section 2.5, page 15

"(Note that a 4.13 response to a request that does not employ Block1 is
a hint for the client to try sending Block1, and a 4.13 response with a
smaller SZX in its Block1 Option than requested is a hint to try a
smaller SZX.)"

Thanks in advance!

Best regards
Achim Kraus

Am 02.07.20 um 13:14 schrieb Simon Bernard:
> Hi all,
>
>    I have several questions about block1 size negotiation.
>    The specification <https://tools.ietf.org/html/rfc7959#section-2.9.3>
> says :
>
>     The present specification allows the server to return this response
>     code (4.13) at any time during a Block1 transfer to indicate that it does
>     not currently have the resources to store blocks for a transfer that
>     it would intend to implement in an atomic fashion.  It also allows
>     the server to return a 4.13 response to a request that does not
>     employ Block1 as a hint for the client to try sending Block1.
>
>     Finally, a 4.13 response to a request with a Block1 Option (control
>     usage, seeSection 2.3  <https://tools.ietf.org/html/rfc7959#section-2.3>) where the response carries a smaller SZX in
>     its Block1 Option is a hint to try that smaller SZX.
>
>    So if a client send a block1 request and server can not handle a so
> big block it can answer with 4.13 + block1 with szx option. This means
> sends me smaller block (size is given in szx option).
>
>    1) Could this kind of negotiation happen in a middle of a block1
> transfer ? or any block size negotiation (even negotiation which does
> not use 4.13) should always be done on first exchange ?
>
>     Now Imagine a client which sends a normal (not block1) request with
> a too large payload and server want this payload be sent by block1.
>
>    2) What exactly should send the server ? 4.13 or 4.13 + block1 with
> szx option ? is size1 should be used to guess the correct block size ?
>
>     The more straightforward way seems to be "4.13 +block1 with szx
> option" this way this is clear that server support block1 and it gives
> the exact size of block it want. But the rfc sounds to consider this way
> only if original request is block1 too.
>
> Thank you,
>
> Simon
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>

_______________________________________________
core mailing list
core@ietf.org
https://www.ietf.org/mailman/listinfo/core