TCP Test Components
Latency/Jitter
- This test is performed by measuring the time it takes for the server to reply to a request from the user’s client. The client sends a message to the server, upon receiving that message, the server sends a reply back. The round-trip time is measured is measured in ms (milliseconds).
- This test is repeated multiple times with the lowest value determining the final result.
Download
- The client establishes multiple connections with the server over port: 8080. The client requests the server to send an initial chunk of data.
- The client calculates the real-time speed of the transfers, then adjusts the chunk size and buffer size based on this calculation to maximize usage of the network connection.
- As the chunks are received by the client, the client will request more chunks throughout the duration of the test.
- During the first half of the test, the client will establish extra connections to the server if it determines additional threads are required to more accurately measure the download speed.
- The test ends once the configured amount of time has been reached.
Upload
- The client establishes multiple connections with the server over the defined port and sends an initial chunk of data.
- The client calculates the real-time speed of the transfers and adjusts the chunk size and buffer size based on it to maximize usage of the network connection, and requests more data.
- As the chunks are received by the server, the client will send more chunks throughout the duration of the test.
- During the first half of the test, the client will establish extra connections to the server if it determines additional threads are required to more accurately measure the upload speed.
- The test ends once the configured amount of time has been reached.
HTTP Legacy Fallback Testing
Latency
- This test is performed by measuring the time it takes to get a response for a HTTP request sent to the web server
- This test is repeated multiple times with the lowest value determining the final result.
Download
- 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
- 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)
- See bottom of document for details to fill here (see * below for more detail)
- The remaining slices are averaged together to determine the final result
Upload Test
- 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 chunk of randomly generated data is selected for upload.
- The upload test is then performed in chunks of uniform size, pushed to the server-side script via POST.
- We’ll use up to four HTTP threads here, as well, to saturate the connection.
- Chunks are sorted by speed, and the fastest half is averaged to eliminate anomalies and determine the result.