Repository navigation
MTU Testing
MTU testing helps identify paths where packet size affects reliability or throughput.
This page distinguishes measured observations from general recommendations. A result from one carrier, device, or route is not a universal property of UDP or TCP.
Android phone, Android TV, and Windows v2.1.0 expose a configurable client tunnel MTU with a default of 1340.
The server TUN configuration is a separate setting. The documented server example uses 1369; do not assume the client and server values must always be changed together.
The v2.0.0 experiment forced client MTU 1340 and had no user-facing MTU selector. That describes the earlier experiment, not the v2.1.0 interface.
A phone-path sweep recorded:
| Client MTU | UDP observation |
|---|---|
| 1280 | Usable |
| 1340 | Usable |
| 1359 | Slow |
| 1365 | Unusable |
| 1369 | Unusable |
TCP remained usable at every tested MTU in that sweep and was fastest at 1280.
These are observations from the tested path. They do not establish:
- That TCP is always faster.
- That UDP always fails above 1340.
- That 1280 is the best value for every network.
- That a successful connection proves large transfers will work.
See the repository's benchmark material.
- Record the client/server versions, device, network, transport, and current MTU.
- Start with MTU 1340.
- Test UDP only.
- Disconnect, change one setting, and reconnect.
- Repeat the same workload.
- Test TCP only using the same server, network, and workload.
- Repeat promising settings to check consistency.
Use multiple workloads:
- Small interactive requests.
- A sustained download.
- An upload.
- The application that originally failed.
- Reconnect after a network change.
Avoid comparing different servers, changing ports and MTU simultaneously, or running competing transfers during the same measurement.
| Client/server | Network | Transport | MTU | Connect | Download | Upload | Stalls/loss | Notes |
|---|
Record units and test duration. Distinguish application payload throughput from tunnel traffic counters.
This suggests packet size or encapsulation overhead may be involved, but it does not prove a single cause. Check the path, logs, and server configuration before drawing a conclusion.
Check UDP firewall rules and reachability as well as MTU. An unreachable UDP listener is not an MTU measurement.
Ping and bulk throughput measure different behavior. On QUIC, the displayed ping is smoothed QUIC RTT; do not compare it blindly with a differently implemented TCP metric.
Mobile scheduling, congestion, radio conditions, VPS load, and route changes can affect the result. Repeat tests and report the range rather than only the best run.
- Keep a working configuration available.
- Do not make unrelated firewall or routing changes during an MTU sweep.
- Do not disable certificate verification to complete a test.
- Treat profiles and screenshots containing credentials as secrets.
- Do not generalize Android/Windows controls to iOS without checking that build.
For deployment and buffer settings, see the server guide. For broader diagnosis, see Troubleshooting.