Re: [tcpm] WGLC for draft-ietf-tcpm-accurate-ecn-23

Bob Briscoe <ietf@bobbriscoe.net> Mon, 27 March 2023 20:43 UTC

Return-Path: <ietf@bobbriscoe.net>
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 22232C169501 for <tcpm@ietfa.amsl.com>; Mon, 27 Mar 2023 13:43:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.096
X-Spam-Level:
X-Spam-Status: No, score=-2.096 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, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=bobbriscoe.net
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 DTh8mNhf_kSM for <tcpm@ietfa.amsl.com>; Mon, 27 Mar 2023 13:43:21 -0700 (PDT)
Received: from mail-ssdrsserver2.hostinginterface.eu (mail-ssdrsserver2.hostinginterface.eu [185.185.85.90]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 97F81C1522BE for <tcpm@ietf.org>; Mon, 27 Mar 2023 13:43:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=bobbriscoe.net; s=default; h=In-Reply-To:Cc:References:To:From:Subject: MIME-Version:Date:Message-ID:Content-Type:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=gaZ4p8d51/cl2iYHyTwZPW0EQJuwDeJZjdcJpxCdKjE=; b=mhFn4L9+j6SdjncMduCcOMOQfm LJk200Itbf7apMr2JjIf1olJj8VdH2YrwkWRFWG42+rycbuD6N8dT4/plu3gTmIA7NuAdzhDtxwzj x7RcZufEB4ABOTRJU+soprhSE4LJK0BeOUGYgFxuDYKXEATeoZRJY/Xc1X8r1WmD/6R1buVyn1xNO SJ9mXHBHVtDI1MXfFtkPw1NiUq22iY5lfqd0AMP6XVI//FIsCDGuandFvuTqPl39AzENifoSZz/zb s/x1s+FvOhCUquvgp4+zkHCOaGNJeOykS4p8yYVANatFSqJ4oIgmlCzQKzXeljF+XjajsKhXA7DLS T7fVpFZQ==;
Received: from 67.153.238.178.in-addr.arpa ([178.238.153.67]:34056 helo=[192.168.1.8]) by ssdrsserver2.hostinginterface.eu with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from <ietf@bobbriscoe.net>) id 1pgtgV-0000I3-2H; Mon, 27 Mar 2023 21:43:18 +0100
Content-Type: multipart/alternative; boundary="------------9fibzubU46LPRvMZknu63ePA"
Message-ID: <550f9841-1b98-58b0-8a8f-8ef3af261d5f@bobbriscoe.net>
Date: Mon, 27 Mar 2023 21:43:16 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0
Content-Language: en-GB
From: Bob Briscoe <ietf@bobbriscoe.net>
To: Markku Kojo <kojo=40cs.helsinki.fi@dmarc.ietf.org>
References: <7EC77745-BA44-4CA5-8B14-9430988B7510@fh-muenster.de> <alpine.DEB.2.21.2303260458560.4394@hp8x-60.cs.helsinki.fi> <4c83f9ed-4719-92ec-4ac1-a829e6f41e21@bobbriscoe.net>
Cc: tcpm <tcpm@ietf.org>, Richard Scheffenegger <rscheff@gmx.at>
In-Reply-To: <4c83f9ed-4719-92ec-4ac1-a829e6f41e21@bobbriscoe.net>
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - ssdrsserver2.hostinginterface.eu
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - bobbriscoe.net
X-Get-Message-Sender-Via: ssdrsserver2.hostinginterface.eu: authenticated_id: in@bobbriscoe.net
X-Authenticated-Sender: ssdrsserver2.hostinginterface.eu: in@bobbriscoe.net
X-Source:
X-Source-Args:
X-Source-Dir:
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/mqcMhlFrdNfwKf4Pii52-Kgu4mw>
Subject: Re: [tcpm] WGLC for draft-ietf-tcpm-accurate-ecn-23
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.39
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, 27 Mar 2023 20:43:26 -0000

