StepCodex FeaturedStepCodex Reviews
Notion Docs

Pick a test node: HTTP estimates up/down in-browser, plus copy/paste iPerf3 CLI hints (browsers cannot speak native iPerf3). Free online tool, no login, no sign-up.

LocalPersonal data security

Loading Tool Engine

Usage Guide & Tech FAQ

Usage Guide

  1. Defaults: 50 MB download/upload payloads. The node preset auto-selects from your public IP (Cloudflare cdn-cgi/trace + 1.1.1.1, then geojs.io, then ipapi.co). Changing the node dropdown disables further auto-override.
  2. Use grouped presets: China ISP & regions (Telecom/Unicom/Mobile, mainland, Hong Kong, Taiwan (China)); International (NA/EU/APAC + Singapore/Japan); General (default Cloudflare, US/EU httpbin, EU OVH-only, etc.).
  3. Set download and upload sizes independently (1–200 MB). Larger payloads stabilize averages but take longer; monolithic Blob fallbacks can use ~similar RAM—prefer Chrome/Edge for streaming upload at large sizes.
  4. Download test: tries node-specific HTTP GET candidates in order: exact-byte Cloudflare __down?bytes=N, npm mirror tarballs / CacheFly .test / OVH .dat with early stop after enough bytes, httpbin /bytes/n, then fallbacks. Uses streaming reads and validates minimum bytes received vs target.
  5. Upload test: prefers fetch + ReadableStream body to speed.cloudflare.com/__up (Chromium duplex half); then fetch + Blob, then XHR with upload.onprogress. httpbin nodes POST to /post up to ~12 MB, otherwise or on failure fallback to Cloudflare.
  6. Download then upload runs sequentially and resets the live gauge peak between phases. Controls lock while a run is active.
  7. Live UI: headline Mbps ≈ (bytes × 8) / seconds / 1e6; arc + bar show progress vs target; gauge full-scale ramps with observed peak (up to ~2000 Mbps) to keep the needle meaningful.
  8. For native iPerf3, copy iperf3 -c <host> -p <port> from the panel; append -R for download (server → client). Public hosts may rotate ports (5201–5210) or rate-limit.
  9. Methodology tip: same node + payload, repeat 2–3× (wired vs Wi‑Fi, proxy on/off, different browsers); avoid running while other heavy downloads saturate the link.
  10. If download fails (CORS, short read): corporate filters often block `cloudflare.com`, `httpbin.org`, `cachefly.net`, `proof.ovh.net`, `npmmirror.com`—try another network, allowlist domains, or a Cloudflare-only preset.
  11. If upload fails: try Chrome/Edge; check middleboxes blocking large POSTs; httpbin errors trigger Cloudflare fallback—check the result card label for hints.
  12. Read the title and description first to confirm this utility matches your task (avoid using the wrong tool and misinterpreting output).

Related Tech Knowledge

  • Architecture: client-only speed tests; traffic is browser to third-party HTTPS endpoints, not proxied through this site’s app API. The site ships static UI + node tables (bandwidthIperfNodes.ts).
  • Download path: Fetch + ReadableStream reader loop; Mbps = (total_bytes × 8) / elapsed_s / 1e6, MB/s = total_bytes / elapsed_s / 1024². earlyStop calls reader.cancel() once ~98% of the target bytes are read from larger static files.
  • Upload path: POST application/octet-stream to Cloudflare __up. Order: streaming fetch → fetch(Blob) → XHR(Blob) for compatibility/progress. httpbin /post is capped/heuristically bypassed with Cloudflare fallback on failure or large payloads.
  • Node model: each node lists ordered downloads[] (resolve(bytes) URL + optional earlyStop) and an upload strategy (cloudflare vs httpbin). Domestic stacks bias npm mirror + Cloudflare + httpbin; overseas stacks add CacheFly and OVH proofs to vary CDN/geography.
  • vs iPerf3: iPerf3 opens TCP/UDP sessions (typical port 5201) and measures at a different layer. This tool measures HTTPS/HTTP throughput including TLS, HTTP/2 multiplexing, browser scheduling, and remote HTTP policies—not interchangeable with ISP lab tests or raw iPerf numbers.
  • HTTP/2 note: browsers may multiplex streams on one connection; behavior differs from multi-connection download managers.
  • Geo default: bandwidthGeoDefaultNode.ts maps country/continent → node id (e.g. CN→mainland preset, JP→Japan preset); failures fall back to cf-anycast. Used only for the initial dropdown value, with minimization safeguards for personal data.
  • Accuracy: TTFB is included in elapsed time, so small payloads under-estimate steady-state throughput—use ≥10 MB, commonly 50 MB. Background throttling and CPU can skew results low.
  • Privacy: results stay in-page; geo lookup calls public endpoints (Cloudflare trace / geojs / ipapi)—see their policies.
  • Safety: only hard-coded HTTPS targets; do not inject untrusted endpoints into local builds.
  • Ops debugging: log node id, payload size, UA, proxy flag, timestamps; pair with traceroute/MTR and CLI iperf3 to separate L3 vs L7 bottlenecks.
  • Core parsing and computation run in your browser; by default your raw business payload is not persisted to this site’s servers (see on-page privacy notes).