[LARTC] http://lartc.org/howto/lartc.cookbook.mtu-mss.html

Linux Advanced Routing and Traffic Control

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Further research on this:

 > [If I understand the code correctly ... - expert intervention invited]
 > More precisely, this sets the MSS option to the MTU of the outgoing
 > link for this packet (so it must have already been routed) minus the
 > minimal size of a TCP and IP header, which is typically but not
 > necessarily the "right" value.
 > [In particular, if tcp options such as timestamp might be used then
 > you really want to lower MSS a bit more to make room for these,
 > right?  So to be on the safe side, if you're lowering MSS due to
 > a link with MTU<1500 then you should probably use something like
 > MTU - 60, or perhaps to be really safe, leave room for maximal IP 
 > and TCP headers with MTU - 120 ]

rfc879
   To resolve the ambiguity in the TCP Maximum Segment Size option
   definition the following rule is established:

      THE TCP MAXIMUM SEGMENT SIZE IS THE IP MAXIMUM DATAGRAM SIZE MINUS
      FORTY.

It goes on to say that when tcp or ip options are used then the 
MSS has to be effectively reduced.  And in fact, this is what I
see going on in limited testing so far.

http://www.rfc-editor.org/cgi-bin/rfcsearch.pl lists the status of
rfc879 as UNKNOWN, but rfc1191 is listed as status DRAFT STANDARD and
it refers to above.

So, new wording for above should be
 More precisely, this sets the MSS option to the MTU of the outgoing
 link for this packet (so it must have already been routed) minus 40
 which is supposed to tell the sender to limit packet size (including
 TCP and IP headers, including any options they contain) to MSS+40.
 For more details see RFC 879 and 1191.


[Index of Archives]     [LARTC Home Page]     [Netfilter]     [Netfilter Development]     [Network Development]     [Bugtraq]     [GCC Help]     [Yosemite News]     [Linux Kernel]     [Fedora Users]
  Powered by Linux