The Transmission Control Protocol (TCP) Maximum Segment Size (MSS) Adjustment feature enables the configuration of the maximum
segment size for transient packets that traverse a router, specifically TCP segments with the SYN bit set. Use the ip tcp
adjust-mss command in interface configuration mode to specify the MSS value on the intermediate router of the SYN packets
to avoid truncation.
When a host (usually a PC) initiates a TCP session with a server, it negotiates the IP segment size by using the MSS option
field in the TCP SYN packet. The value of the MSS field is determined by the MTU configuration on the host. The default MSS
value for a PC is 1500 bytes.
The PPP over Ethernet (PPPoE) standard supports an MTU of only 1492 bytes. The disparity between the host and PPPoE MTU size
can cause the router in between the host and the server to drop 1500-byte packets and terminate TCP sessions over the PPPoE
network. Even if the path MTU (which detects the correct MTU across the path) is enabled on the host, sessions may be dropped
because system administrators sometimes disable the ICMP error messages that must be relayed from the host in order for path
MTU to work.
The ip tcp adjust-mss command helps prevent TCP sessions from being dropped by adjusting the MSS value of the TCP SYN packets.
The ip tcp adjust-mss command is effective only for TCP connections passing through the router.
In most cases, the optimum value for the max-segment-size argument of the ip tcp adjust-mss command is 1452 bytes. This value
plus the 20-byte IP header, the 20-byte TCP header, and the 8-byte PPPoE header add up to a 1500-byte packet that matches
the MTU size for the Ethernet link.
Note
|
TCP MSS adjustment-based traffic is always software switched.
|
Supported Interfaces
TCP MSS Adjust is supported only on the following interfaces: