Ask HN: Best way to know your ISP is throttling you?

16 points by geekam ↗ HN
I am a (unhappy) Comcast customer and there is no other service that I can get in my area. I have to teleword and do required high-speed connection. Problem is that I feel many times I am being throttled for even stuff like Youtube videos, remote login etc.

So, anyone here knows tools etc. to see whether my ISP is throttling me? I pay for 30mbps down. Is there a tool to sample that at given intervals to see if I do get what I pay for?

Any other thoughts on this subject are also appreciated.

7 comments

[ 3.1 ms ] story [ 28.0 ms ] thread
Have you tried any of the speed test sites, for example http://www.speakeasy.net/speedtest/. The conspiracy theorist in me thinks ISPs know all the speed test sites and will not throttle speed test packets.
I'm all but convinced that this is true - there's been several times where my connection to every major site was absolutely crawling to the point of absurdity but good ol' speakeasy came in just fine to ease my mind and tell me that my connection was great
I absolutely agree with that. I should have mentioned that in my description that I do not trust either the speed test sites or my ISP tarcking requests for and to speed test sites.
The "easiest" solution requires some learning. The netstat(1) command on unix-based systems (including MacOS 10+) and possibly also ms-windows can report the number of BYTES passing through a network interface. On most implementations the '-b' switch is used to show BYTES and the '-I ifacename' switch is used to define what interface you want to monitor. Since this only gives you one count of the bytes, you also want to use the "wait" switch, typically '-w #" so the command continuously runs every "#" seconds.

  $ netstat -bI tun0 -w 8
The reason to use a wait time of 8 seconds is the values you'll see will be roughly equivalent to BITS per second for the given 8 second period (1 byte is 8 bits). Since most networking throughput is measured in bits per second, this makes your life easy. Also, using a wait time of 8 seconds avoids putting mostly pointless load on your system while giving you a fairly solid average throughput value.

This method is very flexible. For example, if you're running one or more VPN tunnels, you can monitor each tunnel individually, as well as the underlying uplink connection. You just need to use the same command with different '-I' interface names.

Additionally, unlike the inaccurate download speed values presented by web browsers and similar applications, this is measuring the raw data passing through the interface (i.e. with packet overhead), rather than measuring how fast a file is being transfered (without packet overhead).

I just leave it running in a tmux window on my firewall so with just a glance I can always see what the connection is doing.

This is a great advice! I did not want to start another GUI application to track this and command line works great in this case.
pchar gives really detailed statistics about each hop. I'd recommend running it ~every hour for a few weeks to spot patterns in what is happening: http://www.kitchenlab.org/www/bmah/Software/pchar/

Robtex.com can also be good for examining how autonomous systems interconnect.

Interesting. I haven't used pchar before. How does it compare to mtr (which is my current go-to)?