Re: [tcpm] WGLC review of draft-ietf-tcpm-rfc793bis-18

Wesley Eddy <wes@mti-systems.com> Fri, 23 October 2020 20:37 UTC

Return-Path: <wes@mti-systems.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 DC4473A03C9 for <tcpm@ietfa.amsl.com>; Fri, 23 Oct 2020 13:37:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.146
X-Spam-Level:
X-Spam-Status: No, score=-2.146 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, NICE_REPLY_A=-0.247, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mti-systems-com.20150623.gappssmtp.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 GLZ6Bual0wOW for <tcpm@ietfa.amsl.com>; Fri, 23 Oct 2020 13:37:15 -0700 (PDT)
Received: from mail-qv1-xf2b.google.com (mail-qv1-xf2b.google.com [IPv6:2607:f8b0:4864:20::f2b]) (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 D6AB43A03EC for <tcpm@ietf.org>; Fri, 23 Oct 2020 13:37:14 -0700 (PDT)
Received: by mail-qv1-xf2b.google.com with SMTP id cv1so1430591qvb.2 for <tcpm@ietf.org>; Fri, 23 Oct 2020 13:37:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mti-systems-com.20150623.gappssmtp.com; s=20150623; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=b3N5/5tzMAWayce8EslWo34KiGpRW/myBjmKGXf3/9c=; b=ab6648mPbh3BVVbZuO46U2a9YO0xFITcTb1SwsZc4xSeTv3DBWKdP+Z6aNsbs/w3Ry AZMvLXto4XAtQrwBndRDwF4dPbiUkopSOpe2vs8I26tgp93RNEkR/GyMbNTSo+SrvyxJ pv9AtqFWsrRrP3KwxI9fDZSE0dRx4YloAJ11kz6aR/kCy1iohGNQBOtyNAB2ReCJLJU2 S4rAc4Da6n7AlPEjmP/3sVsoikQcyf+Hps+70ZBOQ817k+ixbfCqMfxLxvttJCnfFmQ7 H4H1HiG3Iry/ZHDOmGZr0BGG/kF/jMioLz3BWs+nJb8kYyzTzHK5eu2htJ6Iqhyyme+2 WFcQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=b3N5/5tzMAWayce8EslWo34KiGpRW/myBjmKGXf3/9c=; b=iQ8dtlYsc1l1x7xSxaaMBVHoiYqcTbOCBjSBkCQjVq6VRbG+ouiBme6kcTIoBkFLl/ GEe9K3NxDBqsE3tlnSzW3C3iEeCveQld22RVRkYvzmLZ0exq2ozX5xH85onsZb3JNqWq eD0k1HNnDp70LDIBYoQ8Vd2VZ8P8qRTAW5fEsxbFTtbMg/p96sVQvdYC5Vh32KohNxK5 GkxNfRGzfMsg/UQPH66rdK0/5c8uWbq+ZNpShkr2NTW5577etlQKbwmIRTyN8Irxt8V8 A/xgnG28RZLoGIy3SJsgXf3o1EOJNkLaeET4d6i/FnNQ6ExrO5OVoJLyhHeK+w1BAarE 9Fpg==
X-Gm-Message-State: AOAM532E8HQJv88bSbT1z+rlfD3XZ3bH0ki414avnX2Pat9wUpFFCAkl 5OstxnGVkzXzMp8k6CDg61w2Jw==
X-Google-Smtp-Source: ABdhPJwUT7oVCh+lmpCfdY1a8CjZdT8LBqJ2RafVP0wvJg+o0Ci/dVDKKvbhdyQNGsBnY7kLfyJJ5g==
X-Received: by 2002:a0c:f64b:: with SMTP id s11mr894408qvm.47.1603485433576; Fri, 23 Oct 2020 13:37:13 -0700 (PDT)
Received: from [192.168.1.114] (rrcs-69-135-1-122.central.biz.rr.com. [69.135.1.122]) by smtp.gmail.com with ESMTPSA id o47sm1705318qtk.21.2020.10.23.13.37.12 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 23 Oct 2020 13:37:12 -0700 (PDT)
To: Praveen Balasubramanian <pravb=40microsoft.com@dmarc.ietf.org>, "tcpm@ietf.org" <tcpm@ietf.org>, Matt Olson <maolson@microsoft.com>, Yi Huang <huanyi@microsoft.com>
References: <CH2PR00MB072885B6E3337415A0F4EFB1B6031@CH2PR00MB0728.namprd00.prod.outlook.com> <CH2PR00MB0728DD8CB50540C41DE83D0FB6031@CH2PR00MB0728.namprd00.prod.outlook.com>
From: Wesley Eddy <wes@mti-systems.com>
Message-ID: <8e59b58f-badd-2aac-fe2e-d40a9c78cc94@mti-systems.com>
Date: Fri, 23 Oct 2020 16:37:11 -0400
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.12.1
MIME-Version: 1.0
In-Reply-To: <CH2PR00MB0728DD8CB50540C41DE83D0FB6031@CH2PR00MB0728.namprd00.prod.outlook.com>
Content-Type: multipart/alternative; boundary="------------D20995A84CA5B8CAE1D591D4"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/cB3Jan4M6GpWDwhRjQLDJeg3uyQ>
Subject: Re: [tcpm] WGLC review of draft-ietf-tcpm-rfc793bis-18
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: Fri, 23 Oct 2020 20:37:17 -0000

Thank you for this helpful review; here are my plans/thoughts on 
addressing your comments:


On 10/15/2020 10:06 PM, Praveen Balasubramanian wrote:
>
> Section 3.1
>
> The control bits in the header include the RFC 3168 specified CWR and 
> ECE. It might be worth citing 3168 as well in the Abstract.
>
Agreed; I'll do this in the next revision.


> It is quite a bit surprising that we don't include discussion of the 
> SACK, Timestamp, and Window Scaling options. Even if we don't describe 
> the details, the document should provide references to these almost 
> universally deployed options and recommend that hosts SHOULD implement 
> them. At least the Timestamp option is referred to multiple times in 
> the text without any specification of the format.
>
This makes basically sense to me, and I'll plan to improve on it in the 
next revision.  My plan is to prominently reference the specs that 
define those options, and say that they're recommended, but won't try to 
recreate their definitions here though.


> Section 3.6.4
>
> "
>
>    If there is unacknowledged data (i.e., SND.NXT > SND.UNA), then the
>
>    sending TCP endpoint buffers all user data (regardless of the PSH
>
>    bit), until the outstanding data has been acknowledged or until the
>
>    TCP endpoint can send a full-sized segment (Eff.snd.MSS bytes).
>
> "
>
> This is slightly different from Nagle's description in RFC 896:
>
> "
>
> The solution is to inhibit the sending of new TCP  segments  when
>
> new  outgoing  data  arrives  from  the  user  if  any previously
>
> transmitted data on the connection remains unacknowledged.
>
> "
>
> I.e., the original algorithm description in RFC 896 didn't include the 
> "or if a full-sized packet can be sent" part. This difference isn't 
> mentioned in 793bis, it ought to be, along with a justification for 
> the difference.
>
This part is directly from RFC 1122 (Section 4.2.3.4), so I think it 
says the proper thing.


> Also there is no mention of the interaction problem between Nagle's 
> algorithm and delayed ACKs, either here or in the later section on 
> delayed ACKs.
>
Very good point!  Currently, the delayed ACK interaction w/ Nagle is 
only mentioned in Appendix A.3.  I think, based on your comment, that we 
should add a mention of this in the main body when Nagle's algorithm is 
discussed, referring to A.3.

> Section 3.7.3
>
> “However, the values of R1 and R2 may be different for SYN
>
>             and data segments.  In particular, R2 for a SYN segment *MUST*
>
>             be set large enough to provide retransmission of the segment
>
>             for at least 3 minutes.  The application can close the
>
> connection (i.e., give up on the open attempt) sooner, of
>
> course.
>
> “
>
> The MUST here is onerous for what is an ancient timeout value which 
> modern implementations don’t adhere to. Recommend changing this to a 
> SHOULD.
>
While I agree, I think this will require some greater working group 
discussion.  If the group and chairs agree, I'm happy to do this.


> Section 3.7.4
>
> “Keep-alive packets MUST only be sent when no data or acknowledgement
>
>    packets have been received for the connection within an interval
>
>    (MUST-26).
>
> “
>
> It’s important to call out an additional condition – that sends are 
> not already outstanding. When a send is outstanding, it is 
> retransmitted and serves as an implicit liveness check.
>
This is an excellent point, and I think it can be added in the next 
revision, unless there is any objections from the rest of the working group.


> Section 3.7.2
>
> “/A TCP endpoint MUST implement RFC 5681 (MUST-19)./”
>
> This requirement is onerous because RFC 5681 also specifies the 
> NewReno congestion control algorithms. Modern implementations use 
> other algorithms. We should add clarifying text permitting 
> experimentation and evolution of congestion control algorithms. It is 
> also not required for interop.
>
This is a part where maybe we could use some more help/input on the 
exact wording.

I think MUST implement some IETF standard congestion control is the 
right idea, but alternative algorithms that are administratively (or 
otherwise) managed on a host are also fine to implement and enable.  If 
others agree, disagree, or have thoughts on how exactly to phrase this, 
I think it would help to hear from the working group.


Finally, all of your editorial comments are now accounted for in my 
working copy, so thank you for those.