On OS X I noticed that for packets which are not ACKed, the system retransmits them with reduced packet size. This can be seen in the image below.
Is it possible to enable the same behavior in Linux systems too?
Server Fault is a question and answer site for system and network administrators. It only takes a minute to sign up.Sign up to join this community
That looks like it could be MTU probing behaviour. To quote from an article I wrote about Path MTU discovery:
MTU Probing works by sending small packets initially and if they are acknowledged successfully, gradually increasing the packet size until the correct Path MTU can be found.
In Linux, we can modify the value of
- 0 - Disabled (default)
- 1 - Enabled only when PMTU black hole detected
- 2 - Always enabled, using the initial MSS value of
A value of 1 will use the normal PMTUD process, however if packets are not being acknowledged, MTU Probing will kick in and begin retransmitting packets with the MSS set to the value of
tcp_base_mss(default 512 Bytes). Assuming those packets are received by the end host and acknowledged successfully, the packet size will be increased further and the process repeated. The advantage of this method of probing is that it only comes into play when you start sending retransmissions, so all other traffic leading up to that point is sent using the default MTU. The main drawbacks are the increased amount of retransmitted traffic and the fact that it can take a little while to wait for the retransmissions with the higher MTU to occur.
A value of 2 simply forces MTU Probing at all times, so all packets will initially be sent with an MSS equal to
tcp_base_mssand gradually increased in size if they are acknowledged. With this method, you won't have to wait for retransmissions before MTU Probing kicks in, however ALL outbound packets will initially be very small making this method of probing much less efficient than option 1.