Re: how the QUIC skips the gaps for the lost SACK?

Ian Swett <ianswett@google.com> Mon, 31 July 2023 21:19 UTC

Return-Path: <ianswett@google.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 86C39C14CE4B for <quic@ietfa.amsl.com>; Mon, 31 Jul 2023 14:19:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.607
X-Spam-Level:
X-Spam-Status: No, score=-17.607 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 LrTbnC5Xpwoe for <quic@ietfa.amsl.com>; Mon, 31 Jul 2023 14:19:00 -0700 (PDT)
Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) (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 01D0CC14CF12 for <quic@ietf.org>; Mon, 31 Jul 2023 14:18:59 -0700 (PDT)
Received: by mail-ej1-x629.google.com with SMTP id a640c23a62f3a-99c10ba30afso342294066b.1 for <quic@ietf.org>; Mon, 31 Jul 2023 14:18:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1690838338; x=1691443138; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=p1LM0/Im39OweHbq79Pth9cUJCT7UrZKkDEKXp/mPVc=; b=DV7iaQv5P/FP5dGwCxt8A+YEF9sDZtP/96v4WqyxQggbo3znNxWAVXpZQfA55zTnXA laV87wIPhIrqZcNJ74+4i/GPw41jbKpiLsnKyOqUu4RcaIuk2MysjOTSoukhGeJcnorg u4QDJ4HM1w6+tpXeCd+nOmJ0MjBhPJfdTMYGMT/wJ9ZrqO0941Yg4WL8DLqam0h6TOOV zPqzw1ai363Q8+Oe99hzgmjEAUWcmu3YJsMnLwagVIPy9XcgW298osce1TeoWbwmdc/g 8wjXgh/fmP1r1w4wyqz6qdppBNEPpUhlDzOc2lHYJw6WtV/KjZPOEewxi4yAwF7Hrmoz /K2w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690838338; x=1691443138; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=p1LM0/Im39OweHbq79Pth9cUJCT7UrZKkDEKXp/mPVc=; b=Pv3GA7tTTDqbuhxZ3v7TmSB2ZdQ9FcBDlDn57K/6JukJqAH3Bvei5qEaFV+PkocWh2 buW/cf3Y9SiQzDyPaNYPCQyiRK9Tvk0MsvOUpZ3YjpEMV3rOXkjtyoq32/Nuh9pkizbn 6rZ+50Yq9gteNMwGzO4nfJS0E4NP3DiqDVo5epMASd2wb9T1RLFu/b5n3swnb6Xr0g9V bBqP2NbicqGRkUN3ORvwHbBnsxYHpsaGRN8kW8No5tfN2S8EjaT5Cnf5WYId5lQrR/jm AAzO6KD9Uy+i9ooElO0Qdj8rGMY12+XAHxOIZUF/IbkEyAHYCMZqiCaYybNEuFLoYU00 m6GA==
X-Gm-Message-State: ABy/qLa0hqzAQ78fHmK/Ifo6EApR6hmgZoJF6GMV87EzjKUWoA0x0e0N 6UgN6FlP97PTsFP8zihtntx/LJCym8P5+tmrjRS2+w==
X-Google-Smtp-Source: APBJJlF9JhbkA78eWjrAtyFvEJF8DW9t0kxUprxyCwv+YAmWIbc+57/ypfQu7eXm9KQxaFGwGBI1tl96xChLl2sBy/Y=
X-Received: by 2002:a17:906:478a:b0:99b:dd23:4f01 with SMTP id cw10-20020a170906478a00b0099bdd234f01mr1138358ejc.33.1690838338206; Mon, 31 Jul 2023 14:18:58 -0700 (PDT)
MIME-Version: 1.0
References: <CADvbK_eKC51aqLQ_ESR-C-HK76TTO9_HX2w4kUUEGOwvKXM8+Q@mail.gmail.com> <E11149EA-1CC8-4373-A0D8-E464DE55B4CA@huitema.net> <CADvbK_dM4Czju6S--oBPwV9QdmLteedn4jt-2N6s6G7gK1CD_A@mail.gmail.com>
In-Reply-To: <CADvbK_dM4Czju6S--oBPwV9QdmLteedn4jt-2N6s6G7gK1CD_A@mail.gmail.com>
From: Ian Swett <ianswett@google.com>
Date: Mon, 31 Jul 2023 17:18:47 -0400
Message-ID: <CAKcm_gMCZ_7e9cw4YRdwnOArfn7=ti6x_syWx_bnQkbrfMDq7Q@mail.gmail.com>
Subject: Re: how the QUIC skips the gaps for the lost SACK?
To: Xin Long <lucien.xin@gmail.com>
Cc: Christian Huitema <huitema@huitema.net>, lars@eggert.org, quic@ietf.org
Content-Type: multipart/alternative; boundary="000000000000864e360601cefa56"
Archived-At: <https://mailarchive.ietf.org/arch/msg/quic/5Ty_D6ahFxDcyPplBdvjbHFJ0-c>
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: Mon, 31 Jul 2023 21:19:04 -0000

RFC9000 has a fairly detailed description, FYI:
https://datatracker.ietf.org/doc/html/rfc9000#name-managing-ack-ranges

On Fri, Jun 30, 2023 at 3:18 PM Xin Long <lucien.xin@gmail.com> wrote:

> Got it now.
>
> In that way, I guess the SACK only needs to carry the gaps of the latest 1
> RTT.
>
> Thanks!
>
> On Fri, Jun 30, 2023 at 12:38 PM Christian Huitema <huitema@huitema.net>
> wrote:
> >
> > Packet number gaps are never filled in QUIC, whether the packet contains
> ACK, or Stream data, or some other frame. A packet number is only used
> once. If it is lost, the frames in it may be resent, in one or several
> packets, with different packet numbers.
> >
> > -- Christian Huitema
> >
> > > On Jun 30, 2023, at 9:23 AM, Xin Long <lucien.xin@gmail.com> wrote:
> > >
> > > Hi, Lars,
> > >
> > > In QUIC, as the packet containing only ACK frame also consumes a
> packet number,
> > > I have a question about how the peer manages its "ACK map" for making
> SACK and
> > > moves forward this gap?
> > >
> > > For example, the Client sends data to the Server, and the Server sends
> SACKs.
> > > If the SACK with packet number 21 from the Server gets lost, the
> Client will
> > > not get the number-21 SACK packet.
> > >
> > > Later when the Server sends data to the Client, there will always be a
> gap (21)
> > > when the Client sends SACK , as the Client can never know if the lost
> number-21
> > > packet is a stream DATA or SACK-only packet.
> > >
> > > To make it more clear:
> > >
> > >   Client                                 Server
> > >    ...                                    ...
> > > pkt 10 (DATA)                   --->
> > >                                <---    pkt 20 (ACK: [10..0])
> > > pkt 11 (DATA)                   --->
> > > pkt 12 (DATA)                   --->
> > > pkt 13 (DATA)                   --->
> > >                               !<---    pkt 21 (ACK: [12..11])
> > >                               !<---    pkt 22 (ACK: [13..11])
> > >                               !<---    pkt 23 (DATA)
> > >                               !<---    pkt 24 (DATA)
> > > pkt 14 (DATA)                   --->
> > >                                <---    pkt 25 (ACK: [14: 11])
> > >                                <---    pkt 26 (DATA)
> > > pkt 15 (ACK: [26..25] [20..0])  --->    ?
> > >
> > >
> > > pkt 21-24 from Server are all lost, what will Server do after receiving
> > > pkt 15 from Client, to tell Client that the lost pkt 21-22 are ACKs and
> > > the lost pkt 23-24 are DATA, and the gaps in ACK map in Client should
> > > keep 22-23 only?
> > >
> > > Thanks.
> > >
> >
>
>