Table Of Contents
How to Configure TCP MSS Adjustment
Setting the MTU on the Local Hosts
Configuration Examples for TCP MSS Adjustment
TCP MSS Adjustment Configuration: Example
Feature Information for TCP MSS Adjustment
TCP MSS Adjustment
First Published: October 15, 2001Last Updated: June 19, 2006The TCP MSS Adjustment feature enables the configuration of the maximum segment size (MSS) for transient packets that traverse a router, specifically TCP segments in the SYN bit set, when PPP over Ethernet (PPPoE) is being used in the network. PPPoE truncates the Ethernet maximum transmission unit (MTU) 1492, and if the effective MTU on the hosts (PCs) is not changed, the router in between the host and the server can terminate the TCP sessions. The ip tcp adjust-mss command specifies the MSS value on the intermediate router of the SYN packets to avoid truncation.
Finding Feature Information in This Module
Your Cisco IOS software release may not support all of the features documented in this module. To reach links to specific feature documentation in this module and to see a list of the releases in which each feature is supported, use the "Feature Information for TCP MSS Adjustment" section.
Finding Support Information for Platforms and Cisco IOS and Catalyst OS Software Images
Use Cisco Feature Navigator to find information about platform support and Cisco IOS and Catalyst OS software image support. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Contents
•
How to Configure TCP MSS Adjustment
•
Configuration Examples for TCP MSS Adjustment
•
Feature Information for TCP MSS Adjustment
How to Configure TCP MSS Adjustment
This section contains the following procedures:
•
Setting the MTU on the Local Hosts (required)
•
Verifying TCP MSS Adjustments (optional)
Setting the MTU on the Local Hosts
Perform this task to set the MTU on the local hosts. Network Address Translation (NAT) does not have to be configured to specify the MTU.
SUMMARY STEPS
1.
enable
2.
configure terminal
3.
interface type number
4.
ip tcp adjust-mss max-segment-size
5.
ip mtu bytes
6.
end
DETAILED STEPS
Verifying TCP MSS Adjustments
In the following examples, there are outputs that assist in verifying the TCP MSS adjustments.
Command Configured on Single Interface
Step 1
Configure the interface adjustment value.
interface ethernet1/1ip tcp adjust 500Step 2
Telnet from router A to router C, with B having the MSS adjustment configured.
telnet00:09:15:%SYS-5-CONFIG_I: Configured from console by consolenet 10.0.1.3Trying 10.0.1.3... OpenStep 3
Observe the debug output from router C.
*Mar 10 14:49:45.045: tcp0: I LISTEN 172.16.0.1:11001 10.0.1.3:23 seq 2012812244OPTS 4 SYN WIN 4128*Mar 10 14:49:45.045: TCP0: state was LISTEN -> SYNRCVD [23 -> 172.16.0.1(11001)]*Mar 10 14:49:45.045: TCP0: Connection to 172.16.0.1:11001, received MSS 500,MSS is 500*Mar 10 14:49:45.045: TCP: sending SYN, seq 1091096877, ack 2012812245The MSS gets adjusted to 500 as configured.
Command Configured on Two Interfaces
Step 1
Configure the command on both the interfaces using different values.
interface Ethernet1/1ip address 172.17.0.2 255.0.0.0ip tcp adjust-mss 505duplex halfinterface Ethernet1/3ip address 172.18.1.1 255.255.255.0ip tcp adjust-mss 500duplex halfStep 2
Telnet from router A to router C.
telnet 10.0.1.3Trying 10.0.1.3... OpenStep 3
Observe the debug output from router A.
06:06:49: TCP: sending SYN, seq 979045471, ack 006:06:49: TCP0: Connection to 10.0.1.3:23, advertising MSS 536Step 4
Observe the debug output from router C.
I LISTEN 172.16.0.1:11003 10.0.1.3:23 seq 979045471OPTS 4 SYN WIN 4128TCP0: state was LISTEN -> SYNRCVD [23 -> 172.16.0.1(11003)]TCP0: Connection to 172.16.0.1:11003, received MSS 500, MSS is 500The TCP MSS is successfully adjusted to 500.
Command Used with Process Switching
Step 1
Verify the configuration of the TCP MSS adjustment.
Router# show running-config interface ethernet1/1Building configuration...Current configuration: 95 bytes!interface ethernet1/1ip address 10.0.0.2 255.0.0.0ip tcp adjust-mss 505duplex halfStep 2
Telnet from router A to router C.
telnet 10.0.1.3Trying 10.0.1.3...TCP: sending SYN, seq 886170752, ack 0TCP0: Connection to 10.0.1.3:23, advertising MSS 536tcp0: O CLOSED 10.0.1.3:23 172.16.0.1:11008 seq 886170752OPTS 4 SYN WIN 4128Step 3
Observe the debug output on router C.
tcp0: I LISTEN 172.16.0.1:11008 10.0.1.3:23 seq 886170752OPTS 4 SYN WIN 4128TCP0: state was LISTEN -> SYNRCVD [23 -> 172.16.0.1(11008)]TCP0: Connection to 172.16.0.1:11008, received MSS 505, MSS is 505The TCP MSS value gets adjusted to the configured value of 505.
Configuration Examples for TCP MSS Adjustment
This section provides the following example:
•
TCP MSS Adjustment Configuration: Example
TCP MSS Adjustment Configuration: Example
The following example shows how to configure one interface with CEF switching turned on:
interface ethernet1/1ip tcp adjust 500The following example shows how to configure two interfaces:
interface ethernet1/1ip address 10.0.0.2 255.0.0.0ip tcp adjust-mss 505duplex halfinterface ethernet1/3ip address 10.0.1.1 255.255.255.0ip tcp adjust-mss 500duplex halfAdditional References
The following sections provide references related to TCP MSS Adjustment.
Related Documents
Related Topic Document TitleWAN commands: complete command syntax, command mode, command history, defaults, usage guidelines, and examples
Cisco IOS Wide-Area Networking Command Reference, Release 12.2SR
TCp configuration information: Configuring TCP Performance Parameters, TCP Window Scaling, TCP Congestion Avoidance, TCP Explicit Congestion Notification
TCP section of the Cisco IOS IP Application Services Configuration Guide, Release 12.4.
Standards
MIBs
MIBs MIBs LinkNone
To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:
RFCs
Technical Assistance
Command Reference
This section documents one modified command only.
ip tcp adjust-mss
To adjust the maximum segment size (MSS) value of TCP SYN packets going through a router, use the ip tcp adjust-mss command in interface configuration mode. To return the MSS value to the default setting, use the no form of this command.
ip tcp adjust-mss max-segment-size
no ip tcp adjust-mss max-segment-size
Syntax Description
Command Default
The MSS is determined by the originating host.
Command Modes
Interface configuration
Command History
Usage Guidelines
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 maximum transmission unit (MTU) configuration on the host. The default MSS value for a PC is 1500 bytes.
The PPP over Ethernet (PPPoE) standard supports a 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 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.
If you are configuring the ip mtu command on the same interface as the ip tcp adjust-mss command, it is recommended that you use the following commands and values:
•
ip tcp adjust-mss 1452
•
ip mtu 1492
Examples
The following example shows the configuration of a PPPoE client with the MSS value set to 1452:
vpdn enableno vpdn logging!vpdn-group 1request-dialinprotocol pppoe!interface Ethernet0ip address 192.168.100.1.255.255.255.0ip tcp adjust-mss 1452ip nat inside!interface ATM0no ip addressno atm ilmi-keepalivepvc 8/35pppoe client dial-pool-number 1!dsl equipment-type CPEdsl operating-mode GSHDSL symmetric annex Bdsl linerate AUTO!interface Dialer1ip address negotiatedip mtu 1492ip nat outsideencapsulation pppdialer pool 1dialer-group 1ppp authentication pap callinppp pap sent-username sohodyn password 7 141B1309000528!ip nat inside source list 101 Dialer1 overloadip route 0.0.0.0.0.0.0.0 Dialer1access-list permit ip 192.168.100.0.0.0.0.255 anyRelated Commands
Feature Information for TCP MSS Adjustment
Table 1 lists the release history for this feature.
Not all commands may be available in your Cisco IOS software release. For release information about a specific command, see the command reference documentation.
Use Cisco Feature Navigator to find information about platform support and software image support. Cisco Feature Navigator enables you to determine which Cisco IOS and Catalyst OS software images support a specific software release, feature set, or platform. To access Cisco Feature Navigator, go to http://www.cisco.com/go/cfn. An account on Cisco.com is not required.
Note
Table 1 lists only the Cisco IOS software release that introduced support for a given feature in a given Cisco IOS software release train. Unless noted otherwise, subsequent releases of that Cisco IOS software release train also support that feature.
Any Internet Protocol (IP) addresses used in this document are not intended to be actual addresses. Any examples, command display output, and figures included in the document are shown for illustrative purposes only. Any use of actual IP addresses in illustrative content is unintentional and coincidental.
© 2005-2006 Cisco Systems, Inc. All rights reserved.


