Re: [tcpm] Exceeding value in MSS option?

Markku Kojo <kojo@cs.helsinki.fi> Wed, 21 October 2020 10:04 UTC

Return-Path: <kojo@cs.helsinki.fi>
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 177B63A1598 for <tcpm@ietfa.amsl.com>; Wed, 21 Oct 2020 03:04:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2
X-Spam-Level:
X-Spam-Status: No, score=-2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.helsinki.fi
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 OfZMAokH6wH9 for <tcpm@ietfa.amsl.com>; Wed, 21 Oct 2020 03:04:27 -0700 (PDT)
Received: from script.cs.helsinki.fi (script.cs.helsinki.fi [128.214.11.1]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id BEA2E3A159B for <tcpm@ietf.org>; Wed, 21 Oct 2020 03:04:26 -0700 (PDT)
X-DKIM: Courier DKIM Filter v0.50+pk-2017-10-25 mail.cs.helsinki.fi Wed, 21 Oct 2020 13:04:09 +0300
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.helsinki.fi; h=date:from:to:cc:subject:in-reply-to:message-id:references :mime-version:content-type; s=dkim20130528; bh=ijobRNtAPiLFJWXAW JfzXfTOYq2egC0lo8cdC1tBOYk=; b=WcY2uW9kzNHbgxl6fVySwuCR7/cdHJwS+ HGs+8zT7Pv/4XLwleiAY6wy3wQURwP7aEExnPs/mYUUIhzCu3Ei7KXQbe9Ojmn93 S0u7Q6BOe+nqz/qLIjX04RN/9SzMuMOa9nakWaba6f6HLKQH4GkFzv1+eH0c13mv huu0csXGBY=
Received: from hp8x-60 (85-76-65-98-nat.elisa-mobile.fi [85.76.65.98]) (AUTH: PLAIN kojo, TLS: TLSv1/SSLv3,256bits,AES256-GCM-SHA384) by mail.cs.helsinki.fi with ESMTPSA; Wed, 21 Oct 2020 13:04:09 +0300 id 00000000005A01BC.000000005F900799.00000603
Date: Wed, 21 Oct 2020 13:04:09 +0300
From: Markku Kojo <kojo@cs.helsinki.fi>
To: Michael Scharf <Michael.Scharf@hs-esslingen.de>
cc: Michael Tuexen <Michael.Tuexen@lurchi.franken.de>, "tcpm@ietf.org Extensions" <tcpm@ietf.org>
In-Reply-To: <9d31403a88944c5b97eedbe9a465de6d@hs-esslingen.de>
Message-ID: <alpine.DEB.2.21.2010211245480.3738@hp8x-60.cs.helsinki.fi>
References: <CAM4esxQzydPBTjVQvtp3766mCH5L65LdRSkFzQkdeKgUfhKacA@mail.gmail.com> <78558F1C-9194-4797-BE22-E553E1412E46@lurchi.franken.de> <7ded391321f94d0fb90fb5296de9fe43@hs-esslingen.de> <6AEBE48D-11BC-4837-BDB1-13E93CE11C84@lurchi.franken.de> <9d31403a88944c5b97eedbe9a465de6d@hs-esslingen.de>
User-Agent: Alpine 2.21 (DEB 202 2017-01-01)
MIME-Version: 1.0
Content-Type: text/plain; format="flowed"; charset="US-ASCII"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/BtM1Nfr3S6feitQBKnY0SxrwIVw>
Subject: Re: [tcpm] Exceeding value in MSS option?
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: Wed, 21 Oct 2020 10:04:29 -0000

Hi,

see inline.

On Wed, 21 Oct 2020, Michael Scharf wrote:

>>> On 20. Oct 2020, at 21:56, Scharf, Michael <Michael.Scharf@hs-
>> esslingen.de> wrote:
>>>
>>> Hi all,
>>>
>>> Sorry for the delayed reply. More inline...
>>>
>>>>> On 19. Oct 2020, at 21:22, Martin Duke <martin.h.duke@gmail.com>
>> wrote:
>>>>>
>>>>> Hello tcpm,
>>>>>
>>>>> Section 4.2.2.6 of RFC 1122 is pretty clear that the TCP sender MUST
>>>> consider all IP and TCP options when sizing payloads with respect to the
>>>> advertised MSS option.
>>>>>
>>>>> I'm reviewing a document that advises that some endpoints may want to
>>>> reduce their advertised MSS on IPv6 connections in case the peer isn't
>>>> respecting that guidance. Is noncompliance with this provision a problem
>> in
>>>> the internet? Are there middleboxes injecting options that cause PMTU
>>>> drops or fragmentation?
>>>> Hi Martin,
>>>>
>>>> the document you are reviewing says:
>>>>
>>>>   An IPv6 datagram size exceeding 1280 bytes can be avoided by setting
>>>>   the TCP MSS not larger than 1220 bytes.  This assumes that the remote
>>>>   sender will use no TCP options, aside from possibly the MSS option,
>>>>   which is only used in the initial TCP SYN packet.
>>>>
>>>> The first sentence is correct. The second is not. I would suggest to simply
>>>> remove it.
>>>
>>> The statements regarding the MSS were discussed and also rewritten many
>> times. And, sorry, apparently I have not carefully read the second sentence
>> (but, well, that sentence was also in the version of the draft that was last
>> called in TCPM...)
>>>
>>> Given this discussion now, I agree that the second sentence could probably
>> be removed.
>>>
>>>> Then the text says:
>>>>
>>>>   In order to accommodate unrequested TCP options that may be used by
>>>>   some TCP implementations, a constrained device may advertise an MSS
>>>>   smaller than 1220 bytes (e.g. not larger than 1200 bytes).  Note that
>>>>   it is advised for TCP implementations to consume payload space
>>>>   instead of increasing datagram size when including IP or TCP options
>>>>   in an IP packet to be sent [RFC6691].  Therefore, the suggestion of
>>>>   advertising an MSS smaller than 1220 bytes is likely to be
>>>>   overcautious and its suitability should be considered carefully.
>>>>
>>>> I read this as "use a smaller MSS", but this is "likely to be
>>>> overcautious and its suitability should be considered carefully."
>>>>
>>>> I think the careful consideration is to remove this paragraph.
>>>
>>> I am not sure if we should simply remove the whole paragraph, including
>> e.g. the reference to RFC 6691. Readers
>> The paragraph starts with:
>>
>> In order to accommodate unrequested TCP options that may be used by
>> some TCP implementations, a constrained device may advertise an MSS
>> smaller than 1220 bytes (e.g. not larger than 1200 bytes).
>>
>> I don't think the selection of the MSS should depend on TCP options.
>> A TCP stack may send an MSS option with a value lower then 1220, but
>> it should not do it due to any TCP options.
>
> OK, thanks, now I actually get the point. Sorry, it was late yesterday. I agree. This is all what RFC 6691 is about.
>
> But I still wonder whether we should keep a reference to RFC 6691, given that this topic has repeatedly caused confusion.
>
>>  That is the reason, why
>> I suggested to remove the paragraph.
>
> What about the following shorter paragraph with three sentences:
>
>   An IPv6 datagram size exceeding 1280 bytes can be avoided by setting
>   the TCP MSS not larger than 1220 bytes. Note that
>   it is advised for TCP implementations to consume payload space
>   instead of increasing datagram size when including IP or TCP options
>   in an IP packet to be sent [RFC6691]. Therefore, it is not required to
>   advertise an MSS smaller than 1220 bytes in order to accommodate
>   TCP options.
>
> Would that be reasonable?

That's much better but I would say it even more strongly because this is 
MUST in RFC 1122 as pointed out earlier:

" ...
   Note that
   it is advised for TCP implementations to consume payload space
   instead of increasing datagram size when including IP or TCP options
   in an IP packet to be sent [RFC6691].
   ..."

->

" ...
   Note that
   TCP implementations MUST consume payload space
   instead of increasing datagram size when including IP or TCP options
   in an IP packet to be sent [RFC1122, RFC6691].
   ..."

OR (if RFC 2119 language is not used in this doc, and currently it is not 
used although section 2 exists):

" ...
   Note that
   it is required for TCP implementations to consume payload space
   instead of increasing datagram size when including IP or TCP options
   in an IP packet to be sent [RFC1122, RFC6691].
   ..."

BR,

/Markku

> Michael
>
>>
>> Best regards
>> Michael
>>
>>>  of this document may not be aware of RFC 6691, so a pointer may be
>> useful, no? Also, during the IETF last call there was a discussion on MSS
>> values significantly smaller than 1220 byte. People apparently *do* think
>> about smaller MSS values on constrained devices and this document is a
>> place to provide guidance to that community (as far as possible). This specific
>> wording came up in earlier reviews of the draft, too. Thus, the final proposal
>> "likely to be overcautious and its suitability should be considered carefully" is
>> a result of several past discussions. IMHO we should carefully consider
>> changes to this statement...
>>>
>>> BTW, personally, I really wonder if using an MSS of 1220 byte (for IPv6)
>> indeed causes real-world problems on constrained devices, i.e., if in year
>> 2020 there is any real-world benefit of an MSS smaller than 1220 byte. But,
>> unfortunately, I don't have measurement data that would back a different
>> statement in the draft.
>>>
>>> Michael
>>>
>>>> Best regards
>>>> Michael
>>>>
>>>>
>>>>
>>>>
>>>>>
>>>>> I have not heard of such problems, but thought I'd check with the
>>>> community to see if this precaution makes any sense at all.
>>>>>
>>>>> Thanks,
>>>>> Martin
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> tcpm mailing list
>>>>> tcpm@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/tcpm
>>>>
>>>> _______________________________________________
>>>> tcpm mailing list
>>>> tcpm@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/tcpm
>
> _______________________________________________
> tcpm mailing list
> tcpm@ietf.org
> https://www.ietf.org/mailman/listinfo/tcpm
>