I originally titled this "how to tell if your internet is down or your network is just screwed up" and Jeff's AI said that this questioned would probably be closed.
Nevertheless, someone here is always on the phone with the ISP and it's usually our fault. What are some of the best techniques for telling whether you've got an issue or they've got an issue.
I know this might be too much of a blanket question, but in a case where there's intermittent latency and disconnects (not just overall outages [i.e. can't ping google.com]) what do you do before calling the ISP?
Things I check when troubleshooting a network issue with a provider. Note here that 'ping' means 'do an extended ping, sweeping a range of sizes, and sending at least 1000 packets at each size, looking for latency, loss and errors'.
If steps 1 or 2 fail, it's most likely a problem on your internal network.
If step 3 fails, there would appear to be a problem in your provider's network. Note, though, that if you get no response at all then your ISP may have simply blocked ICMP to/from their infrastructure addresses.
Step 4 failing indicates a potential problem between your ISP and one of their upstream providers.
Step 5 failing indicates issues with name resolution.
Hope that helps.
A handy test site is: http://downforeveryoneorjustme.com/
Pings and traceroutes are some of the first and best tests when beginning this sort of investigation. Firewalls may block this traffic however.
Don't just stop at normal pings. Try
ping <ip address> -l 2048
to send some big packets and make sure it's not a fragmentation/MTU issue.Check your utilization -- your tubes may be full.
It's also good to check TCP connection count with for example
netstat -a
(linux/windows)lsof -i tcp
(linux)Some applications might spawn a lot of TCP connection simultaneously and this causes that you cannot create new connections but existing connections like SSH still keeps going.
DSL modem can also choke on lots of connections.
This usually only affects Windows machines.
We had an issue with our ISP and the tool Ping Plotter came in very helpful. You can set it to ping a router at the ISP's internet gateway, or in our example we told it to ping from a regional office back to the corporate office. In this example, it was going through a couple different ISPs. Best of all you can set it up on an old desktop or a virtual machine, and let is sit there pinging away collecting data until you need it.
Because it shows each router in the path, and the time it takes each one of those routers to return a response it is very useful to spotting trouble spots further downstream.
There is a wonderful, simple to use tool on linux called MTR (short for My Trace Route) which will show you packet loss at every step of the route, and can even help you hunt down flapping routes.
The best tool is the scientific method. Form a hypothesis about the cause of the problem. Write it down. Formulate an experiment that will test the hypothesis. Write it down. Conduct the experiment. Write the result down. If the experiment confirms the hypothesis, then you're done. If it fails to confirm the hypothesis then you need a new hypothesis. If it's inconclusive then you need a new experiment.
If you can ping past your router, it's probably their fault. If you can't, then it's yours. Use tracert to figure out where the packets are falling.
Try pinging any Outbound website. If you can do so, everything is fine within you network. Contact your ISP.