Free Tool
MTU / MSS Calculator
Calculate the effective Maximum Segment Size (MSS) from your MTU, accounting for IP headers, TCP headers, and various network encapsulations.
Configuration
Overhead Breakdown
Understanding MTU and MSS
The Maximum Transmission Unit (MTU) is the largest packet size that can be sent over a network link without fragmentation. The Maximum Segment Size (MSS) is the largest amount of data in a single TCP segment — calculated as MTU minus IP header (20 bytes for IPv4, 40 bytes for IPv6) minus TCP header (20 bytes).
For a standard Ethernet connection with 1500-byte MTU: MSS = 1500 - 20 (IP) - 20 (TCP) = 1460 bytes. When encapsulation is added (VPN, VXLAN, GRE), the effective MTU decreases, reducing the MSS further.
Path MTU Discovery (PMTUD)
Path MTU Discovery is the process of determining the maximum packet size that can traverse a network path without fragmentation. It works by sending packets with the "Don't Fragment" (DF) bit set. If a router along the path has a smaller MTU, it sends back an ICMP "Fragmentation Needed" message.
You can test Path MTU on Linux with: ping -M do -s 1472 target.com (1472 + 28 bytes IP/ICMP header = 1500). Decrease the size until pings succeed to find the path MTU. On Windows, use: ping -f -l 1472 target.com.
Misconfigured MTU is a common cause of mysterious connection issues, especially with VPNs and tunnels. If TCP connections hang after the handshake or large packets get dropped, MTU mismatch is often the culprit. Flowtriq's PCAP capture feature can help diagnose these issues by capturing the actual packet sizes traversing your network.
MTU Troubleshooting Guide
Common MTU issues and how to diagnose them.
Cause: Path MTU Discovery (PMTUD) is broken. An intermediate router is dropping ICMP "Fragmentation Needed" messages.
Fix: Run ping -M do -s 1472 [destination] and decrease size until it works. Set MTU to that value + 28 (IP+ICMP headers).
Cause: Tunnel overhead is not accounted for. GRE adds 24 bytes, IPsec adds 50-73 bytes, VXLAN adds 50 bytes.
Fix: Set the tunnel interface MTU to 1500 minus the encapsulation overhead. Use the calculator above to find the exact value.
Cause: MSS clamping is not configured on your router/firewall. The TCP handshake uses small packets (fine), but data transfer uses full-size packets that get dropped.
Fix: Add MSS clamping: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Run tracepath [destination] to discover the path MTU to any host. It probes each hop and reports the minimum MTU along the path.
FAQ