Re: [Ace] Ordering Guarantee in CoAP-EAP

Benjamin Kaduk <> Thu, 15 April 2021 04:31 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 1B19A3A0D25 for <>; Wed, 14 Apr 2021 21:31:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id wzxo7dZR3zHQ for <>; Wed, 14 Apr 2021 21:31:06 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 620B93A0D1E for <>; Wed, 14 Apr 2021 21:31:06 -0700 (PDT)
Received: from ([]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by (8.14.7/8.12.4) with ESMTP id 13F4UwNM002381 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 15 Apr 2021 00:31:03 -0400
Date: Wed, 14 Apr 2021 21:30:57 -0700
From: Benjamin Kaduk <>
To: Dan Garcia Carrillo <>
Cc: "" <>, Rafa Marin-Lopez <>
Message-ID: <>
References: <>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <>
Archived-At: <>
Subject: Re: [Ace] Ordering Guarantee in CoAP-EAP
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Authentication and Authorization for Constrained Environments \(ace\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 15 Apr 2021 04:31:11 -0000

Hi Dan,

I think the Echo option should be workable for your case (and in fact would
provide an example of a case where the "time-limited single-use
cryptographic nonce" that I had asked about in my review of
draft-ietf-core-echo-request-tag might be applicable).

I expect the URI-Query proposal would be functional as well, but perhaps
require more complexity, especially when the number of round-trips in the
EAP mechanism is not going to be known in advance.

I don't think I quite understand the concerns with Location-Path and
Location-Query (possibly because it's late in the day for me) and can't
provide an answer for your question about that mechanism.


On Tue, Mar 30, 2021 at 06:49:32PM +0200, Dan Garcia Carrillo wrote:
> Hi ACE,
> Last Thursday we had a conversation with Christian regarding possible 
> optimizations on how to provide the requisite of the ordering guarantee 
> for EAP.
> This is currently achieved with an Option we define (SeqNum) to maintain 
> a sequence number. This number is initialized randomly by the Controller 
> and increased monotonically. This way the IoT device is able to know 
> which is the next expected message.
> In previous investigations, having into account that we are dealing with 
> a lock-step protocol, we consider using the MSG-ID. The fact that they 
> can be generated randomly was not a problem, since we considered that 
> the CoAP engine store the recent MSG-IDs to detect duplicates, and any 
> new message with an unregistered MSG-ID was considered the next expected 
> message.
> After our conversation with Christian, he pointed out that there may be 
> implementations which may not keep track of recent MSG-IDs, hence we may 
> need to rely on other mechanism to ensure the message sent is the one 
> expeted.
> To avoid defining a new option, we could use existing solutions to help 
> provide ordered delivery:
> - URI-Query
> - Location-Path and Location-Query
> - Echo Option
> URI-Query:
> We can use this as part of the request to specify accesing a resource 
> with a subsequent value that indicates the step we are currently in 
> (e.g., /b/x/n), 'b' -> bootstrapping service; 'x'-> resource for the 
> currenty bootstrapping state; 'n'-> the current exchange
> Location-Path and Location-Query:
> In the response we would indicate the update on the current state and  
> what is expected from the client in the next message, by adding the 
> Location-Path and Location-Query Options. The problem is that currently 
> these options are specified with 2.01 response code, not 2.04 Changed 
> (the one we are using every time we update the bootstrapping state).
> Our question is, would be possible to have this confirmation in the 
> response?
> Echo Option:
> Finally, another option proposed by Christian is to use the Echo Option, 
> starting in the first ACK from the server, to achieve the ordering 
> guarantee. The server would state a number that has to be replied in 
> another Echo Option in the next POST request from the server.
> We feel that the mechamism finally chosen, that we are pursuing for the 
> need of the EAP requirements, could be used for any lock-step protocol 
> using CoAP as transport.
> This is what we understood, please Christian comment if there is 
> something to be clarified.
> I think the option with the Echo Option we achieve a clean solution with 
> a similar approach as we propose with the SeqNum Option.
> Best Regards,
> Dan.
> [1]
> _______________________________________________
> Ace mailing list