[core] Tsvart last call review of draft-ietf-core-too-many-reqs-04

Jana Iyengar <jri.ietf@gmail.com> Fri, 19 October 2018 00:56 UTC

Return-Path: <jri.ietf@gmail.com>
X-Original-To: core@ietf.org
Delivered-To: core@ietfa.amsl.com
Received: from ietfa.amsl.com (localhost [IPv6:::1]) by ietfa.amsl.com (Postfix) with ESMTP id D1770130ED1; Thu, 18 Oct 2018 17:56:50 -0700 (PDT)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
From: Jana Iyengar <jri.ietf@gmail.com>
To: <tsv-art@ietf.org>
Cc: draft-ietf-core-too-many-reqs.all@ietf.org, ietf@ietf.org, core@ietf.org
X-Test-IDTracker: no
X-IETF-IDTracker: 6.87.0
Auto-Submitted: auto-generated
Precedence: bulk
Message-ID: <153991061080.22113.5687839428927498383@ietfa.amsl.com>
Date: Thu, 18 Oct 2018 17:56:50 -0700
Archived-At: <https://mailarchive.ietf.org/arch/msg/core/R4HokG7OjkFb0wSjYP0DAU682SU>
Subject: [core] Tsvart last call review of draft-ietf-core-too-many-reqs-04
X-BeenThere: core@ietf.org
X-Mailman-Version: 2.1.29
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, 19 Oct 2018 00:56:58 -0000

Reviewer: Jana Iyengar
Review result: Ready with Nits

I've reviewed this document as part of the transport area review team's ongoing
effort to review key IETF documents. These comments were written primarily for
the benefit of the transport area directors. Document editors and WG chairs
should treat these comments just like any other last call comments.

This is a simple document that defines a new response code for CoAP servers to
use when under overload. The response code ("4.29 Too Many Requests") is used
as a flow control signal to indicate to a client that it needs to stop sending
more "similar" requests. The amount of time that the client needs to back off
is encoded in the response.

This is a straightforward document and I see no major issues, but I have a
couple of suggestions that might help implementers.

1. There should be text suggesting what a server MAY do if the client doesn't
respect the backoff period indicated in the response. For instance, a server
MAY drop all incoming requests from a client for an extended period of time if
the client sends a request without waiting for the duration of the backoff
period (or some such).

2. There should be some text suggesting that the server does not have to (and
probably should not) respond to every incoming request during overload with
this response. Even when the server wants to ask clients to back off, it does
not need to do that on every incoming request from a client. For instance, a
server can choose to respond to each client once in every estimated round-trip 
time.

3. Is the expectation that the client waits for the back off time starting from
when the response is received? That seems like the most obvious way to do it,
but it might be useful to clarify precisely when the client's backoff period
starts.