0

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.

enter image description here

Is it possible to enable the same behavior in Linux systems too?

1 Answer 1

5

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 /proc/sys/net/ipv4/tcp_mtu_probing as follows:

  • 0 - Disabled (default)
  • 1 - Enabled only when PMTU black hole detected
  • 2 - Always enabled, using the initial MSS value of tcp_base_mss

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_mss and 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.

1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .