[e2e] Question on MTU
Joe Touch
touch at ISI.EDU
Thu Apr 21 13:59:54 PDT 2005
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
See RFC1122 Section 4.2.2.6 on calculating the MSS advertised in the TCP
MSS option. Condensed from that section:
The eff.snd.MSS takes options at both IP and TCP layers
into account - this is the size of the largest segment
actually sent.
The MSS value sent in the MSS option must be <= MSS_R - 20,
where MSS_R is from GET_MAXSIZES in sec 3.4.
Sec 3.4 refers to 3.3.3, which defines:
MMS_S = EMTU_S - <IP header size>
and EMTU_S must be less than or equal to the MTU of the network
interface corresponding to the source address of the datagram.
Note that <IP header size> in this equation will be 20, unless
the IP reserves space to insert IP options for its own purposes
in addition to any options inserted by the transport layer.
I.e., IP options ARE accounted for in the advertised MSS.
As you noted, intermediate headers (shims like IPsec and HIP) are harder
to handle because they aren't treated as options, and may not
necessarily be known to either IP or TCP. My understanding is that most
implementations adjust the IP MSS accordingly, so it gets passed up to
TCP as per secs 3.3.3 and 3.4 of 1122 above.
Joe
David Borman wrote:
>
> On Apr 21, 2005, at 11:28 AM, Joe Touch wrote:
>
>> MSS usually refers to a transport protocol, e.g., TCP, and denotes the
>> max payload size there too. It is also relative to the network (IPv4,
>> IPv6) protocol _and_ link layer used.
>>
>> And just as link layer overhead sizes vary, so do network layer overhead
>> sizes (minimums of 20 for IPv4, 40 for IPv6 - larger if options are
>> included, e.g., 48 for IPv6 with jumbogram option).
>
>
> But the advertised MSS in the TCP MSS option should not be adjusted to
> reflect any options or intermediary headers, just the fixed IP and TCP
> header sizes; 40 bytes for IPv4/TCP, and 60 bytes for IPv6/TCP. When
> the sender generates the packet, he is responsible for reducing the TCP
> data to allow room for any additional options or headers.
>
> -David Borman
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFCaBRKE5f5cImnZrsRAuVHAJ9eaIBHKXMZxhzcMgldOvFVphYRIACffqGL
qWTwK4RCNc/QWYLQxi4tYOU=
=SChT
-----END PGP SIGNATURE-----
More information about the end2end-interest
mailing list