Re: [core] Retransmission of non-confirmable response message upon receiving request message retranmission?

Carsten Bormann <cabo@tzi.org> Fri, 29 November 2019 12:27 UTC

Return-Path: <cabo@tzi.org>
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 CC988120241 for <core@ietfa.amsl.com>; Fri, 29 Nov 2019 04:27:53 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
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 o7vN-cCKpqYZ for <core@ietfa.amsl.com>; Fri, 29 Nov 2019 04:27:51 -0800 (PST)
Received: from gabriel-vm-2.zfn.uni-bremen.de (gabriel-vm-2.zfn.uni-bremen.de [134.102.50.17]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 76713120232 for <core@ietf.org>; Fri, 29 Nov 2019 04:27:51 -0800 (PST)
Received: from client-0103.vpn.uni-bremen.de (client-0103.vpn.uni-bremen.de [134.102.107.103]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gabriel-vm-2.zfn.uni-bremen.de (Postfix) with ESMTPSA id 47PYgV0kSzz10wC; Fri, 29 Nov 2019 13:27:50 +0100 (CET)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <09a7f0f318dc4f45a3cdd7791b28ecdd@bosch-si.com>
Date: Fri, 29 Nov 2019 13:27:49 +0100
Cc: Christer Holmberg <christer.holmberg=40ericsson.com@dmarc.ietf.org>, "core@ietf.org" <core@ietf.org>
X-Mao-Original-Outgoing-Id: 596723267.8263021-276c9c6b95232efd3b4ac4790143a693
Content-Transfer-Encoding: quoted-printable
Message-Id: <920091F4-EEA4-4407-AEBD-BE1C37DF199C@tzi.org>
References: <41889A1F-ACC3-458B-B57F-503A55D1D2A3@ericsson.com> <FB10E1B0-E52C-47F7-A0D9-87AE305E29F5@tzi.org> <09a7f0f318dc4f45a3cdd7791b28ecdd@bosch-si.com>
To: "Kraus Achim (INST/ECS4)" <Achim.Kraus@bosch-si.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/t9MpR5dFuxULD1N99oZer_9PZDc>
Subject: Re: [core] Retransmission of non-confirmable response message upon receiving request message retranmission?
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: Fri, 29 Nov 2019 12:27:54 -0000

> 
> Section 5 is then about the request/response 5.2.2, page 34 (top), "If a retransmitted request is received (perhaps because the original Acknowledgement was delayed), another Empty Acknowledgement is sent, and any response MUST be sent as a separate response."
> That seem to point to the same intention: retransmit the original messages (flight) as answer.
> 
> (It seems that my understanding differs from Carsten’s answer.)


   When the server chooses to use a separate response, it sends the
   Acknowledgement to the Confirmable request as an Empty message.  Once
   the server sends back an Empty Acknowledgement, it MUST NOT send back



Shelby, et al.               Standards Track                   [Page 33]
RFC 7252       The Constrained Application Protocol (CoAP)     June 2014


   the response in another Acknowledgement, even if the client
   retransmits another identical request.  If a retransmitted request is
   received (perhaps because the original Acknowledgement was delayed),
   another Empty Acknowledgement is sent, and any response MUST be sent
   as a separate response.

This means that once the server sends an empty ACK, it is committed to replying in a separate response; it can’t go back to piggybacking, even if a conveniently arriving retransmission of the request might suggest so.  It does not mean the separate response is automatically retransmitted (that has its own ACK cycle).

Grüße, Carsten