1753848 Members
8601 Online
108807 Solutions
New Discussion юеВ

Re: TCP Segment size

 
SOLVED
Go to solution
rick jones
Honored Contributor

Re: TCP Segment size

"All" stations in the same broadcast domain must have the same MTU. If your lan2 interface is connected to a switch (or system) that does not also have a 9000 byte MTU, what will happen is:

1) IP on your system fragments based on the MTU of lan2.

2) the "lan2" interface sends a 9000+ byte frame to the "link peer" (fancy, pithy way to say "the station at the other end of the link")

3) If the link peer also uses a 9000 byte MTU, happiness and joy, but if the link-peer does not, it will not receive the frame down at "layer 2" of the stack (http://www.isc.org/files/imagecache/product_mid/9layer.thumb_.png).

So, it can look like a abyss.

Now, here is where TCP segment size *can* enter the discussion If all the communications are TCP, and your lan2 interface is the only one with the larger MTU, then the TCP MSS exchange will paper-over the misconfiguration - the remote system(s) will send an MSS option based on their (presumably) 1500 byte MTU. Your system will send one based on its 9000 byte MTU. The smaller of the two is what is used. That means that even though your lan2 was configured with an MTU of 9000 bytes, the MSS used by TCP is such that it never gets that large - and so the frames sent will still be received by the link peer and go on their merry way.

there is no rest for the wicked yet the virtuous have no pillows
rick jones
Honored Contributor

Re: TCP Segment size

Some other considerations:

*) various firewalls may not pass IP datagram fragments

*) depending on the implementation of traceroute, (check the documentation/manpage) saying 1500 may not be the total size of the datagram and it may still be fragmented. If "datagram" here is the UDP datagram then the 1500 bytes will (probably - at least based on my read of a *linux* traceroute manpage) include the UDP header, but not the IP header (20 bytes for IPv4) and so will cause the message sent by traceroute to be fragmented when the IP MTU (against which the IP header counts) is 1500 bytes.
there is no rest for the wicked yet the virtuous have no pillows
RafS
HPE Pro

Re: TCP Segment size

Hi Rick,
I appreciate your help.

"So, it can look like a abyss."
Perfectly !

"Now, here is where TCP segment size *can* enter the discussion If all the communications are TCP
...
the frames sent will still be received by the link peer and go on their merry way."
It doesn't happen, may be because traceroute doesn't use TCP. I'm right ?

As you could understand, I'm not a network expert.
I just noticed a different bahaviour from lan0/1 and lan2, so I want to see if it is possible to identify/solve the problem from OS side or I have to involve network specialist.
As I wrote previously, I had the same problem when lan2 had MTU=1500 and datagram lenght = 1500 bytes.
Seems that, only for lan2, datagrams can't be fragmented.

*) various firewalls may not pass IP datagram fragments
There aren't firewall between source and target

Thanks a lot,
Raffaele

rick jones
Honored Contributor
Solution

Re: TCP Segment size

Traceroute does not normally use TCP.

To what is the lan2 interface connected? Not everything has a 1500 byte MTU even, so if the "link peer" or something else in that broadcast domain has a smaller MTU, you have the same issues as when one station has 9000 and another 1500 - the "formula" (as it were) is the same, only the constants are different.
there is no rest for the wicked yet the virtuous have no pillows
RafS
HPE Pro

Re: TCP Segment size

Thanks a lot !
Raffaele