Please sign in to comment.
Return to old-style speedtest
The reason for this back out is that the new-style speedtest does not account for the time required to empty the pipe between the client and the server. When this time is high, the transmission test spans much more seconds that expected. In other words, easier to control the duration of the test using the size rather than the application-level duration. The algorithm to control the transmission time is the following: 1. we start with a small value for the number of bytes to transmit; 2. we monitor the elapsed time since the beginning of transmission; 3. we continuously adjust the number of bytes to transmit; 4. the adjustment factor is TARGET/elapsed, where TARGET is the time we would like the transmission to take; 5. when elapsed is less than LO_THRESH, we adjust the number of bytes and then we repeat the transmission; 6. when elapsed is less than LO_THRESH/3, we adjust the number of bytes using a factor of 2 and then we repeat the transmission. The rationale for 5. is that we don't want to save the result of a transmission. The rationale for 6. is that we cannot trust the outcome of a very short transmission to calibrate the number of bytes.
- Loading branch information...
Showing with 387 additions and 423 deletions.
Oops, something went wrong.