Calculating internet speed the Ookla way

May 7, 2011 TestMy.net published the article Why Do My Results Differ From Speedtest.net / Ookla Speed Tests? with a reference to wiki.ookla.com/test_flow (nowadays gone, but available at the Wayback Machine: wiki.ookla.com/test_flow).

A screenshot of the [[test_flow]] page where Ookla describes the working of their Speedtest

At this page Ookla stated:

  1. Small binary files are downloaded from the web server to the client to estimate the connection speed
  2. Based on this result, one of several file sizes is selected to use for the real download test
  3. The test is performed with cache prevention via random strings appended to each download
  4. Up to 8 parallel HTTP threads (configurable) can be used for the test
  5. Throughput samples are received at up to 30 times per second
  6. These samples are then aggregated into 20 slices (each being 5% of the samples)
  7. The fastest 10% and slowest 30% of the slices are then discarded (see * below for more detail)
  8. The remaining slices are averaged together to determine the final result

* Since we are measuring data transported over HTTP via Flash there is potential protocol overhead, buffering due to the many layers between our application and the raw data transfer and throughput bursting due primarily to CPU usage. This accounts largely for dropping the top 10% and bottom 10% of the samples. We also keep our default test length short for the user experience, and compared to this duration the ramp-up period is fairly significant driving us to eliminate another 20% of the bottom result samples.

In other words Ookla used to measure (100 - 10 =) 90% of your internet speed.

Sandbox support

At the forgotten (?) sandbox support page How does the test itself work? How is the result calculated? Ookla still states (...) The fastest 10% and slowest 30% of the slices are then discarded (...).

It's important to realize that this explanation was given when Speedtest was still Flash-based. (...) we are measuring data transported over HTTP (via Flash) (...).

Nowadays, Ookla still measures 90% of your internet speed. This is true for all mainstream speedtests like Cloudflare. Cloudflare writes on their about page: (...) Speed is measured by downloading/uploading progressively larger files and taking the 90th percentile speed (...).