1

I'm interested in building a command-line speed test tool similar to the one used here. I started using it in a cron job to automatically check and record speeds at different times when we started having inconsistent download speeds at our office. The issue was always resolved by rebooting the ISP modem and after a lot of hoping jumping, a tech finally fixed the underlying problem that was caused by interference with outside wiring.

The current tool produces very inconsistent results (dramatically different upload/download speed readings) even when no other programs and scripts on that server are in use (after hours). The author pointed out the following about inconsistencies:

enter image description here

What networking tools/protocols should I be looking into if I wanted to build a reliable speed-test tool? A lot of ISP's have their own speed-test tools to produce better results for their own test. Is it possible to compensate for problems associated with not having control over the ISP modem and download server locations?

1 Answers1

3

The author of your tool basically tells you how you can build a (more) reliable tool:

  1. Use pure sockets instead of HTTP-based tests (i.e. ICMP)
  2. Don't use Python but e.g. C as a programming language for your tool, which also allows you to create those pure sockets from the first point.
  3. Again problems caused by using Python as the implementation language.

I do not believe it's possible to compensate for problems caused by the ISP's modem if you don't have control over it as you won't be able to determine whether slowness is caused by said modem or in the Internet at large.

Tommiie
  • 5,627
  • 2
  • 12
  • 46