[tcpm] TCP MSS option - FYI original discussion
David Borman <david.borman@windriver.com> Thu, 26 March 2009 01:52 UTC
Return-Path: <david.borman@windriver.com>
X-Original-To: tcpm@core3.amsl.com
Delivered-To: tcpm@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 7C9B43A6A0A for <tcpm@core3.amsl.com>; Wed, 25 Mar 2009 18:52:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.387
X-Spam-Level:
X-Spam-Status: No, score=-3.387 tagged_above=-999 required=5 tests=[AWL=0.212, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id W7r9r+Sp4YRA for <tcpm@core3.amsl.com>; Wed, 25 Mar 2009 18:52:06 -0700 (PDT)
Received: from mail.wrs.com (mail.windriver.com [147.11.1.11]) by core3.amsl.com (Postfix) with ESMTP id 9F99F3A680A for <tcpm@ietf.org>; Wed, 25 Mar 2009 18:52:06 -0700 (PDT)
Received: from ALA-MAIL03.corp.ad.wrs.com (ala-mail03 [147.11.57.144]) by mail.wrs.com (8.13.6/8.13.6) with ESMTP id n2Q1qw79025476 for <tcpm@ietf.org>; Wed, 25 Mar 2009 18:52:58 -0700 (PDT)
Received: from ala-mail06.corp.ad.wrs.com ([147.11.57.147]) by ALA-MAIL03.corp.ad.wrs.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 25 Mar 2009 18:52:57 -0700
Received: from dhcp-53da.meeting.ietf.org ([147.11.233.50]) by ala-mail06.corp.ad.wrs.com with Microsoft SMTPSVC(6.0.3790.1830); Wed, 25 Mar 2009 18:52:58 -0700
Message-Id: <511AB862-06E0-40EB-B6C8-E490D82E7DC0@windriver.com>
From: David Borman <david.borman@windriver.com>
To: tcpm@ietf.org
Content-Type: text/plain; charset="US-ASCII"; format="flowed"; delsp="yes"
Content-Transfer-Encoding: 7bit
Mime-Version: 1.0 (Apple Message framework v930.3)
Date: Wed, 25 Mar 2009 20:52:57 -0500
X-Mailer: Apple Mail (2.930.3)
X-OriginalArrivalTime: 26 Mar 2009 01:52:58.0184 (UTC) FILETIME=[96770C80:01C9ADB5]
Subject: [tcpm] TCP MSS option - FYI original discussion
X-BeenThere: tcpm@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Thu, 26 Mar 2009 01:52:07 -0000
In today's TCPM session, Matt Mathis asked when the TCP MSS option discussion first happened. I looked it up, and I originally posted the discussion to the tcplw@cray.com mailing list in 1993. Here's the text of that original message, taken from my mail archives. -David Borman > From dab Thu Jan 7 14:12:10 1993 > To: tcplw@cray.com > Subject: TCP MSS & Timestamps > > > In recent private mail conversation, it has come to my > attention that we probably don't all have a common view on > what to do with the TCP MSS value in the presence of TCP > options, since the TCP MSS value only refers to the TCP > data part of the packet, and the presence of TCP options > will affect that value. > > Since 1323 is eligible for elevation to Draft status, this > is a good time to revise the document to clarify this issue. > > First, there is a maximum packet size. When you insert options, > the amount of space available for TCP data within a non-fragmented > IP packet goes down by the length of the options. So, the option > length needs to be accounted for. > > The "be conservative in what you send" rule can be applied > in two ways. The first is in the generation of the MSS > value, you can say "well, I'll assume that the other side > won't adjust for the length of the options, so I'll adjust > for the option length when sending the MSS". Meanwhile, > on the other side, when sending a packet, you can say "well, > I'll assume that the other side did not adjust for the options > length when it sent the MSS, and so I'll decrease the data > size by the option length". You can do both, but then the > packets will usually be short. So, you should pick one or the > other, but not both. > > With two places to do the accounting for the options vs. > the MSS value, you get a grid like: > > | MSS is adjusted | MSS is not adjusted > | for options | for options > ----------------+-----------------------+-------------------- > Sender adjusts | packets are too | packets are the > length for | short | correct length > options | | > ----------------+-----------------------+-------------------- > Sender doesn't | packets are the | packets are too > adjust length | correct length | long. > for options | | > > The bottom right-hand corner is what we want to avoid, since that > is the case when IP will have to fragment the packet. The only > way that the side that is sending the datagrams can guarantee that > it doesn't send IP packets that are too long is to always adjust > the data length by the length of the options. It would be better > to send a packet that is a few bytes too short rather than one > that is a few bytes too long. > > So, the bottom line is that I'd like to see a paragraph added > to 1323 stating that the generated MSS value only takes into > account the fixed IP and TCP header lengths, and that the side > that is generating the datagrams needs to adjust the length of > the TCP data to account for any IP or TCP options that it inserts > into the datagram. > > Anyone disagree? > > -David Borman, dab@cray.com >
- [tcpm] TCP MSS option - FYI original discussion David Borman