redzilla
All tools
Performance

MTU / MSS Calculator

Compute the effective MSS from the MTU: subtract the IP header, the TCP header and the overhead of every encapsulation you tick. You will see the byte-by-byte breakdown (MTU − each component).

IP version
TCP options

The base TCP header is 20 B. With timestamps (RFC 7323), common on Linux, it adds 12 B.

Encapsulations

Each MPLS label adds 4 B.

ESP tunnel varies with the cipher (outer IP + ESP + IV + padding + ICV). Typical ~73 B; adjust it to your suite.

redzilla.cl — mtu
 
Effective MSS
maximum TCP payload
Effective MTU
after encapsulation
Total overhead
IP + TCP + encap.
MSS
Eff. MTU
clamp

Byte-by-byte breakdown

ComponentBytesRunning total
How it is calculated · MTU, MSS and overhead

1. The MTU is the largest IP packet that fits in a frame. The MSS is the largest block of TCP data per segment.

2. MSS = MTU − IP header − TCP header − encapsulation overhead.

3. Headers: IPv4 = 20 B, IPv6 = 40 B, TCP = 20 B (+12 B with timestamps).

4. Encapsulation (B): VLAN 4, QinQ 8, PPPoE 8, MPLS 4/label, GRE 24, IPsec ESP tunnel ~73, VXLAN 50, WireGuard 60.

5. Example: 1500 − 20 − 20 = 1460; with PPPoE 1500 − 8 − 20 − 20 = 1452.

Runs locally in your browser · no sign-up · nothing leaves your browser.

How it works

The calculator starts from the link MTU (between 68 and 65535 bytes, with presets for 1500 Ethernet, 9000 jumbo, 1492 PPPoE and 1280 IPv6 minimum) and derives the effective MSS: the maximum TCP payload per segment. The formula is MSS = MTU − encapsulation − IP header − TCP header, with IPv4 = 20 B, IPv6 = 40 B and TCP = 20 B, plus 12 B if you enable the timestamps option (RFC 7323), common on Linux.

Each encapsulation is a toggle that subtracts its overhead: VLAN 802.1Q 4 B, QinQ (802.1ad) 8 B, PPPoE 8 B, GRE 24 B, VXLAN 50 B, WireGuard 60 B, MPLS 4 B per label (up to 6) and IPsec ESP in tunnel mode with an editable value (~73 B typical, since it depends on the cipher suite). The result includes the effective MTU after encapsulation, a byte-by-byte breakdown and the MSS clamping command (tcp adjust-mss) ready to copy.

Example: MSS on a typical PPPoE link

  1. Ethernet MTU: 1500 B; enable the PPPoE toggle, which subtracts 8 B of encapsulation.
  2. Effective MTU for IP: 1500 − 8 = 1492 B.
  3. Subtract the IPv4 and TCP headers: 1492 − 20 − 20 = 1452 B.
  4. The effective MSS is 1452 B, the classic clamping value on PPPoE routers.

Frequently asked questions

What is the MSS for an MTU of 1500?
With IPv4 and TCP without options, 1500 − 20 − 20 = 1460 bytes. With IPv6 it drops to 1440 (the IPv6 header is 40 B) and with TCP timestamps enabled another 12 B are subtracted. If PPPoE is also present, the classic value is 1452 with IPv4.
What happens if the MSS is larger than the path supports?
Packets that exceed the MTU of some hop get fragmented or, if they carry the DF bit, are dropped with an ICMP message. When a firewall blocks that ICMP you see the typical symptom: ping works but pages or large transfers stall. The usual fix is MSS clamping on the edge router.
What is the difference between MTU and MSS?
The MTU is the largest IP packet that fits in a frame on the link and includes the IP and TCP headers; the MSS is only the data portion of each TCP segment, without headers. That is why the MSS is always smaller: on standard Ethernet, MTU 1500 and MSS 1460.
How much overhead does a VXLAN or WireGuard tunnel add?
VXLAN adds 50 bytes (outer IP + UDP + VXLAN header + inner Ethernet) and WireGuard about 60 bytes (outer IP + UDP + its own encapsulation). That is why overlay networks usually raise the underlay MTU (for example to 1550 or to 9000 jumbo frames) so the MSS of the virtual machines is not reduced.
Was this tool useful?
Disclaimer We take great care to keep every tool accurate and review it thoroughly; even so, we can't guarantee it is free of errors or take responsibility for how the results are used. We recommend double-checking anything critical.
Found an error? Let us know →