Markku,

I have now written up the edits I proposed in order to address your 
review comments.
Offlist I've just sent you an rfcdiff of just the changes for you. I've 
addressed everyone's reviews now, but I'll post it in a few days to give 
you time to get back to us as soon as you can.
The list can also follow the github linked from the datatracker.

I've also added a couple of extra explanations below about what we've 
changed regarding "ACKs of ACKs" and "Updates 3168" (see [BB2] inline).


On 26/03/2023 17:28, Bob Briscoe wrote:
> Markku, Thank you for the review. Pls see [BB] inline...
>
> On 26/03/2023 08:52, Markku Kojo wrote:
>> Dear all,
>>
>> I have reviewed the doc. I didn't pass through all the details that I 
>> believe are in good shape. The doc reads well and is very thorough in 
>> most part. It is useful and good to have it published.
>>
>> However, there are a few of issues I am concerned about:
>>
>> 1. IANA considerations on allocating/using ECN flags.
>>
>> The design of the ECN negotiation and particularly how it takes into 
>> account potential any future ECN alternatives is the correct approach 
>> and very much appreciated.
>>
>> However, it is not made explicit in the draft. Instead, the draft 
>> hides this important information in the appendix B and discusses 
>> elsewhere in the draft, including the Sec 6 on IANA consideration, on 
>> the allocation of the AE flag in such a way that it is easily 
>> intrepeted as if the AC flag is solely for AccECN use (now and in the 
>> future).
>
> [BB] 1.1) The AccECN draft is not intended to give guidance on how to 
> design a future protocol that uses header flags for capability 
> negotiation.
> Indeed, the WG does not necessarily want to encourage consumption of 
> header flags for new capability negotiations. The case for AccECN's 
> use of header flags is very specific to AccECN and ECN's history.
>
> The AccECN draft describes how an AccECN implementation works, which 
> combinations of flags it uses, and justifies the design by explaining 
> how it supports backward compatibility.
> For information only, it provides an appendix that outlines /some/ 
> other combinations that are still available. But there is absolutely 
> no requirement for future uses of the TCP header to think of the set 
> of 3 flags used by AccECN as the only way of combining TCP flags in 
> future. Future protocol designers can use any cracks left between the 
> uses of AccECN and other protocols, if necessary in combination with 
> any other flag, or field, or whatever (e.g. the URG flag is a 
> possibility, as mentioned in the appendix).
>
>>
>> I'd suggest that the draft and the IANA assignment makes it explicit 
>> what the design actually does: it allocates (reassigns) the bit 7 of 
>> the TCP header flags to extend the use of the existing ECE and CWR 
>> flags in a backwards compatible way. That is, it specifies a 
>> three-bit TCP ECN Field out of the AE, ECE, and CWR flags and assigns 
>> the codepoint 111 to AccECN for negotiating ECN Capability in its 
>> initial SYN of 3whs. For backwards compability codepoint 011 is kept 
>> for negotiating Classic ECN in the initial SYN (and 000 for Not-ECN 
>> Capability) . After the initial SYN, the use of the TCP ECN Field 
>> depends solely on the variant of ECN Capability negotiated, i.e., the 
>> TCP ECN Field is overloaded to complete the 3whs as well as to 
>> provide ECN feedback during the TCP connection.
>
> [BB] 1.2) We are in the end-game wrt available bit combinations in 
> TCP. Even your multiple lines of text above are nowhere near enough to 
> describe AccECN's bit allocations. Even my longer description at Note 
> 1 below is only a summary. The complexity is a consequence of very 
> scarce header space combined with trying to side-step middlebox 
> tampering with most available combinations.
>
> Essentially, AccECN uses some combinations (not really codepoints) out 
> of the five flags: AE, CWR, ECE, ACK & SYN. And it also depends on 
> which combination of these five flags were used earlier in the 
> handshake sequence. See {Note 1}  below for details.
>
> The draft is intended primarily to be useful to implementers of 
> AccECN, not future protocol designers. To find the bit-space to 
> implement AccECN, we had to scratch around, reading the small print of 
> multiple RFCs as well as papers about actual behaviours and bugs (and 
> do our own measurements). We can't do this job for future protocol 
> designers, because only the future designer can tailor their specific 
> needs around the bit combinations that will be available in the future.
>
>> Consequently, the IANA assignment is best modified to reflect this by 
>> introducing a three-bit TCP ECN Field and allocating codepoints 000 
>> (non-ECN-setup SYN), 011 (RFC 3168 ECN-setup SYN), 111 (AccECN 
>> ECN-setup SYN) for the ECN-Capability negotiation in the initial SYN 
>> segment.
>
> [BB] 1.3) Again, I don't think the WG wants to recommend that new 
> behaviours use header flags like ECN did. And, as explained below, 
> there is no reason to confine future protocol designers to a 3 bit 
> field (or 5 header flags), for just the first handshake packet. They 
> will have to think through the whole handshake before they have a design.
>
> IOW, future inventive tricks to find spare bits do not need to copy 
> the most recent inventive trick.
>
>> I'd also suggest renaming the AE flag to EE (Extended ECN) to better 
>> cover also any ECN alternative beyond Classic ECN and not to be tied 
>> by name to AccECN only.
>
> [BB] 1.4) There is no reason to pre-judge that this flag has to be 
> used only for ECN in future.
> It is named for what it is used for now. Any future use of it can 
> rename it to whatever is appropriate at that future time.
> (Also the chairs closed the debate about naming this flag years ago).
>
>>
>> IMHO, this would make it all much clearer for everyone as well as 
>> easier to allocate new codepoints (by IANA) to any future ECN variant 
>> negotiation.
>
> [BB] 1.5) The TCP header bits are not plentiful enough to delegate 
> their assignment to IANA in any way such that the constraints would be 
> describable to IANA in advance.
>
> {Note 1}: I posted a full analysis of used and available bits to the 
> list many years ago during a relevant list discussion. The chart is 
> still available here:
> https://bobbriscoe.net/projects/latency/ecn-modes.pdf
> Here's a summary description of the allocation of combinations of 5 
> TCP header bits to AccECN:
>
>   * When (ACK,SYN) are (0,1) (i.e. AccECN SYN)
>       o AccECN uses 1 x 3-bit combination (AE, CWR, ECE) = (1,1,1), as
>         you say.
>       o In addition, RFC3168 uses 1 x 2-bit combination (CWR, ECE) =
>         (1,1) and doesn't use AE=1 (even for the nonce), so AccECN
>         effectively allocates (AE, CWR, ECE) = (0,1,1) as RFC3168.
>       o Non-ECN TCP didn't define any of (AE, CWR, ECE), but AccECN
>         effectively allocates 1 x 3-bit combination (0,0,0) to non-ECN.
>       o That leaves 5 x 3-bit combinations of (AE, CWR, ECE)
>         available, as listed in Appx B.3, but *only when **(ACK,SYN) =
>         (0,1)*
>   * When (ACK,SYN) are (1,1), but *only after an AccECN SYN* (i.e. an
>     AccECN SYN-ACK)
>       o AccECN uses 4 x 3-bit combinations of (AE, CWR, ECE)
>       o RFC3168 and RFC3540 (historic) use 2 x 3-bit combination (AE,
>         CWR, ECE) = (X,0,1)
>       o Non-ECN TCP didn't define any of (AE, CWR, ECE), but AccECN
>         effectively allocates 1 x 3-bit combination (0,0,0) to non-ECN.
>       o A widespread broken implementation uses the remaining 1 x
>         3-bit combination.
>       o So *no further combinations are available for a **SYN-ACK
>         after**an AccECN SYN*, but some will be available after
>         different SYNs.
>   * When (ACK,SYN) are (1,0), but *only after* an AccECN SYN and
>     AccECN SYN-ACK, *except* under the conditions that the AccECN
>     draft defines for the handshake encoding on the 3rd handshake ACK
>       o AccECN uses all 8 x 3-bit combinations of (AE, CWR, ECE) as
>         the ACE field.
>
>
>>
>> ====
>>
>> 2. The requirement for AccECN servers to interpret all ECN codepoints 
>> other than 000, 011, and 111 in the initial SYN same as 111, i.e., 
>> requesting AccECN.
>>
>> The draft reads in Sec. 3.1.3:
>>
>>  If a TCP server that implements AccECN receives a SYN with the three
>>  TCP header flags (AE, CWR and ECE) set to any combination other than
>>  000, 011 or 111, it MUST negotiate the use of AccECN as if they had
>>  been set to 111.
>>
>> Is this really what it meant to say, or was the intention to say:
>>
>>  If a TCP server that implements AccECN receives a SYN with the three
>>  TCP header flags (AE, CWR and ECE) set to any combination other than
>>  000, 011 or 111 *and does not understand such a combination*, it MUST
>>  negotiate the use of AccECN as if they had been set to 111.
>>
>> If not, then this sounds like too restrictive as in this case any 
>> future alternative spec that uses any of the other flag combinations 
>> and also supports AccECN would unnecessarily need to update this spec 
>> to allow negotiating other than AccECN behaviour.
>
> [BB] 2.1) We had assumed that any future use of these combinations 
> would need to update the AccECN spec.
> But I think you're right that it would be useful to add your phrase, 
> to make the intent clearer.
>     [Nonetheless, IMO, it's actually useful (and hardly onerous) to 
> explicitly say when a new protocol updates another RFC].
>
>>
>> In addition, the crucial pieces from Appendix B explaining the 
>> availability of the unused five codepoints for (any) future use is 
>> useful to include in the Sec 3.1.3.
>
> [BB] 2.2) Good. In §3.1.3 we'll add a ref to the appendix.
>
>>
>> ====
>>
>> 3. Acking pure acks. Current text is on the correct track but badly 
>> incomplete.
>>
>> The feature of acking Pure Acks in AccECN is introduced kinda as a 
>> sidenote in Sec 3.2.2.5.1 when discussing potential side-effects of 
>> ECN-marked pure ACKs that may trigger further ACKs. This is not quite 
>> appropriate because this would be a fundamental change to TCP that 
>> does not ack pure Acks. And there is no normative spec that says taht 
>> Pure Acks (with CE) MAY/SHOULD/MUST be acked. This also involves 
>> numerous caveats that has not been fully recognized (see below).
>>
>> The draft says:
>>
>> "Therefore, a host in AccECN mode that is sending ECN-capable pure 
>> ACKs SHOULD add one of the following additional checks when it tests 
>> whether an incoming pure ACK is a duplicate:
>>
>> -If SACK has been negotatiated for the connection, but there is no
>>  SACK option on the incoming pure ACK, it is not a duplicate;"
>>
>> [MK]: Cite RFC 6675 which already states this. But the actual problem 
>> of using this rule is that there is no normative spec available how a 
>> SACK-enabled receiver is supposed to ack a Pure Ack. The draft makes 
>> an well-educated assumption but in fact an implementator cannot 
>> implement this without a normative specthat is cited here to tell how 
>> to ack.
>
> [BB] 3.1) I'll cite 6675.
> I've included Richard in the 'To:', 'cos he's the best person to 
> respond, being the one who developed these rules.
>
>>
>> "-If timestamps are in use, and the incoming pure ACK echoes a
>>   timestamp older than the oldest unacknowledged data, it is not a
>>   duplicate.
>>
>> In the unlikely event that neither SACK nor timestamps are in use, or 
>> if the implementation has opted not to include either of the above 
>> two checks, it SHOULD NOT send ECN-capable pure ACKs. If it does, it 
>> could lead to false detection of duplicate ACKs, causing spurious 
>> retransmission(s) with a resulting unnecessary reduction in 
>> congestion window; but only in certain circumstances."
>>
>> [MK]: False Fast Retransmits are not the only problem although it 
>> alone necessitates MUST NOT, not just SHOULD NOT. Each extra dupack 
>> is subject to trigger an extra data segment in a numerous heuristics 
>> that are based on the packet conservation principle and will confuse 
>> these algorithms, including Limited Transmit, Fast Recovery, PRR, etc.
>> For this very reason RFC 5681 prevents (MUST NOT) a data receiver 
>> from acking more than once per incoming data packet. Ackinf Pure ACKs 
>> was not known by that time but this rule extends to cover acking of 
>> Pure AKCs because the consequence is the same.
>
> [BB] 3.2) I believe all these potential problems primarily affect the 
> host's own connection. The reason for the 'SHOULD' was to allow 
> implementers (in what is already a corner case) to judge the trade off 
> themselves between losing the benefit of ECN-capable pure ACKs and 
> losing the benefit of other performance improving algorithms like 
> those you describe.
>
>>
>> In addition, acking Pure Acks will break F-RTO and potentially also 
>> other algos. Even with Timestamps we are not on the safe side as this 
>> would also break Eifel detection.
>
> [BB] 3.3) Pls explain to me (this isn't my area of expertise). Surely, 
> as the spec says, timestamps can be used to prevent emitting a pure 
> ACK that could be mistaken for a DupACK in the first place.
>
>>
>> So, I hesitate a lot to introduce any algo for acking Pure acks in a 
>> standards track spec as unmature.
>>
>> In general, I don't see any benefit for Acking Pure acks for ack 
>> congestion control purposes because such feedback has no effect until 
>> the sender send data again. That is, postponing the feedback until 
>> there is data again has the same effect when used for controlling ack 
>> rate. Moreover, I find draft-ietf-tcpm-ack-rate-request much beter 
>> suited for this purpose.
>>
>> For the case where CE on Pure ACKs are mixed with data from the same 
>> sender, it is not at all clear how the sender should respond, or 
>> whether the ack CC should be handled separate from data CC. IMO, 
>> these are clearly research questions, definitely not ready for 
>> standards track.
>
> [BB] 3.4) How to respond to feedback is intended to be outside the 
> scope of the AccECN draft. The text about ACKs of ACKs only became 
> necessary when we noticed the potential interaction between ECN++ and 
> the Increment-Triggered ACKs rule.
>
> ECN++ is experimental track, so we could shift all this ACKing ACKs 
> stuff into that draft. None of it applies when ECN++ is not being used.
> Although specific congestion responses are also outside the scope of 
> the ECN++ draft, for certain cases, it does often include requirements 
> for a certain minimum congestion response. So it would be better to 
> include anything about congestion responses in the experimental ECN++ 
> draft.
>
> Wherever this congestion response text ends up, let me try to write 
> down the scope of your question. Your question is confined to the case 
> where ECN-capable pure ACKs are used and neither SACK nor timestamps 
> are being used (if I'm right about timestamps above).

[BB2] You'll see I've also rewritten the text about ACKs of ACKs that is 
left in AccECN - to make it much clearer which end is doing what.

>
>
>>
>> ====
>>
>> 4. Updates 3168:
>>
>> Make it clear that this does not obsolete/replace nor does require 
>> anyone who may want to implement Classic ECN to implement the updates 
>> in this doc. That is, this draft updates RFC 3168 solely to allow 
>> implementing AccECN specified in this doc.
>
> [BB] 4.1) 'Updates' does not make existing implementations of RFC3168 
> ECN feedback obsolete. But 'updates' does mean that no-one would be 
> /expected/ to write a new implementation of RFC3168 ECN feedback any 
> more. Once AccECN is negotiated, it still supports the call-backs used 
> by classical congestion controls that need just 1 bit of feedback per RTT.
>
> Also, the draft requires an AccECN client to implement RFC3168 
> feedback as well as AccECN (see the 'MUST' in note 2 under Table 2). 
> But it does not /require/ an AccECN server to implement RFC3168. The 
> agreed wording about a server not implementing RFC3168 support is:
>     "This ... is unlikely to be desirable, but it is allowed as a 
> possibility, e.g. for minimal TCP implementations."

