Understanding GoSpeed Tests

gospeed runs up to 9 network tests that measure different dimensions of your connection quality. This guide explains what each test measures, when it matters, the key terminology involved, and how the A–F grading system evaluates your results.

Contents

  1. 1. Latency
  2. 2. Path MTU
  3. 3. TCP Throughput
  4. 4. Bufferbloat
  5. 5. UDP Throughput & Packet Loss
  6. 6. Jitter
  7. 7. DNS Resolution
  8. 8. TCP Connect
  9. 9. Bidirectional Throughput

Latency TCP

What It Measures

Latency measures the round-trip time (RTT) — how long it takes for a small message to travel from the client to the server and back. gospeed sends 20 TCP echo probes and records the time for each, then reports the minimum, average, 95th percentile, and maximum values in milliseconds.

Why It Matters

Key Terminology

Grading

The latency grade is based on the worse of average and P95 (95th percentile) latency. This ensures that connections with low average but high tail latency — which cause intermittent lag spikes — are not misleadingly graded as excellent.

GradeThreshold (Avg or P95)What It Means
A< 20 msExcellent — imperceptible delay for real-time apps
B< 50 msGood — comfortable for gaming and video calls
C< 100 msFair — noticeable lag in interactive use, fine for browsing
D< 200 msPoor — voice calls start to feel awkward, gaming is impaired
F≥ 200 msVery poor — typical of satellite links or severely congested paths

These thresholds align with ITU-T G.114, which recommends < 150 ms one-way delay for voice. The grade uses the worse of average and P95 because tail latency matters — a connection averaging 15 ms but spiking to 200 ms at P95 will cause noticeable lag in real-time applications. Google SRE practices similarly emphasize P95/P99 over averages for latency SLOs.

Path MTU UDP

What It Measures

Path MTU discovery determines the Maximum Transmission Unit — the largest packet size (in bytes) that can traverse the entire network path between client and server without being fragmented. gospeed sends UDP packets with the Don't Fragment (DF) bit set at decreasing sizes until one gets through.

Why It Matters

Key Terminology

Grading

GradeThresholdWhat It Means
A≥ 1500 bytesStandard Ethernet MTU — no overhead or restriction
B≥ 1400 bytesSlight reduction, common with VPNs (WireGuard, IPsec)
C≥ 1200 bytesNotable reduction, double encapsulation or restrictive network
D≥ 576 bytesMinimum MTU guaranteed by IPv4 spec — high fragmentation risk
F< 576 bytesBelow IPv4 minimum — severely broken path

1500 bytes is the standard Ethernet MTU and the baseline expectation. 576 bytes is the minimum MTU that all IPv4 hosts must support (RFC 791). Anything below that indicates a fundamentally broken network path.

TCP Throughput TCP

What It Measures

This test measures the maximum sustained bandwidth achievable over TCP. gospeed opens multiple parallel TCP streams (default: 4) and pushes data for a configurable duration, using BDP-aware buffer sizing to ensure the pipe is fully saturated. The result is reported in Mbps or Gbps.

Why It Matters

Key Terminology

Grading

GradeThresholdWhat It Means
A≥ 100 MbpsExcellent — handles 4K streaming, large downloads, and multi-user households
B≥ 50 MbpsGood — comfortable for most workloads including HD streaming
C≥ 25 MbpsAdequate — single 4K stream works, multi-user gets tight
D≥ 10 MbpsLimited — HD streaming possible, large transfers are slow
F< 10 MbpsInsufficient — basic browsing only, video calls may struggle

100 Mbps is the modern baseline for a quality broadband connection. The FCC defines 25 Mbps as the threshold for "broadband," placing it at grade C — functional but below today's expectations.

Bufferbloat TCP + UDP

What It Measures

Bufferbloat measures how much your latency increases under load. gospeed saturates the connection with TCP upload traffic across multiple streams while simultaneously sending latency probes on the control channel. The result is expressed as RPM (Round-trips Per Minute) — how many round-trips the connection can complete in 60 seconds while under full load.

Why It Matters

Key Terminology

Grading

GradeThresholdWhat It Means
A≥ 400 RPMExcellent — loaded latency ≤ 150 ms; well-managed queues
B≥ 200 RPMGood — loaded latency ≤ 300 ms; minor bufferbloat
C≥ 100 RPMFair — loaded latency ≤ 600 ms; noticeable lag under load
D≥ 50 RPMPoor — loaded latency ≤ 1.2 s; gaming and calls break down
F< 50 RPMSevere — loaded latency > 1.2 s; connection feels unusable under load

Apple's responsiveness metric considers ≥ 400 RPM as "high" quality. At < 50 RPM, each round-trip takes over a second under load — the connection is effectively unusable for interactive tasks while any large transfer is in progress.

UDP Throughput & Packet Loss UDP

What It Measures

