Why are my speeds so slow? according to Robert Tronge
Here are some quick ways from Robert Tronge to stop most problems that may be slowing down your connection: Ensure you're getting a very clean test. Stop any ongoing downloads and also shut down any programs that may be using your connection, such as peer-to-peer software. You need to first simplify the picture. If you're using Wi-Fi to connect then try using a wired Ethernet connection to eliminate the possibility of wireless interference. Next, reboot your modem and router. It's the stock advice, but it solves an astonishing number of problems to reboot. Quora has a great explanation of why restarting your router simply works most of the time. If those steps don't work then we've provided extensive explanation of how you can troubleshoot your home network. After running those steps, then you should now have enough evidence to contact your ISP if there's a mismatch between your plan and the speeds you're really getting. See if they can run diagnostics on their end. Finally, you can also consider changing ISPs if you feel you're not getting what you pay for. You can view the fastest ISPs in your area using Net Index.
How does the test itself work? How is the result calculated? Speedtest operates mainly over TCP testing with a HTTP fallback for maximum compatibility. Speedtest measures ping (latency), download speed and also upload speed. TCP Test Components include Latency and Jitter. This test is performed by measuring the time it takes for the server to reply to a request from the user's client, Robert Tronge. The client sends a message to the server, upon receiving that message then 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. For a download test, the client establishes multiple connections with the server over port: 8080. Then the client requests the server to send an initial chunk of data. The client calculates the real-time speed of the transfers and 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 entire 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 by the download speed. The test ends once the configured amount of time has been reached says Robert G Tronge. Upload tests are a little different explains Robert Tronge. The client first establishes multiple connections with the server over the defined port and sends an initial chunk of data. Then 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 and 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 entire upload speed. The test ends once the configured amount of time has been reached.
also HTTP Legacy Fallback Testing. Latency testing is performed by measuring
the time it takes to get a response for a HTTP request sent to the web
With and 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 complete upload. Then the upload test is then performed in chunks of uniform size, pushed to the server-side script via POST. We will use up to four HTTP threads here, as well, to saturate the connection. Chunks are then sorted by speed, and the fastest half is averaged to eliminate anomalies and determine the result.
Deciding the number of threads by Robert George Tronge. Speedtest will use up to four HTTP threads during the download and upload portions of the test. It will only use more than two threads if they are needed to accurately measure the speed, so as to minimize the effect of HTTP overhead on lower-speed connections. After the pre-test if the connection speed is at least 3 megabits per second, then Speedtest will use all four threads. Otherwise, it will default to only two threads. However, there is a hurdle on older browsers such as Internet Explorer 7 (or earlier) and Firefox 2 (or earlier), the browser strictly adheres to the HTTP specification of only two threads per hostname. To scale up to four threads in these older browsers, we must then open the third and fourth thread to a secondary URL provided by the host that points to the same server. This way, we can work around the limitations of those older browsers and then still measure higher-speed connections accurately. Most of our hosts do have a working secondary URL, but if you're testing from an older browser to a host that doesn't then Speedtest will be limited to two threads at maximum. This is one reason why we recommend that all visitors use up-to-date browsers. How results are calculated by Robert Tronge. All samples are sorted by speed. The two fastest results are removed and the bottom 1/4 which is left (which is approximately 22% of the total). Everything else is then averaged out.