Re: [tcpm] 793bis update

Wesley Eddy <wes@mti-systems.com> Tue, 24 February 2015 16:22 UTC

Return-Path: <wes@mti-systems.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 457A21A1A48 for <tcpm@ietfa.amsl.com>; Tue, 24 Feb 2015 08:22:56 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.001
X-Spam-Level:
X-Spam-Status: No, score=-0.001 tagged_above=-999 required=5 tests=[BAYES_20=-0.001] autolearn=ham
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 gwXQ8JknW7Tv for <tcpm@ietfa.amsl.com>; Tue, 24 Feb 2015 08:22:54 -0800 (PST)
Received: from atl4mhob19.myregisteredsite.com (atl4mhob19.myregisteredsite.com [209.17.115.112]) by ietfa.amsl.com (Postfix) with ESMTP id DC5241A1A25 for <tcpm@ietf.org>; Tue, 24 Feb 2015 08:22:53 -0800 (PST)
Received: from mailpod.hostingplatform.com ([10.30.71.203]) by atl4mhob19.myregisteredsite.com (8.14.4/8.14.4) with ESMTP id t1OGMnCM003344 for <tcpm@ietf.org>; Tue, 24 Feb 2015 11:22:49 -0500
Received: (qmail 20909 invoked by uid 0); 24 Feb 2015 16:22:49 -0000
X-TCPREMOTEIP: 24.166.126.82
X-Authenticated-UID: wes@mti-systems.com
Received: from unknown (HELO ?192.168.0.2?) (wes@mti-systems.com@24.166.126.82) by 0 with ESMTPA; 24 Feb 2015 16:22:48 -0000
Message-ID: <54ECA555.40501@mti-systems.com>
Date: Tue, 24 Feb 2015 11:22:45 -0500
From: Wesley Eddy <wes@mti-systems.com>
Organization: MTI Systems
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Joe Touch <touch@isi.edu>, "tcpm@ietf.org" <tcpm@ietf.org>
References: <54D51FEF.9080607@mti-systems.com> <54EB8517.9030805@isi.edu>
In-Reply-To: <54EB8517.9030805@isi.edu>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/tcpm/zsBOBMP_3Vq2kGB1W7WPmKGjZxs>
Subject: Re: [tcpm] 793bis update
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Tue, 24 Feb 2015 16:22:56 -0000

On 2/23/2015 2:52 PM, Joe Touch wrote:
> Hi, Wes,
> 
> Sorry for the delay in responding. I had a few thoughts, below.


Hi Joe, many thanks for the feedback.  Since getting this right is
more important than doing it fast, there's no need to apologize
about delay in responding!

This was a trickier update among the ones that I'd worked so far,
mostly because the rules and advice on MSS and related topics is
spread out over several RFCs, and although 6691 helped quite a bit,
it didn't quite go so far as to say what the prescriptive text should
have looked like in 793 or 1122 :).

So, careful review of this is much appreciated.

I essentially agree with your points, and intend to work them all
to some extent into the next update, but some responses are inline
below with some explanations and follow-up questions.


> 
> On 2/6/2015 12:11 PM, Wesley Eddy wrote:
>> FYI - I posted an update to the proposed RFC793bis (still an individual,
>> not a working group draft):
>> http://tools.ietf.org/html/draft-eddy-rfc793bis-05
>>
>> The main goals in this revision was to introduce a section on
>> segmentation of data and place into that section the normative
>> content from RFCs that updated 793 and cover the MSS & PMTU
>> topics.
> 
> The section is useful, but I think also ignores a few key issues that
> would be useful to highlight:
> 
> - there's a tension between sending "as large as possible" and a few
> other goals:
> 
>     - sending as few short segments as possible
> 
>     - avoiding delays to the stream, esp. when the user data
>     is NOT always available (i.e., when TCP has to wait)


Thanks for mentioning these; they definitely should be reflected in
the text in the next update.


> - "as large as possible" is nearly never a useful goal; it's a
> consequence of some other goal
> 
>     The goal is often either performance or fate-sharing.
> 
>     Performance argues for larger packets, but the benefit
>     decreases as the size increases. Further, there are some
>     sizes that, while bigger, are not always better (e.g.,
>     1025 bytes can be worse than 1024, even when both fit
>     in a segment, due to data alignment on copy).
> 
>     Fate sharing argues for smaller packets because TCP
>     is not always aware of fragmentation/reassembly at lower
>     layers (the degenerate case being AAL5 over ATM, but there
>     are other examples). So just because the next-layer down
>     has a given MTU, does NOT automatically make that MTU a goal.


You're obviously correct, and this should be fixed and clarified in
the text in the next update.


> - TCP's default MSS has other rules
> 
>     I thought there was a rule about being on the same subnet
>     and using the interface as the starting MSS.


There seems to be at least a little bit of discussion on this in RFC
879, though I haven't yet bumped into a very clear statement of it.
Do you know of anyplace that this lives in the literature / RFC series?


> - I thought TCP SHOULD also support PLMTUD, not just PMTUD.
>     
>     The difference should be discussed in more detail than given in
>     sec 3.7.2.
> 


This seems fair to discuss at least a bit further in the document.  I'm
not positive whether there is or is not an RFC existing already that
says "SHOULD support PLPMTUD, not just PMTUD" ... I would guess that
most folks would agree with it, but I'm just not sure if there's a place
that says it in 2119-speak.  Maybe I'm being too pedantic about trying
to keep the scope to specific recommendations and changes to 793 that
have already been approved in other RFCs and errata ...

We can certainly say that RFC 4821 describes the algorithm and specific
probing mechanism for use with TCP, and that it's on the Standards Track
as an improvement to PMTUD.


> - Regarding:
>    o  TCPhdrsize is the size of the fixed TCP header; this is normally
>       20, but may be larger if TCP options are to be sent.
> 
>     If TCPhdrsize is the size of the fixed TCP header then it is
>     ALWAYS 20. And TCP headers almost always have options.
> 
>     I think you may have intended:
> 
>     TCPhdrsize is the size of the TCP header and any options;
>     this is 20 in the (rare) case that no options are present.


Actually, this text is stolen directly from RFC 1122.  I have actually
been working to avoid writing or changing text, to the greatest extent
possible :).

I think you're right in clarifying this though, and it's in the spirit
of part of what went into RFC 6691 to make this clear, so I like it.
We actually may want to be stronger and say that if TCP options are
used on a segment, then the sender should adjust the data length
accordingly, just like section 4 of RFC 6691 says.


> - Regarding:
>    o  IPoptionsize is the size of any IP options that TCP will pass to
>       the IP layer with the current message.
> 
>     TCP doesn't pass options. That happens as a result of settings
>     to the socket.


This is also directly from 1122.  We could probably add some clarity
here with slight text modification to remain implementation-neutral
(e.g. not assuming a socket programming model), but still say that IP
options need to be accounted for.


> - it would be useful, IMO, to highlight the relationship between TCP
> segment boundaries and user data
> 
>     I.e., that TCP guarantees NO such boundary coherence.


I could use some help with this.  Are you referring to something along
the lines of discussion that has been had around Bob Briscoe's "inner
space" work?

-- 
Wes Eddy
MTI Systems