Re: [core] Comments and questions on draft-jarvinen-core-fasor-02

Markku Kojo <kojo@cs.helsinki.fi> Wed, 20 November 2019 07:23 UTC

Return-Path: <kojo@cs.helsinki.fi>
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 F371312085D for <core@ietfa.amsl.com>; Tue, 19 Nov 2019 23:23:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.3
X-Spam-Level:
X-Spam-Status: No, score=-4.3 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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=cs.helsinki.fi
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 59DpVd2fGSYg for <core@ietfa.amsl.com>; Tue, 19 Nov 2019 23:22:58 -0800 (PST)
Received: from script.cs.helsinki.fi (script.cs.helsinki.fi [128.214.11.1]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 40852120856 for <core@ietf.org>; Tue, 19 Nov 2019 23:22:58 -0800 (PST)
X-DKIM: Courier DKIM Filter v0.50+pk-2017-10-25 mail.cs.helsinki.fi Wed, 20 Nov 2019 09:22:52 +0200
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.helsinki.fi; h=date:from:to:cc:subject:in-reply-to:message-id:references :mime-version:content-type; s=dkim20130528; bh=/U19Q/Ea+zacwQCgf 0Ap4VMq7nhYst2GOdSTjVF04hk=; b=kj3QqpX1V58QWkXrC6gYw5ZsRcn5nqGDS Pi5PWPQkmnvdC4CDtVCBrsM9sHDR022w55E6KPekqIZwUpB4ygr7xuX08q+rAeNK ZjQsh1yfZ4mxUMR/0JFKx1SDdm2+sDCN2kJrOoDEB029Nx/Lu21g2OkGxNXxnLih RNLubbmnbw=
Received: from dhcp-9fb6.meeting.ietf.org (dhcp-9fb6.meeting.ietf.org [31.133.159.182]) (AUTH: PLAIN kojo, TLS: TLSv1/SSLv3,256bits,AES256-GCM-SHA384) by mail.cs.helsinki.fi with ESMTPSA; Wed, 20 Nov 2019 09:22:50 +0200 id 00000000005A0040.000000005DD4E9CB.0000190D
Date: Wed, 20 Nov 2019 09:22:48 +0200
From: Markku Kojo <kojo@cs.helsinki.fi>
To: Christer Holmberg <christer.holmberg=40ericsson.com@dmarc.ietf.org>
cc: "core@ietf.org" <core@ietf.org>, Ilpo Järvinen <ilpo.jarvinen@cs.helsinki.fi>
In-Reply-To: <9917155C-DBA2-43F7-B14C-3B778B27E96F@ericsson.com>
Message-ID: <alpine.DEB.2.21.1911200744160.9015@hp8x-60.cs.helsinki.fi>
References: <9917155C-DBA2-43F7-B14C-3B778B27E96F@ericsson.com>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="US-ASCII"
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/Kam81VvdboRs6Lc-dMIeCK4w5Eg>
Subject: Re: [core] Comments and questions on draft-jarvinen-core-fasor-02
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, 20 Nov 2019 07:23:01 -0000

Hi Christer,

thanks for the comments/questions. Please see inline.

On Wed, 20 Nov 2019, Christer Holmberg wrote:

> Hi,
>
> I took a look at the FASOR draft, and I have a few comments and questions.
>
>
> Q1:
>
> Section 4.4. says:
>
>   "The Retransmission Count Option is used to distinguish whether an
>   Acknowledgement message arrives for the original transmission or one
>   of the retransmissions of a Confirmable message."
>
> - I assume this is achieved by, once it has been confirmed that the
> receiver supports the option, incrementing the counter value in each 
> retransmitted message. However, I cannot find that described anywhere. 
> The text only says that the value of the original transmission is zero.

Right, but the text says it just with a bit different phrasing. In the 
second but last para of Sec 4.4:

  "Retransmissions, if any, carry the ordinal number of the
   retransmission."

> - Does CoAP allow changing option values in retransmissions? I cannot
> find any text about that in RFC 7252 that forbids it, but my general
> assumption is that retransmitted messages are identical.

It does allow, just like Carsten already confirmed.

> Q2:
>
> Section 4.4. says:
>
>   "However, the Retransmission Count Option cannot be used with an Empty
>   Acknowledgement (or Reset) message because the CoAP protocol
>   specification [RFC7252] does not allow adding options to an Empty
>   message.  Therefore, Retransmission Count Option is useful only for
>   the common case of Piggybacked Response."
>
> - This means that the count option cannot be used when the receiver is
> a proxy, since a proxy will typically send an empty acknowledgement when
> it receives a message.

Yes, that's what it means and that's why it's an optional enhancement. 
Unfortunately, CoAP didn't include such a feature in its base spec. 
And I believe the reason for this was that the base spec. didn't include 
any kind of RTT measurements for the RTO timer, so it would have been 
unnecessary. This could have been achieved by stealing 2-3 bits from the 
Message ID, for example. Alternatively, it could still be possible to 
introduce a new type of message, an Empty Message with options, I 
believe. This would allow support for delivering options in an empty ack. 
Such an empty ack message would be needed also for other purpuses, for 
example, if at some point support for ECN is seen useful for CoAP (over 
UDP). Otherwise, there seems not to be any other way to provide the 
necessary feedback.

> Q3:
>
> Section 4.4 says:
>
>   "The original transmission of a request is indicated with the number
>   0, except when sending the first request to a new destination
>   endpoint.  The first original transmission of the request to a new
>   endpoint carries the number 255 (0xFF) and is interpreted the same as
>   an original transmission carrying the number 0."
>
> - What is meant by "new" endpoint? Does the sender have to remember the 
> endpoints it has previously communicated with? If so, for how long?

Endpoint means how it is defined in the base spec (RFC 7252):

Endpoint
       An entity participating in the CoAP protocol.  Colloquially, an
       endpoint lives on a "Node", although "Host" would be more
       consistent with Internet standards usage, and is further
       identified by transport-layer multiplexing information that can
       include a UDP port number and a security association
       (Section 4.1).

Just like a CoCoA sender, a FASOR sender needs to maintain an RTO timer 
per endpoint, i.e., it needs to remember the endpoints. For how long, is 
not specified. However, from the option usage point of view it would be 
just ok to forget about an endpoint at any point and consider it as a new 
endpoint next time the sender communicates with it. This would just mean 
that when sending to the same endpoint next time we cannot leverage the 
empty option value optimization of CoAP (i.e., need to include the 
special value 255 (0xFF) in the option and confirm again that the 
receiver supports the option). Forgeting about the RTO timer (and 
corresponding RTT estimate would be possible too (just like in RFC 
6298), but is not advisable as it would affect the accuracy of the RTT 
estimation.

> Q4: >
> Section 4.5 describes how, as an alternative solution, the Token can be 
> used to exchange count information.
>
> - How would that work? Would you use different Token values in each 
> retransmission? Again, I am not sure whether CoAP explicitly forbids 
> that, but I assume that is not the intention.

Yes, it should work just fine. It is all up to the client to decide how it 
generates the token values. Servers just echo it back without 
modification.

Best regards,

/Markku

>
> Regards,
>
> Christer
>
>
> _______________________________________________
> core mailing list
> core@ietf.org
> https://www.ietf.org/mailman/listinfo/core
>