[core] Re: [dtn] Re: Fwd: New Version Notification for draft-gomez-core-coap-bp-00.txt

Rick Taylor <rick@tropicalstormsoftware.com> Wed, 29 May 2024 09:09 UTC

Return-Path: <rick@tropicalstormsoftware.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 38B33C14EB17; Wed, 29 May 2024 02:09:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.896
X-Spam-Level:
X-Spam-Status: No, score=-6.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id c_WTT883UUGx; Wed, 29 May 2024 02:09:35 -0700 (PDT)
Received: from mail.tropicalstormsoftware.com (mail.tropicalstormsoftware.com [188.94.42.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1C856C14F6BB; Wed, 29 May 2024 02:09:33 -0700 (PDT)
Received: from tss-server1.home.tropicalstormsoftware.com ([fe80::753b:fa82:5c0:af0d]) by tss-server1.home.tropicalstormsoftware.com ([fe80::753b:fa82:5c0:af0d%10]) with mapi id 14.03.0513.000; Wed, 29 May 2024 10:09:30 +0100
From: Rick Taylor <rick@tropicalstormsoftware.com>
To: "carles.gomez@upc.edu" <carles.gomez@upc.edu>, Achim Kraus <achimkraus@gmx.net>
Thread-Topic: [dtn] Re: [core] Fwd: New Version Notification for draft-gomez-core-coap-bp-00.txt
Thread-Index: AQHasZxZxtokNl1IdEa/Cd/gXlIlgLGt5kfg
Date: Wed, 29 May 2024 09:09:29 +0000
Message-ID: <38A5475DE83986499AEACD2CFAFC3F9802737162F9@tss-server1.home.tropicalstormsoftware.com>
References: <170928597415.22824.8051716330073401889@ietfa.amsl.com> <CAAUO2xxnC8t6LGr=OkR5tk7pHQOrScf5ZReLnaaOzEOYA7EFqQ@mail.gmail.com> <ZfkEWrZ0EcqlAJ3K@hephaistos.amsuess.com> <517a3ccc-8f64-49ca-b8a8-ca9f83c7333a@gmx.net> <CAAUO2xw+940p6BmLC6KBKEJvJNxE4KKAX4kzR7ZbD2+a1i5Bxg@mail.gmail.com>
In-Reply-To: <CAAUO2xw+940p6BmLC6KBKEJvJNxE4KKAX4kzR7ZbD2+a1i5Bxg@mail.gmail.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.10.0.3]
Content-Type: multipart/alternative; boundary="_000_38A5475DE83986499AEACD2CFAFC3F9802737162F9tssserver1hom_"
MIME-Version: 1.0
Message-ID-Hash: JYAEQQE776H5CM2SNWKJHQSHKS6WNQ6C
X-Message-ID-Hash: JYAEQQE776H5CM2SNWKJHQSHKS6WNQ6C
X-MailFrom: rick@tropicalstormsoftware.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-core.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Christian Amsüss <christian@amsuess.com>, "core@ietf.org" <core@ietf.org>, "dtn@ietf.org" <dtn@ietf.org>, Anna Calveras Auge <anna.calveras@upc.edu>
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [core] Re: [dtn] Re: Fwd: New Version Notification for draft-gomez-core-coap-bp-00.txt
List-Id: "Constrained RESTful Environments (CoRE) Working Group list" <core.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/xOtLzdaR6hsr-wEFd4hM98_0eKQ>
List-Archive: <https://mailarchive.ietf.org/arch/browse/core>
List-Help: <mailto:core-request@ietf.org?subject=help>
List-Owner: <mailto:core-owner@ietf.org>
List-Post: <mailto:core@ietf.org>
List-Subscribe: <mailto:core-join@ietf.org>
List-Unsubscribe: <mailto:core-leave@ietf.org>

Hi All,

Just top-posting a few comments re bundle identity and de-duplication (and I am most definitely not up to speed on COAP so please excuse me repeating the obvious)

In BPv7, a bundle MUST be uniquely identified by the tuple of (Sender_EID, Creation timestamp) – ignoring BP fragmentation, which I think you should at the COAP level.

This means that BPAs (routers) along the path can and may be de-duplicating bundles, so you shouldn’t expect to be doing a lot of dedup at the COAP layer, but it should be checked for nonetheless.

However, there is no requirement of ‘maintaining bundle order’ at the BPA layer, so you will need to perform reordering at the COAP layer, but the ‘Creation timestamp’ field in the BP primary block (which should be available to a higher layer) does give you an Bundle A ‘created before’ Bundle B relationship which is likely what you need.

The Sender_EID can be required to be fixed for the length of a COAP ‘session’, as an EID is a logical communication endpoint rather than an address, and hence avoids problems such as re-homing, multi-homing, mobility, etc.

And yes, although a Creation timestamp is only 2 CBOR unsigned integers, an EID can be a fairly large CBOR object when encoded.  But it is worth remembering that although ‘native’ COAP compresses heavily to fit in small frames, a bundle can happily be a several orders of magnitude larger than 1500 octets – but I’m not sure if that helps!

And…  bundle status reports are defined as very much a debugging feature – RFC9171 states ‘disabled by default’, as they are a potential source of DDoS by reflection attacks.  Requiring status reports for COAP-over-BP feels like a mistake to me.

Just my 2 cents worth, hope it helps.

Cheers,

Rick

From: Carles Gomez Montenegro [mailto:carles.gomez=40upc.edu@dmarc.ietf.org]
Sent: 29 May 2024 08:46
To: Achim Kraus
Cc: Christian Amsüss; core@ietf.org; dtn@ietf.org; Anna Calveras Auge
Subject: [dtn] Re: [core] Fwd: New Version Notification for draft-gomez-core-coap-bp-00.txt

Hello Achim,

Many thanks for your feedback!

Please find below our inline responses/comments:

On Tue, 19 Mar 2024 at 13:16, Achim Kraus <achimkraus@gmx.net<mailto:achimkraus@gmx.net>> wrote:
Hello Carles, Anna, Christian,

from draft-gomez-core-coap-bp-00:

 > TO-DO: MAX_PAYLOADS for deep space?

I was able to make some experience with a global geostationary satellite
NB-IoT network (NTN) early February this year (2024). I was using
Eclipse/Californium with CoAP/DTLS 1.2 CID on both sides, server and
device. The main issue was relaxing the transmission timeouts to about
30s. That's twice the RTT of my own experience.

I have access to "Skylo Device Conformance Document." from
(https://www.skylo.tech/) It's AFAIK it's not public, but got the
permission to cite this section:

"Data Usage Policy and Best Practices

The Skylo network is designed with IoT data rates in mind. This is
reflected in our network policies and associated data plans. Please
ensure you have the correct data plan associated with your SIM.
Satellite transmission packet size and frequency should adhere to the
following best practices:

- The maximum packet size for each transmission is 256 bytes.
- The minimum time between successive packets should greater than 30 seconds

...

Depending on the data plan associated with a device and solution,
real-time messaging and/or alerting may be supported. As a best
practice when designing and implementing a solution that includes real
time messaging and/or alerting, be sure application logic can
accommodate standard message 1-way latency of up to 30 seconds."

The 256 bytes includes all headers, in my case starting with the
IP-header. It's not that deep as inter-planet communication, but I would
not expect to have better numbers when communicating with Mars.

Thanks, the details of the above mentioned data plan are very interesting.


 From Christian's comment:

 > * Increasing the message ID size and timeouts also means that servers
 >    that do request deduplication may need to store quite many requests.

 From draft-gomez-core-coap-bp-00:

 > avoiding a severe limitation on the number of messages

FMPOV, the "ultra-long-range-communication" does not only come
with high latency, it also limits the amount of data. Therefore
I hardly see, that a 16 bit MID will expire.

While some typical bit rates used in (deep) space are relatively low (in the order of Mbit/s), greater bit rates (up to Gbit/s) have been reported, and might also be more typical in the future.

One option might be not modifying the MID size (i.e., 16 bits). However, RFC 7252 would imply that, in some cases (e.g., Jupiter to Earth, for MAX_RETRANSMIT=1) the maximum average message rate would decrease from the current ~265 message/s down to ~3 message/s. Perhaps the latter could be enough. Or perhaps a more future-proof approach could aim to avoid a limitation on the maximum message rate. But of course, the downsides of increasing the MID size (such as those mentioned by Christian) need to be taken into account as well.

Once again, many thanks for your feedback!

Best regards,

Carles and Anna



best regards
Achim


Am 19.03.24 um 04:19 schrieb Christian Amsüss:
> Hello Carles, Anna,
>
> thanks for submitting this. I know it's work for you, but for me it's
> also fun catching up with time values I otherwise only know from
> recreational reading :-)
>
> A few comments from a first read:
>
> * CoAP's retransmission mechanism is based on exponential back-off to
>    avoid congestion. Does BP provide any mechanisms suitable for
>    differentiating between congestion and loss of message (which would
>    allow doing linear rather than exponential retransmits), NACKs (which
>    would allow immediate retransmission) or RTT estimates (which could
>    decrease time to completion similar to how FASOR speeds up
>    retransmission)?
>
> * Unlike the round trip time related parameters (which clearly need
>    higher values in interplanetary scenarios) 128 seconds from Observe
>    are related to the time by which a messager might be delayed relative
>    to another message.
>
>    As (to my little knowledge stemmming from reading this document) BP
>    will not retransmit on its own, can such reorderings happen? Or can
>    there be multipath routing (where path RTT differences would exceed
>    128 seconds)?
>
> * Message IDs are mainly used for request deduplication, and to match
>    empty ACKs to requests. Are there identifiers inside BP that are
>    available to higher layers that they can use and refer to? (If so, an
>    original message could do without a message ID, a retransmission could
>    refer to the original bundle, and an ACK might just use the status
>    report).
>
> * Increasing the message ID size and timeouts also means that servers
>    that do request deduplication may need to store quite many requests.
>    It may make sense to emphasize that the use of idempotent servers can
>    become necessary here.
>
>    Relatedly, OSCORE's default replay window is 32 messages, and unlike
>    for DTLS one can't unilaterally pick a larger one. I don't know if and
>    whether you plan on setting up OSCORE contexts, but that setup process
>    should include an explicit field to advertise a larger replay window.
>    (To my knowledge, everyone so far was happy with the default, and
>    never specified a way to increase the window).
>
> * RFC 7959 allows parallel transmissions of blocks, and the emphasis on
>    CON is merely a recommendation (which users document have good reason
>    to not follow) -- no need to go stop-and-wait there. RFC9177 has a
>    very limited applicability scope for its Q-Block. The content format
>    it describes for describing multiple missing blocks is just as
>    applicable to regular block-wise.
>
> * What is the shape of the endpoint_ID? Might be a tad hard to pack
>    URI-shaped identifiers into the authority component, but the upside is
>    that we may not need another scheme. Let's talk more after tomorrow's
>    presentations, where this will be a topic of mine anyway.
>
> Best regards
> Christian
>
>
> _______________________________________________
> core mailing list
> core@ietf.org<mailto:core@ietf.org>
> https://www.ietf.org/mailman/listinfo/core