Re: [tcpm] Review of draft-ietf-tcpm-rack-07
Yuchung Cheng <ycheng@google.com> Mon, 11 May 2020 17:22 UTC
Return-Path: <ycheng@google.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 402563A0B42 for <tcpm@ietfa.amsl.com>; Mon, 11 May 2020 10:22:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.6
X-Spam-Level:
X-Spam-Status: No, score=-17.6 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IFaZh_8QsL5V for <tcpm@ietfa.amsl.com>; Mon, 11 May 2020 10:21:58 -0700 (PDT)
Received: from mail-ua1-x942.google.com (mail-ua1-x942.google.com [IPv6:2607:f8b0:4864:20::942]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B7EDC3A0B39 for <tcpm@ietf.org>; Mon, 11 May 2020 10:21:57 -0700 (PDT)
Received: by mail-ua1-x942.google.com with SMTP id i5so3697937uaq.1 for <tcpm@ietf.org>; Mon, 11 May 2020 10:21:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=rLod9CCJobSFfSag+wEs6+5C694fzSiS5ScSXhPuYCw=; b=DTi2TmjO2Z1fV8IVSOZOdnBzCW8BL09dzdxllsmTtAkQ8t0H4QNGiuvwoeUEWWGgmG IYuUI7o6AF7cN+Ht1PoBgYhhxnL42FUswe+1o8D3oDiTPuss6U9U6pnqw29YWY1UWaWy MRTTEgQqOMysulthqFZun5gM5sipq87ETy5HKCh4FPdxjZAgJ31uaaJZictY8eENp6ee 0CRh3clR7TLq6HmvgGuoTMTO6Kfa5OM3w85APM9+vKQDF/36O2hR+u58/SZCYRwAOujI e+ClHvsGdZEaKc+8vqePOv+Vf69hg7eCD8SGk9otU7AyYefkJv97lfh3/K9gzkADGyEL K8vw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=rLod9CCJobSFfSag+wEs6+5C694fzSiS5ScSXhPuYCw=; b=JjDzU36fXZ90fGwuS511Gv738JnkseeOI0e14Dew+Iohvh3SaI6btcVXdzhY6g2JSM RdAbELvWlUoVJ9R7qrszDcPEqEvFfv6vI0AzG3HDSW741IwMSr/Lu2KUcKIF5G62Mtey 8CYQLTbyG76gM/MbKMylsx1o9362zDtWq4l3T3i4M7JFZjs8Afj8zllcFOIa29NbXXx6 YvPXwFkSCT5D0vGRh86jWVtXlDCRdSM+OiD+Tx93U64jGrt+4MhsZ1N31IswxUixtxqZ DgzBIiaAFn3jLv7slUKpgOMmtf1klFsORp4JT90Prz27x98GFiqaekPBqf4K69hKN4VG RlCA==
X-Gm-Message-State: AOAM531NqPMRIij3ZaiQw9/s6Hys7FufKZ3yDcWUvBVLvDYjQuX9JIKx +RWijh1yNG8FIsoUUcGg2SaX67pyHZokap71D6ncUA==
X-Google-Smtp-Source: ABdhPJz6aYv/BWfqsrkQ2HS0rXWnZv85WUwfN4RZn8k68BD2szNNjOUSAeIlo059KTcpyPREwEt1EfKYfqqtzwC8DIk=
X-Received: by 2002:ab0:314a:: with SMTP id e10mr224901uam.85.1589217715957; Mon, 11 May 2020 10:21:55 -0700 (PDT)
MIME-Version: 1.0
References: <alpine.DEB.2.20.2002141414420.25645@whs-18.cs.helsinki.fi> <CAK6E8=dZN5PnCt7QFoyGJUnSoCcg0XUKxyZCbJAM_2tVN7A8wQ@mail.gmail.com> <alpine.DEB.2.20.2004062342530.14114@whs-18.cs.helsinki.fi> <CAK6E8=eVjMACZSkUWmY9Z+fiid6cdfG310y4O8G32cEeXFAhFQ@mail.gmail.com> <alpine.DEB.2.20.2005091114100.17711@whs-18.cs.helsinki.fi> <CAK6E8=dAvskPOg6-eNPUNmiUojcs81k+Fvu6cAfVgw8C_bOQbg@mail.gmail.com> <alpine.DEB.2.20.2005111949370.14773@whs-18.cs.helsinki.fi>
In-Reply-To: <alpine.DEB.2.20.2005111949370.14773@whs-18.cs.helsinki.fi>
From: Yuchung Cheng <ycheng@google.com>
Date: Mon, 11 May 2020 10:21:19 -0700
Message-ID: <CAK6E8=e1NjWhd=EaKGGtrjnu=3XmCf6+F_o6JGMRm3kipo0tLA@mail.gmail.com>
To: Ilpo Järvinen <ilpo.jarvinen@cs.helsinki.fi>
Cc: "tcpm@ietf.org Extensions" <tcpm@ietf.org>, Neal Cardwell <ncardwell@google.com>, Nandita Dukkipati <nanditad@google.com>, Priyaranjan Jha <priyarjha@google.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/8VmyjBOTvvP4ieFjdCW--UM4Jus>
Subject: Re: [tcpm] Review of draft-ietf-tcpm-rack-07
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tcpm>, <mailto:tcpm-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm/>
List-Post: <mailto:tcpm@ietf.org>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tcpm>, <mailto:tcpm-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 11 May 2020 17:22:24 -0000
On Mon, May 11, 2020 at 9:53 AM Ilpo Järvinen <ilpo.jarvinen@cs.helsinki.fi> wrote: > > On Mon, 11 May 2020, Yuchung Cheng wrote: > > > On Sat, May 9, 2020 at 1:30 AM Ilpo Järvinen > > <ilpo.jarvinen@cs.helsinki.fi> wrote: > > > > > > On Fri, 8 May 2020, Yuchung Cheng wrote: > > > > > > > On Mon, Apr 6, 2020 at 2:01 PM Ilpo Järvinen > > > > <ilpo.jarvinen@cs.helsinki.fi> wrote: > > > > > > > > > > Hi Yuchung, > > > > > > > > > > Certainly improved on many things, however, I'm surprised that the lost > > > > > rexmit comment was not addressed at all. Aren't the rexmit losses > > > > > supposed to be detected by RACK or have I misunderstood something? > > > > > > > > > > I don't understand how lost rexmits are detected by the algorithms in > > > > > the draft. I think the algorithms are either flawed or lack something > > > > > (mainly RACK_detect_loss is relevant I think). My original comment > > > > > from below. > > > > > > > > > > Is RACK_detect_loss() supposed to detect also lost rexmits? How? > > > > > The rexmit code itself is not in the draft so it's hard to evaluate > > > > > how the Packet booleans are supposed to work in the first place. > > > > > I'm not saying the rexmit code should be included but currently it > > > > > surely looks like any rexmitted packet just remains .lost = TRUE > > > > > and .retransmitted = TRUE state until RTO? > > > > > > > > Sorry to miss this point earlier -- RACK definitely detects > > > > lost-retransmits, but the current algorithm does not properly define > > > > some variables. Here is how I propose to address these by adding > > > > these: > > > > > > Np and I was pleased to note already during the interim presentation > > > that you'd addressed this. > > > > > > > Per-packet variables > > > > > > > > > > > > Theses variables indicate the status of the most recent transmission > > > > of a data packet: > > > > “Packet.lost” is true if the most recent (re)transmission of > > > > the Packet has been considered lost and needs to be retransmitted. > > > > False otherwise. > > > > “Packet.retransmitted” is tue if its sequence numbers were > > > > retransmitted in the most recent transmission. False otherwise. > > > > “Packet.xmit_ts” is the time of the last transmission of a > > > > data packet, including retransmissions, if any. The sender needs to > > > > record the transmission time for each packet sent and not yet > > > > acknowledged. The time MUST be stored at millisecond granularity or > > > > finer. > > > > > > > > > > > > Transmitting a data packet > > > > Upon transmitting a new packet or retransmitting an old packet, record > > > > the time in Packet.xmit_ts. > > > > > > > > --- src > > > > > > > > RACK_transmit_data(Packet): > > > > > > > > Packet.time_ts = Now() > > > > > > > > Packet.lost = FALSE > > > > > > > > > > > > RACK_retransmit_data(Packet) > > > > > > > > Packet.retransmitted = TRUE > > > > RACK_transmit_data(Packet) > > > > > > > > --- > > > > > > > > When a packet is retransmitted again, its Packet.lost is reset and > > > > transmission timestamp is renewed. Therefore, when its transmission > > > > time falls out of the RACK reordering window in RACK_detect_loss(), it > > > > will be marked as lost (again). > > > > > > > > > > > > > > > > > > > > > > > > > > Also my timeout "some" vs "all" internal inconsistency comment relates to > > > > > this same algorithm: > > > > > > > > > > "For timely loss detection, the sender MAY > > > > > install a "reordering settling" timer set to fire at the earliest > > > > > moment at which it is safe to conclude that some packet is lost. The > > > > > earliest moment is the time it takes to expire the reordering window > > > > > of the earliest unacked packet in flight." > > > > > vs > > > > > RACK_detect_loss(): > > > > > ... > > > > > timeout = max(remaining, timeout) > > > > > Which way it is, "some" or "all"? The use of max() in RACK_detect_loss() > > > > > seems to indicate that the timeout will be set according to the longest > > > > > time, that is, the latest moment rather than earliest moments. Which > > > > > is the intented behavior here? (I can there might be merits in both > > > > > approaches). > > > > > > > > Comment 1.2: good catch. We changed to: 'For timely loss detection, > > > > the sender is RECOMMENDED to install a "reordering settling" timer. > > > > The timer expires at the earliest moment when it is safe to conclude > > > > that all the unacknowledged packets within the reordering window are > > > > lost.' > > > > > > I was under impression it's likely what you intented to propose right > > > from the start. In that case this change seems not enough to address my > > > concern, the algorithm seems to do exactly opposite on > > > timeout = max(remaining, timeout) > > > line, no? That is, if there is a moment further away in the future, > > > the line selects it rather than "the earliest moment". This inconsistency > > > between the text and algorithm is why I brought this up and I think the > > > algorithm requires some small tweak to remove the inconsistency here. > > > > The diff is not the "earliest moment" wording. it was "the earliest > > moment of some packet" but it is now "the earliest moment of all > > unacked packets" > > > > Here is the old and proposed new text > > > > ...; but this > > risks a timeout (RTO) if no more ACKs come back (e.g, due to losses > > or application limit). For timely loss detection, the sender MAY > > install a "reordering settling" timer set to fire at the earliest > > moment at which it is safe to conclude that some packet is lost. The > > earliest moment is the time it takes to expire the reordering window > > of the earliest unacked packet in flight. > > > > new text: > > > > ... but this risks a timeout (RTO) if no more ACKs come back (e.g, due > > to losses or application-limited transmissions). For timely loss > > detection, the sender is RECOMMENDED to install a reordering settling > > timer. This timer expires at the earliest moment when it is safe to > > conclude that all the unacknowledged packets within the reordering > > window are lost. > > > > so the keyword all would make the description match the pseudo code. > > Ah, you're of course right. It was sloppy reading (and too strong > preconceived idea of what the fix should look like) from my side. > So the correction is fine. My apologies for the noise. No problem. We really appreciate your thorough review! > > -- > i. > > > > > > > > > > > > > -- > > > i. > > > > > > > > > > > > > > > > > > > > > > > > > > Then there are some other comments I made which seem also unaddressed but > > > > > I'll not duplicate them all here. > > > > > > > > > > > > > > > -- > > > > > i. > > > > > > > > > > > > > > > On Mon, 9 Mar 2020, Yuchung Cheng wrote: > > > > > > > > > > > Hi Ilpo, > > > > > > Thanks for a detailed review and the great suggestions. Here's all the edits > > > > > > we made. > > > > > > https://www.ietf.org/rfcdiff?url2=draft-ietf-tcpm-rack-08 > > > > > > > > > > > > We defined the missing terms and addressed the nits, removed the less > > > > > > critical parts like recommending PRR, and edited TLP algorithms (sections > > > > > > 7.4 to 7.6). I hope you find it's better now and would be happy to hear any > > > > > > improvements you'd like to make. > > > > > > > > > > > > Yuchung > > > > > > > > > > > > On Fri, Feb 14, 2020 at 4:22 AM Ilpo Järvinen <ilpo.jarvinen@cs.helsinki.fi> > > > > > > wrote: > > > > > > In general, I find the draft quite good shape already, it's > > > > > > quite easy > > > > > > to read and follow (that is, except the TLP sections that are > > > > > > specifically > > > > > > mentioned below). > > > > > > > > > > > > Here's the list of issues I came across: > > > > > > > > > > > > Sect 6.1 > > > > > > > > > > > > "RACK.pkts_sacked" lacks the empty line separator. > > > > > > > > > > > > Sect 7.2 > > > > > > > > > > > > "This > > > > > > heuristic would fail to update RACK stats if the packet is > > > > > > spuriously > > > > > > retransmitted because of a recent minimum RTT decrease (e.g. > > > > > > path > > > > > > change)." > > > > > > This defies my logic as RTT decrease should not result in > > > > > > spurious > > > > > > retransmissions but help to avoid them. > > > > > > > > > > > > > > > > > > "Note that > > > > > > extensions that require additional TCP features (e.g. DSACK) > > > > > > would > > > > > > work if the feature functions simply return false." > > > > > > Please rephrase this. I suspect you meant that if some functions > > > > > > relate > > > > > > to TCP features that are not available, the given code still > > > > > > works > > > > > > as long as the functions related to such features return false > > > > > > when > > > > > > the TCP feature is not available but that surely isn't what the > > > > > > sentence currently says. > > > > > > > > > > > > Sect 7.2 Step 5 > > > > > > > > > > > > "For timely loss detection, the sender MAY > > > > > > install a "reordering settling" timer set to fire at the > > > > > > earliest > > > > > > moment at which it is safe to conclude that some packet is > > > > > > lost. The > > > > > > earliest moment is the time it takes to expire the reordering > > > > > > window > > > > > > of the earliest unacked packet in flight." > > > > > > vs > > > > > > RACK_detect_loss(): > > > > > > ... > > > > > > timeout = max(remaining, timeout) > > > > > > Which way it is, "some" or "all"? The use of max() in > > > > > > RACK_detect_lost() > > > > > > seems to indicate that the timeout will be set according to the > > > > > > longest > > > > > > time, that is, the latest moment rather than earliest moments. > > > > > > Which > > > > > > is the intented behavior here? (I can there might be merits in > > > > > > both > > > > > > approaches). > > > > > > > > > > > > > > > > > > In general, I didn't like the presentation order here as this > > > > > > form looks > > > > > > the most obvious to me: > > > > > > now >= Packet.xmit_ts + RACK.reo_wnd + (RACK.ack_ts - > > > > > > RACK.xmit_ts) > > > > > > ...and I find the derivation of it just complicating things > > > > > > rather > > > > > > than helping but that's perhaps just my opinion. > > > > > > > > > > > > > > > > > > "It is also useful when the timestamp clock granularity is > > > > > > close to > > > > > > or longer than the actual round trip time." > > > > > > Given that some things based on timestamps will obviously stop > > > > > > working > > > > > > if the clock is slower than one tick per RTT I found this > > > > > > fragment a bit > > > > > > odd. RFC 7323 says "the clock SHOULD tick at least once per > > > > > > window's worth > > > > > > of data". I can understand though that a host might find clock > > > > > > tick > > > > > > granularity challenging due to extensive RTT range but on the > > > > > > same > > > > > > I'd not want such a "too slow clock" behavior to be endorsed as > > > > > > if > > > > > > it would be just normal. That is, I'm not against RACK handling > > > > > > also this case nicely but it would be nice to somehow downplay > > > > > > the > > > > > > normalness tone in it with something along the lines of "This > > > > > > check is > > > > > > also useful if the recommended one tick per RTT cannot be > > > > > > achieved due > > > > > > to timestamp clock granularity." > > > > > > > > > > > > Is RACK_detect_lost() supposed to detect also lost rexmits? How? > > > > > > The rexmit code itself is not in the draft so it's hard to > > > > > > evaluate > > > > > > how the Packet booleans are supposed to work in the first place. > > > > > > I'm not saying the rexmit code should be included but currently > > > > > > it > > > > > > surely looks like any rexmitted packet just remains .lost = TRUE > > > > > > and > > > > > > .retransmitted = TRUE state until RTO? > > > > > > > > > > > > > > > > > > Sect 7.4 > > > > > > > > > > > > "PTO" just appears out of nowhere (and is not even written open > > > > > > in the first instance). > > > > > > > > > > > > "2. ... in step (2) of the algorithm." > > > > > > "step (2)" is forward-refing, it would naturally refer back to > > > > > > "Step 2: Update RACK stats" so it makes very little sense as is. > > > > > > > > > > > > Sect 7.5 > > > > > > > > > > > > Separator missing for PTO: and TLPRxtOut: > > > > > > > > > > > > Sect 7.5.1 > > > > > > > > > > > > "3. Upon receiving a SACK that selectively acknowledges data > > > > > > that was > > > > > > last sent before the segment with SEG.SEQ=SND.UNA was > > > > > > last > > > > > > (re)transmitted" > > > > > > This is hard to understand, perhaps rephrase it somehow? > > > > > > > > > > > > > > > > > > "But choosing PTO to be > > > > > > exactly an SRTT is likely to generate spurious probes given > > > > > > that > > > > > > network delay variance and even end-system timings can easily > > > > > > push an > > > > > > ACK to be above an SRTT. We chose PTO to be the next > > > > > > integral > > > > > > multiple of SRTT. > > > > > > > > > > > > Similarly, network delay variations and end-system processing > > > > > > latencies and timer granularities can easily delay ACKs > > > > > > beyond > > > > > > 2*SRTT, so senders SHOULD add at least 2ms to a computed PTO > > > > > > value > > > > > > (and MAY add more if the sending host OS timer granularity is > > > > > > more > > > > > > coarse than 1ms)." > > > > > > Does this later paragraph depend on some assumptions (such as > > > > > > very > > > > > > low RTT?) as I don't otherwise understand why you say what you > > > > > > say > > > > > > in the given order. First you said x & y can push ACK over SRTT > > > > > > so > > > > > > we pick 2* but then you say the same things can push over 2*SRTT > > > > > > too? > > > > > > > > > > > > WCDelAckT to terminology? > > > > > > > > > > > > Sect 7.5.2 > > > > > > > > > > > > TLP_send_probe(): > > > > > > - Perhaps set TLPRxtOut somewhere? > > > > > > - Add "Arm RTO" to the end? > > > > > > > > > > > > "In the case where > > > > > > there is only one original outstanding segment of data (N=1), > > > > > > the > > > > > > same logic (trivially) applies: an ACK for a single > > > > > > outstanding > > > > > > segment tells the sender the N-1=0 segments preceding that > > > > > > segment > > > > > > were lost. Furthermore, whether there are N>1 or N=1 > > > > > > outstanding > > > > > > segments," > > > > > > If this distinction is useful to make at all, maybe just simply > > > > > > say: > > > > > > "Applies also in case N=1." > > > > > > > > > > > > Sect 7.6 > > > > > > > > > > > > "SND.NXT at the time the episode started." > > > > > > Isn't this TLPHighRxt, why not use it here? > > > > > > > > > > > > Sect 7.6.2 > > > > > > > > > > > > "Upon sending a TLP probe that is a retransmission, the sender > > > > > > sets > > > > > > TLPRxtOut to true and TLPHighRxt to SND.NXT." > > > > > > This should appear in TLP_send_probe(). > > > > > > > > > > > > "Detecting recoveries accomplished by loss probes" > > > > > > Did you want to start another section here? > > > > > > > > > > > > "Step 1: Track ACKs ..." until what point? (It's told on later > > > > > > but > > > > > > this question comes into mind when reading the draft in order). > > > > > > > > > > > > > > > > > > Sect 7.4 - 7.6.2 > > > > > > > > > > > > In general, this particular part of the draft seems to require > > > > > > some > > > > > > further editing. After reading it all through, I feel most bits > > > > > > are > > > > > > present but the text is very hard to follow. I think the > > > > > > presentation > > > > > > order needs significant work. There are random bits here and > > > > > > there > > > > > > that are explained only later. Also, algorithm lacks some parts > > > > > > discussed only in the text but variable like items should > > > > > > definitely > > > > > > be included to the algorithm. > > > > > > > > > > > > > > > > > > Sect 8.4 > > > > > > > > > > > > "RACK is compatible with and does not interfere with the the > > > > > > standard > > > > > > RTO [RFC6298], RTO-restart [RFC7765], F-RTO [RFC5682] and > > > > > > Eifel > > > > > > algorithms [RFC3522]. ... > > > > > > It neither changes the RTO timer calculation nor detects > > > > > > spurious > > > > > > timeouts." > > > > > > For F-RTO, also send order is significant. > > > > > > > > > > > > Sect 8.5 > > > > > > > > > > > > SHOULDs PRR (and also placed to normative references) that is > > > > > > only > > > > > > experimental and RACK aims to standards track. I feel that PRR > > > > > > is > > > > > > disjoint enough anyway, which I think was also your intention > > > > > > when > > > > > > maintaining the decoupling CC and RACK, that it's bit odd to > > > > > > take > > > > > > this strong stance on PRR (indepedent of the stds track vs > > > > > > experimental thing). > > > > > > > > > > > > "due to congestion window validation." > > > > > > Does this refer to CWV as in RFC? Or some other mechanism in > > > > > > which > > > > > > case you shouldn't use the same term here. > > > > > > > > > > > > I find the described scenario somewhat unconvincing becase > > > > > > the description ends with: > > > > > > "... > > > > > > The ending congestion window after recovery also impacts > > > > > > subsequent data transfer." > > > > > > ...First there wasn't enough data to fill cwnd of 20 packets and > > > > > > then suddenly transferring that non-existing data is impacted. > > > > > > > > > > > > References > > > > > > > > > > > > QUIC-LR is very old ref and even the filename has changed a few > > > > > > times from draft-tsvwg-... > > > > > > > > > > > > > > > > > > Nits > > > > > > > > > > > > "runt" made the sentence incomprehendable for me, I had to look > > > > > > up > > > > > > that word (and only second source was descriptive enough that I > > > > > > think I could understand the meaning, and I'd guessed wrong > > > > > > because > > > > > > I thought there was some special intent here because of the > > > > > > quotes). > > > > > > > > > > > > is dicussed -> is discussed > > > > > > RACT.RTT -> RACK.rtt > > > > > > First "TSO" -> TCP Segmentation Offload (TSO) > > > > > > grainularity -> granularity > > > > > > higher-sequenc -> higher-sequence > > > > > > > > > > > > > > > > > > -- > > > > > > i. > > > > > > > > > > > > > > > > > > > > > > > >
- [tcpm] Review of draft-ietf-tcpm-rack-07 Ilpo Järvinen
- Re: [tcpm] Review of draft-ietf-tcpm-rack-07 Yuchung Cheng
- Re: [tcpm] Review of draft-ietf-tcpm-rack-07 Ilpo Järvinen
- Re: [tcpm] Review of draft-ietf-tcpm-rack-07 Yuchung Cheng
- Re: [tcpm] Review of draft-ietf-tcpm-rack-07 Ilpo Järvinen
- Re: [tcpm] Review of draft-ietf-tcpm-rack-07 Yuchung Cheng
- Re: [tcpm] Review of draft-ietf-tcpm-rack-07 Ilpo Järvinen
- Re: [tcpm] Review of draft-ietf-tcpm-rack-07 Yuchung Cheng