📡 Network Testing Guide

How iPerfman Tests Work

A plain-language explanation of what iperf3 measures, how the test is structured, and how to read your results.

Architecture

Client → Server model

iperf3 always needs two endpoints: a server waiting for connections and a client initiating the test. Your iPhone is always the client. The server at 185.185.33.209:443 is permanently running and ready.

📱
iPhone
iperf3 client
iPerfman app
↓ Download
↑ Upload
🖥️
NX Server
185.185.33.209
Port 443
Internet
🌐
Carrier
Swisscom / MF
MUCHO / NX
💡

Why port 443? Most mobile carriers don't throttle or prioritise HTTPS traffic differently, and port 443 is rarely blocked by firewalls — making it the most representative port for real-world throughput.

Direction

Download vs Upload — Reverse mode

⬇️ Download -R flag

The server pushes data to the iPhone. The iPhone measures how fast it can receive. This is reverse mode — the client initiates the connection but the server does the sending. Matches real-world browsing, streaming, and app downloads.

⬆️ Upload default

The iPhone pushes data to the server. Measures uplink capacity — relevant for video calls, cloud backups, and sending large files. Typically lower than download on mobile networks.

Test Structure

30-second test with 5-second omit warmup

TCP connections take a few seconds to ramp up to full speed (TCP slow-start). The omit (-O 5) flag discards the first 5 seconds so the final result reflects steady-state throughput, not the ramp-up noise.

Timeline
Omit (5s warmup)
Measured test — 30 seconds
0s → 5s
5s10s15s20s25s30s35s

Each second of the measured window produces one interval line in the log. The sparkline graph in the run cards shows this per-second throughput — you can see how stable (or spiky) the connection was throughout the test.

Parallel Streams

Why 10 streams? (-P 10)

A single TCP stream is limited by the TCP congestion window — on high-latency or lossy mobile links it often can't saturate the available bandwidth. Using 10 parallel streams opens 10 simultaneous TCP connections, each probing the network independently. Their combined throughput reflects what the link can actually deliver.

[23]
11.9 Mbps
[25]
77.9 Mbps
[27]
115 Mbps
[29]
19.2 Mbps
[31]
17.1 Mbps
[33]
54.1 Mbps
[35]
38.8 Mbps
[37]
18.9 Mbps
[39]
15.4 Mbps
[41]
18.5 Mbps
SUM
386 Mbps

↑ Real data from the sample log. Notice streams vary wildly — the SUM is what matters.

Metrics

What each number means

Bitrate (Sender)
386 Mbps
Total throughput averaged over the 30s measured window. This is your headline speed. Use the sender value — it's what the network actually delivered.
📦
Transfer
1.35 GB
Total data moved during the test. Useful sanity check: Transfer ≈ Bitrate × 30s ÷ 8.
🔁
Retransmits
934
TCP segments that had to be re-sent due to loss or congestion. Higher = worse link quality. On mobile, some retransmits are normal; thousands indicate instability.
📈
Peak Mbps
525 Mbps
Highest single-second SUM throughput during the test. Shows burst capacity of the link.
〰️
Avg Mbps
383 Mbps
Mean of all per-second SUM intervals. Close to sender bitrate — divergence indicates unstable periods in the middle of the test.
🌐
Local IP
10.28.167.180
The IP assigned to the iPhone by the carrier (carrier-grade NAT). Confirms the test ran directly over the SIM — not WiFi (192.168.x.x) or hotspot (172.20.10.x).
Interpretation

Reading your results

Metric Good Acceptable Investigate
Download (5G) > 300 Mbps 100–300 Mbps < 100 Mbps
Download (4G) > 50 Mbps 20–50 Mbps < 20 Mbps
Retransmits / GB < 300 300–800 > 800
Peak / Avg ratio < 1.3× 1.3–2× > 2× (very spiky)
Sparkline shape Flat / rising Moderate variation Huge spikes / drops
Running a Test

Step-by-step from iPerfman app

  1. Set server address to 185.185.33.209 and port 443
  2. Choose direction: Download (reverse mode) for most tests — matches real-world usage
  3. Additional parameters: Streams = 10, Duration = 30s, Omit = 5s, Verbose logfile = ON
  4. Run the test — wait ~35 seconds for completion (5s omit + 30s test)
  5. Share the log — tap Share → Save to Files or copy to clipboard
  6. Open the dashboard in Safari on the iPhone → go to 📡 iPerfman tab
  7. Upload the .txt file — tap 📂 Upload .txt file → select the log → pick provider → Save Run
⚠️

For accurate carrier comparison: always test at the same location and time of day. Mobile throughput varies with tower load, signal strength, and time. Run each carrier back-to-back with the same settings.