UDP throughput measures the maximum bandwidth achievable over UDP, along with packet loss and packet reordering statistics. Unlike TCP, UDP has no congestion control or retransmission, so this test reveals the raw capacity and stability of the network path. gospeed caps the UDP send rate based on TCP throughput results to avoid overwhelming the link.

Why It Matters

Key Terminology

Grading

The UDP test grade is based on the worse of packet loss and throughput. Both metrics must be good for the test to receive a high grade — matching the ITU-T Y.1541 and Y.1564 "all must pass" philosophy where every KPI must meet its threshold independently.

GradePacket LossThroughputWhat It Means
A< 0.1%≥ 100 MbpsExcellent — near-zero loss with ample bandwidth for any real-time application
B< 0.5%≥ 50 MbpsGood — imperceptible loss, multiple simultaneous streams supported
C< 1.0%≥ 25 MbpsFair — occasional audio glitches or limited bandwidth for HD streams
D< 2.5%≥ 10 MbpsPoor — voice calls degrade, single-stream real-time use only
F≥ 2.5%< 10 MbpsSevere — real-time communication is unreliable

The grade uses the worse of both metrics because a connection with zero loss but negligible throughput (or vice versa) is not truly healthy. This approach follows ITU-T Y.1541 which requires all performance parameters to meet their class thresholds independently, and RFC 2544 which evaluates throughput and frame loss as separate pass/fail criteria.

Jitter UDP

What It Measures

Jitter measures the inter-packet delay variation — how consistently packets arrive compared to their expected timing. gospeed calculates jitter using the RFC 3550 algorithm: a running average of the absolute difference between expected and actual inter-arrival times.

Why It Matters

Key Terminology

Grading

GradeThresholdWhat It Means
A< 5 msExcellent — minimal buffering needed, crystal-clear VoIP
B< 10 msGood — small jitter buffer handles it, no perceptible impact
C< 20 msFair — jitter buffer adds noticeable delay, occasional artifacts
D< 50 msPoor — large jitter buffer required, real-time apps struggle
F≥ 50 msSevere — real-time audio/video is unreliable

Cisco recommends < 30 ms jitter for VoIP. The grade A threshold of 5 ms ensures that even without a jitter buffer, packet timing variations are imperceptible. At 50 ms+, even aggressive jitter buffers cannot fully compensate.

DNS Resolution UDP/53

What It Measures

This test measures how quickly your configured DNS resolver responds to queries. gospeed resolves the server's hostname multiple times and records the response time in milliseconds. Fast DNS is critical because every new connection starts with a DNS lookup.

Why It Matters

Key Terminology

Grading

GradeThresholdWhat It Means
A< 10 msExcellent — local or nearby resolver, near-instant lookups
B< 30 msGood — fast public resolver or well-configured ISP DNS
C< 75 msFair — adds noticeable delay to first connections
D< 200 msSlow — consider switching to a faster DNS resolver
F≥ 200 msVery slow — every new connection is delayed by hundreds of milliseconds

Modern DNS resolvers (Cloudflare, Google) typically respond in under 10 ms from nearby PoPs. At 200 ms+, DNS alone adds a noticeable pause every time you visit a new website or connect to a new service.

TCP Connect TCP

What It Measures

TCP Connect measures the time it takes to establish a TCP connection — the three-way handshake (SYN → SYN-ACK → ACK). This is the minimum overhead before any data can flow and is measured independently from application-level latency.

Why It Matters

Key Terminology

Grading

GradeThresholdWhat It Means
A< 50 msExcellent — fast handshake, minimal connection overhead
B< 100 msGood — acceptable for most applications
C< 200 msFair — connection setup is noticeable, especially with TLS
D< 500 msSlow — each new connection adds significant delay
F≥ 500 msVery slow — connections time out frequently, possible middlebox interference

TCP connect time is roughly 1x RTT in the best case (SYN + SYN-ACK). The thresholds are wider than latency because connect time can include server-side SYN queue processing. At 500 ms+, many applications will hit their connection timeout defaults.

Bidirectional Throughput TCP

What It Measures

The bidirectional test measures simultaneous upload and download throughput. Unlike the standard TCP test which measures one direction at a time, this test runs both directions concurrently using multiple parallel streams in each direction. The results show upload and download speeds achieved under full-duplex load.

Why It Matters

Key Terminology

Grading

GradeThresholdWhat It Means
A≥ 100 MbpsExcellent — strong throughput maintained in both directions simultaneously
B≥ 50 MbpsGood — comfortable for concurrent uploads and downloads
C≥ 25 MbpsAdequate — some contention visible but workable
D≥ 10 MbpsLimited — full-duplex workloads are constrained
F< 10 MbpsInsufficient — significant degradation under bidirectional load

Graded on the same throughput scale as TCP. The grade is based on the slower direction (whichever of upload or download has lower throughput), ensuring the grade reflects the weakest link under full-duplex load. Comparing bidirectional results to single-direction TCP results reveals how much throughput is lost to contention — a large drop indicates the link or router cannot handle full-duplex traffic efficiently.