When you press the "Start measurement" button, the following events occur:
1. A shorter pre-measurement is carried out in order to get a rough idea of the user's bandwidth. Based on the result of this, decisions are made on how much data is to be sent and received in the tests below.
2. Based on an estimated geographic location of the user, the test server that is closest to the user is chosen.
3. 10 http requests are sent to the chosen measurement server and an average response time is calculated.
4. 10 files are downloaded over http from the test server. The size of the image files is determined earlier in the pre-measurement. The time is takes to transmit these files is used to calculate the user's downlink bandwidth, which later is presented as download speed.
5. Random data is then sent via http post to the test server. The pre-measurement determines the amount of data that is to be sent. The time it takes to transmit these files is used to calculate the user's upload bandwidth. This is presented to the user as their upload speed.
The results of the measurement are presented to the user and stored in the database. We also associate the measurement with a cookie and a position. This enables us to let the user go back to their previous measurements at a later date and it also makes it possible for other users in the vicinity to compare local measurement results.
If a measurement is made over 4g/3g/EDGE, you can also choose to set if you are measuring indoors, outdoors or from a car. This choice, along with your position is also stored and are then presented under History for all users to see.