Reliable Stream Resets: Requesting a Reset at a Specific Offset

Marten Seemann <martenseemann@gmail.com> Tue, 10 October 2023 05:38 UTC

Return-Path: <martenseemann@gmail.com>
X-Original-To: quic@ietfa.amsl.com
Delivered-To: quic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E7477C1AE9C6; Mon, 9 Oct 2023 22:38:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.104
X-Spam-Level:
X-Spam-Status: No, score=-2.104 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 TD_Be0_tvEaH; Mon, 9 Oct 2023 22:38:09 -0700 (PDT)
Received: from mail-ej1-x635.google.com (mail-ej1-x635.google.com [IPv6:2a00:1450:4864:20::635]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 64F49C1AE9C5; Mon, 9 Oct 2023 22:38:09 -0700 (PDT)
Received: by mail-ej1-x635.google.com with SMTP id a640c23a62f3a-9a645e54806so885120166b.0; Mon, 09 Oct 2023 22:38:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1696916287; x=1697521087; darn=ietf.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=a2L/dUg7idvjjh8fHma7Kyo3+XMSFLvvwKgaVKV2/0c=; b=dg+O0viPGx06ZOqYRopbQFFbLe6DawJV+dALHtqE+QrPTuBChdBdrCJ51qZMo0fOvp pWIuB2VLXLSOgAbdNa7QRfWCPu7Yi1+oUa3imMEskItTQjwKPxW9zyonNVH0ictHr8uD j24miTkPgHypJmZKS/vggA8T59oKfA5NcB/wQdGLBhN5r67HJ+Hfbsn09ZBcr7uT06y0 UcQPrap5G2WHExVcHJ7vkKbCCQRMt1swftLbpI9qit3SoVxtidFAYsb9sLzROGs+0E1k kF23dGsG9CoPzI9DIvsNCJKqDTj7I05mtCMjPr1xw/gsLRPHOcAlCg0W/aBmHph9oEV6 YKGQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696916287; x=1697521087; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=a2L/dUg7idvjjh8fHma7Kyo3+XMSFLvvwKgaVKV2/0c=; b=ea2TKJAXl11QBb7wIQkC1WrmWX0viK8wJSD/QMdZMV/piN5r7y0F0dvHRxw/jfSy3t +gCAN3LVnbpqtQZDJGsVboanrzt7EKsawgLWFkITIO+DhzJGYgW9Pmgt+nQCQipFDDVz ZIVDGigkb6y2zHY9S8YRHtPMXf6NJtSKhz+7yatm9Nk3wZ+q2boxIDCiXhMqnv9WVvyG bKsHhJofEdap7Z1dIuywSFvsAvosquu0DzOX/5pOatbqzsQyThnz0WfbzvCu9nK/8rVb mY23283oOFiJWXWhUW7FaKcyOt8KbrVi1UffNqX2lmct6XZAu7pYk4KYloi8FOOdo8pc kCYA==
X-Gm-Message-State: AOJu0Yyh2pLOZbn5DybuPo0E3JrjTIkEEwA6aTEDDkC6zz+jrMTZ5D2w wwa5NBJ0IjnW9Cx1iuTX98WZmo1WWy8IaKwCPm3mJG2tVrwmiLad
X-Google-Smtp-Source: AGHT+IHP46gfYulfhdq1l6fbgxXTz5qe+5gBkDzI/HqWByPcDB147YLQKda/U59ODvlSUwY97PbnSO1xEX2QuSecNS0=
X-Received: by 2002:a17:906:259:b0:9ad:c763:c3fd with SMTP id 25-20020a170906025900b009adc763c3fdmr15463800ejl.28.1696916286920; Mon, 09 Oct 2023 22:38:06 -0700 (PDT)
MIME-Version: 1.0
From: Marten Seemann <martenseemann@gmail.com>
Date: Tue, 10 Oct 2023 12:37:55 +0700
Message-ID: <CAOYVs2r9e5YnNW+pNrtB8UF-TFFKp5PvHV1ScfdcY40qAZ0atA@mail.gmail.com>
Subject: Reliable Stream Resets: Requesting a Reset at a Specific Offset
To: QUIC WG <quic@ietf.org>, avt@ietf.org
Content-Type: multipart/alternative; boundary="0000000000007eddb60607561cf6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/pWucz4c5U41avIWjThQcJCAPcro>
X-BeenThere: quic@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Main mailing list of the IETF QUIC working group <quic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/quic>, <mailto:quic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/quic/>
List-Post: <mailto:quic@ietf.org>
List-Help: <mailto:quic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/quic>, <mailto:quic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Oct 2023 05:38:14 -0000

The Reliable Reset draft introduces a CLOSE_STREAM frame that allows
resetting a stream at a specific offset, thereby guaranteeing the reliable
delivery of stream data up that offset.

At IETF 117, there was some discussion (mainly in AVT) about whether there
should be a method for an endpoint to abort reading at a specific offset.
This would allow an endpoint to communicate that it's only interested in
the first N bytes of the stream, and that it will discard all bytes beyond
N. This could be done by introducing a STOP_SENDING frame that carries an
extra field to carry the value N.

This might be useful if the stream is used to send a sequence of
(TLV-encoded) media frames, and the receiver knows the size of the frame
before actually receiving the entirety of it, or in cases where the
receiver possesses out-of-band knowledge about the frame size.

I created a PR to make this proposal more specific:
https://github.com/quicwg/reliable-stream-reset/pull/26. This PR is based
on Martin Thomson's ENOUGH draft (
https://datatracker.ietf.org/doc/draft-thomson-quic-enough/).

Is this mechanism actually useful enough to be included in the draft?
Implementing support for this frame seems quite easy, but it would be
helpful to learn more about use cases it enables first.