As defined in
Understanding Broadband Speed Measurements
Review of different speed measurement tests, including M-Lab’s NDT test,
and examination of the benefits of different approaches
S. Bauer, D. Clark, W. Lehr
2010
https://www.measurementlab.net/publications/understanding-broadband-speed-measurements.pdf
- Small binary files are downloaded from the web server to the client to estimate the connection speed
- Based on this result, one of several file sizes is selected to use for the real download test
- The test is performed with cache prevention via random strings appended to each download
- Up to 8 parallel HTTP threads can be used for the test
- Throughput samples are received at up to 30 times per second
- These samples are then aggregated into 20 slices (each being 5% of the samples)
- The fastest 10% and slowest 30% of the slices are then discarded
- The remaining slices are averaged together to determine the final result.
- A small amount of random data is generated in the client and sent to the web server to estimate the connection speed
- Based on this result, an appropriately sized set of randomly generated data is selected for upload
- The upload test is then performed in configurable chunk sizes (pushed to a server-side script via a POST)
- The test can be done using up to 8 parallel HTTP threads (configurable)
- Chunks are sorted by speed, and the fastest half is averaged to eliminate anomalies and determine the result