Configuring TCP path MTU discovery

About TCP path MTU discovery

TCP path MTU discovery (in RFC 1191) discovers the path MTU between the source and destination ends of a TCP connection. The device uses the path MTU to calculate the MSS to avoid IP fragmentation. The path MTU uses an aging mechanism to ensure that the source device can increase the path MTU when the minimum link MTU on the path increases.

TCP path MTU discovery works as follows:

  1. A TCP source device sends a packet with the Don't Fragment (DF) bit set.

  2. A router discards the packet that exceeds the MTU of the outgoing interface and returns an ICMP error message. The error message contains the MTU of the outgoing interface.

  3. Upon receiving the ICMP message, the TCP source device calculates the current path MTU of the TCP connection.

  4. The TCP source device sends subsequent TCP segments that each are smaller than the MSS (MSS = path MTU – IP header length – TCP header length).

If the TCP source device still receives ICMP error messages when the MSS is smaller than 32 bytes, the TCP source device will fragment packets.

An ICMP error message received from a router that does not support RFC 1191 has the MTU of the outgoing interface set to 0. Upon receiving the ICMP message, the TCP source device selects the path MTU smaller than the current path MTU from the MTU table as described in RFC 1191. Based on the selected path MTU, the TCP source device calculates the TCP MSS. The MTU table contains MTUs of 68, 296, 508, 1006, 1280, 1492, 2002, 4352, 8166, 17914, 32000, and 65535 bytes. Because the minimum TCP MSS specified by the system is 32 bytes, the actual minimum MTU is 72 bytes.

The aging mechanism of the path MTU is as follows:

Prerequisites

Make sure all devices on a TCP connection are enabled to send ICMP error messages by using the ip unreachables enable command.

Procedure

  1. Enter system view.

    system-view

  2. Enable TCP path MTU discovery.

    tcp path-mtu-discovery [ aging age-time | no-aging ]

    By default, TCP path MTU discovery is disabled.