[BB2] GIven AccECN has the /ability/ to replace classic ECN (superset), 
we didn't want to /not/ say 'replace'. The trick that Gorry suggested 
was to make it clear that each host has the choice to replace classic 
ECN on a per-connection basis.

Please see my responses to Gorry on the ML about what changes have been 
made to address this point.
I have now fixed the remaining occurrence of replace for you in a 
similar way.

Here's a quick paste of one of the relevant responses to Gorry's points 
on this:
==================
>> This document specifies an update to the ECN feedback scheme of RFC 
>> 3168 that provides more accurate information and could be used by 
>> these and potentially other future TCP extensions.
>> - could we note this is an alternative rather than replacement:
>> This document specifies an update to the ECN feedback scheme of RFC 
>> 3168 that provides an alternative more accurate information and could 
>> be used by these and potentially other future TCP extensions.
>
> [BB3] Sorry, I overlooked this in the first pass.
> AccECN is definitely not an alternative (as explained in the sentence 
> "not a fork in the design of TCP"). It is a superset.
> I know you are trying to avoid any implication that AccECN obsoletes 
> RFC3168, but there was no such implication in this sentence as it 
> stood. That is captured by the well-understood word "update".
>
> Nonetheless, I would like to add the following important point to this 
> sentence, which doesn't seem to have been said anywhere in the Intro:
>     This document specifies an update to the ECN feedback scheme of 
> RFC 3168 that provides more accurate information and could be used by 
> these and potentially other future TCP extensions*, while still also 
> supporting the pre-existing TCP congestion controllers that use just 
> one feedback signal per round*.
>
> A later sentence makes it even clearer that RFC3168 feedback has not 
> gone away:
>     "AccECN feedback complements TCP's loss feedback and it can 
> coexist alongside 'classic' [RFC3168 
> <https://www.rfc-editor.org/info/rfc3168>] TCP/ECN feedback."
==================

Regards



Bob

>
>>
>>
>> Nits:
>>
>> "flag available for use by the AccECN experiment instead."
>>
>> - Experiment is leftover from the time when targetting Experimental?
>>   There are a few other such occurances. Might want to
>>   consider deleting.
>
> [BB] Alex Burr also pointed this out during WGLC. And I also removed 
> the description of MPTCP as experimental, now that it isn't any more.
>
>>
>> "RST packet"  -> "RST segment"
>> "SYN packett" -> "SYN segment"
>>
>> - there are a number of such intanses. If you want to use packet 
>> instead of segment, then it might be better to make this explicit 
>> early in the draft similar to RFC 3168 does:
>>
>>  "In a mild abuse of terminology, in this document we refer to `TCP
>>  packets' instead of `TCP segments'.
>
> [BB] I'll do that. Otherwise I'll have 162 occurrences of 'packet' to 
> check.
>
> Thank you again for your review.
>
>
>
> Bob
>
>>
>>
>> Hope this is helpful.
>>
>> Best regards,
>>
>> /Markku
>>
>> _______________________________________________
>> tcpm mailing list
>> tcpm@ietf.org
>> https://www.ietf.org/mailman/listinfo/tcpm
>
> -- 
> ________________________________________________________________
> Bob Briscoehttp://bobbriscoe.net/

-- 
________________________________________________________________
Bob Briscoehttp://bobbriscoe.net/