Re: [tcpm] 793bis update

Joe Touch <touch@isi.edu> Tue, 24 February 2015 16:41 UTC

Return-Path: <touch@isi.edu>
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 8B1581A8833 for <tcpm@ietfa.amsl.com>; Tue, 24 Feb 2015 08:41:35 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.91
X-Spam-Level:
X-Spam-Status: No, score=-6.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, T_RP_MATCHES_RCVD=-0.01] 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 6UtzufDDMsS0 for <tcpm@ietfa.amsl.com>; Tue, 24 Feb 2015 08:41:34 -0800 (PST)
Received: from darkstar.isi.edu (darkstar.isi.edu [128.9.128.127]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9B0E11A884E for <tcpm@ietf.org>; Tue, 24 Feb 2015 08:41:06 -0800 (PST)
Received: from [192.168.1.10] (pool-71-103-148-202.lsanca.dsl-w.verizon.net [71.103.148.202]) (authenticated bits=0) by darkstar.isi.edu (8.13.8/8.13.8) with ESMTP id t1OGe4wh013093 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 24 Feb 2015 08:40:28 -0800 (PST)
Message-ID: <54ECA964.8020008@isi.edu>
Date: Tue, 24 Feb 2015 08:40:04 -0800
From: Joe Touch <touch@isi.edu>
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0
MIME-Version: 1.0
To: Wesley Eddy <wes@mti-systems.com>, "tcpm@ietf.org" <tcpm@ietf.org>
References: <54D51FEF.9080607@mti-systems.com> <54EB8517.9030805@isi.edu> <54ECA555.40501@mti-systems.com>
In-Reply-To: <54ECA555.40501@mti-systems.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 7bit
X-ISI-4-43-8-MailScanner: Found to be clean
X-MailScanner-From: touch@isi.edu
Archived-At: <http://mailarchive.ietf.org/arch/msg/tcpm/Tl-Th5QzU0V74cIRpTLINnTBZjY>
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:41:35 -0000

Followup below...

On 2/24/2015 8:22 AM, Wesley Eddy wrote:
...
>> - 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?

Found it: RFC1122, Sec 3.3.3:

          ...In the absence of actual knowledge of the
          minimum MTU along the path, the IP layer SHOULD use
          EMTU_S <= 576 whenever the destination address is not on a
          connected network, and otherwise use the connected network's
          MTU.

"connected network's MTU" is 1990s slang for "NIC interface when on the 
same subnet".

>> - 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 don't know either. It's not in the PLPMTUD RFC, which is written more 
as "if you implement this, here's what you MUST/SHOULD/MAY do".

 > ... 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 ...

Oh, agreed - I think it's worth digging to find out, but unfortunately I 
don't have cycles (I'm writing a midterm in the other window)...

> 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.

It is, but you're right that we've never made a statement that says that 
it should be used to replace PMTUD wherever PMTUD is required, AFAICT.

>> - 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.

Agreed.

>> - 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.

Agreed to avoid the socket model per se; a different way of saying it is 
that the "IP options associated with a TCP connection", rather than to 
make it sound like TCP has an interface where it tells IP which options 
to use (RFC793 certainly does not).

>> - 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?

This goes back to RDMA and its precursors a long time ago. I.e., the 
point is that send/receive calls (per RFC793) pass data in chunks to 
TCP, and TCP senders pass chunks from senders to receivers, but those 
two chunks have no correlation.

RDMA gets around this by assuming they do on the sender side, and 
detecting that they're sustained through to the receiver side - i.e., it 
says "detect when it happens and take advantage of it", but it doesn't 
assume it either (I pushed back hard on that).

Joe