A Procedural Methodology for Diagnosing (Home) Internet Issues

I recently had some internet problems, most pages wouldn’t load, my connections to servers (e.g. FTP, SSH) would quickly drop, but, yet, I was able to download a file at a reasonable rate.

There are different approaches to narrowing down the problem. For some problems, the symptoms will direct one’s focus to likely causes, but in others, the likely causes are quite numerous. A typical internet setup at home, has a number of components which must be eliminated to narrow the cause of the problem.

A typical setup will include a computer networked (wired/wireless) to a router, which is connected via an Ethernet cable to a modem, into which is plugged a phone line or cable carrying the internet signal. The possibly faulty components, therefore, are:

  • Browser
  • Operating System
  • Computer
  • Network components (cables/wireless, router)
  • Modem
  • Phone line/Cable (contacts/jacks, lines, filters, etc)
  • Internet connection (ISP/phone company/cable company)
  • Internet itself

Firstly, I would suggest restarting every component of your setup, and running a speed test on your Internet connection.

Most computer geeks are typically relatively sure that a problem isn’t their fault, or if it is, they tend to know what they did to cause it. It is therefore, not unreasonable, to attempt to eliminate most possible causes in a single go. If you are able to, booting a Linux Live CD, on a different machine, connected directly to a new modem (bypassing any other components of your network), should essentially eliminate any of your settings/components being at fault (if the Internet still doesn’t work – if it does, then some component of your setup is faulty).

Step 1: Ensure your browser isn’t at fault:

Ideally, just try a different browser than the one you are using: Chrome, Firefox, Opera, and Safari tend to be good choices.
Clear your internet cache (to ensure that the cause isn’t just a stale cache).

Restart your browser – restarting components tends to fix a lot of problems.

Of course, try a variety of high profile sites – while any one site might be down, it is improbable that 10 large sites are simultaneously down (especially if they are spread over a large geographic region).

Note down the errors you get when you try to load page, and if you use Firebug, use the ‘Net’ panel to check if some components load, or if all fail to load. Also note the approximate times for components to load.

Step 2: Check out your Operating System

The operating system will have significant control over your network, so verify that everything works.

Restart your computer – restarting components tends to fix a lot of problems.

Firstly, try to connect to your router – this will provide an indication that your local network, at least, is functioning. To do this, navigate to http://192.168.1.1 in your browser (may be different for some routers), you should get a login box, if you can login, do so, but the login box is sufficient evidence that you were able to connect to your router. (If you can’t connect to your router, the problem is typically with your local network, not the Internet – check that you have the correct settings for your network under ‘Network Connections’, and that you have been assigned an IP address on your network (using ipconfig /all from a command prompt). Continue to check cables, sources of wireless interference, your network hardware, and computer/operating system if the problem is with your local network).

Flush your DNS cache. In order to resolve a URL, your computer will convert it to an numeric IP address, a corrupt DNS cache will not perform this task correctly. To do this, open a command prompt and enter: ipconfig /flushdns

The next step will be to try to ping a site – this will provide a bit of information about whether or not you can transfer some packets of information across the internet or not. Additionally, if at all working, this will also give you the IP address of the site in question, allowing you to bypass DNS entirely.

Again, in a command prompt, type: ping {domain name} (e.g. ping google.com), note the number of packets lost, and the time.
If ping returns an IP address attempt to navigate to that IP address directly in your browser. (e.g. pinging Google, returns, 173.194.32.104 – I am sure that there is more than one IP for Google though). Going to http://173.194.32.104 should take you to Google’s homepage.

Next, we will attempt a trace route. This is a tool that will help to determine which part of the route between your computer and the target site is not functioning correctly. Trace route can be run to resolve IP addresses or not. If I just want to see if there are any problems, I prefer to run it without resolving IP addresses (as that tends to be the longest part). Of course, if you find a section that isn’t functioning as it should, then resolving the address is needed to add meaning.

  • To run trace route without resolving addresses (on windows), enter: tracert –d {domain name} (e.g. tracert –d google.com)
  • To run trace route with address resolution (on windows), enter: tracert {domain name} (e.g. tracert google.com)

The sections where trace route returns asterisks (*) instead of times, are potentially problematic (then again, a faulty internet connection can lead to timeouts shown in traceroute).

One more diagnostic before we attempt to eliminate the operating system. Run a speed test on your internet connection. If your ISP offers one, that is usually a good choice, otherwise, try SpeedTest.net. This will give you some indication of the scope of the problem (for instance, my issue turned out to be acceptable download bandwidth, but no upload bandwidth). Check to see if the values the speed test returns corresponds roughly to the values of your internet plan. Additionally, I found PingTest.net to have a useful service which provided information on packet loss, round trip time (same as from ping), and jitter (variation in ping round trip times).

If you haven’t yet found a problem, it is time to eliminate the operating system altogether. If you use a multi-boot setup, simply boot into one of your other operating systems. If not, pop in a Linux LiveCD and give it a try (personally, I am fond of Mandriva and Ubuntu – both have good hardware support, and are easy to use) [Of course, without a functioning Internet connection, it might be a bit harder to get a hold of these].

Step 3: Maybe it’s your computer (hardware)

Now, before dismantling our machines, it is perhaps advisable to determine if that is the problem. Just try another computer – if you can’t get on with two separate machines, there is a good chance that your hardware isn’t at fault, if one gets on while the other doesn’t, then it is time to start diagnosing in a bit more depth (a potential starting point is Device Manager, but that is another article).

Step 4: Network Components

Having proven that the fault does not lie with our browser, operating system, or computer, it is time to check the rest of our network. Firstly, don’t use wireless when testing (although, if you can connect to your router wirelessly, you have essentially proven that the local section of your network is functional).

Switch out any cables in use for other cables, and if possible test your network. The method I used was to copy a 1MB file between two computers on my network and verify the MD5 sums on each end. This is a fairly effective way of proving that the network components on both computers were functional, as well as the local network. The MD5 sums is a hash function which generates a 32 character string from the bits in a file (or string) – if the files are not bit for bit identical, the MD5 sums will differ significantly.

If you can log into your router, try to use the tools provided there – ensure you have an IP address (on your ISP’s network), and try to run a ping test once again through the router’s interface (this will entirely bypass your computer, which is preferable).

Restart your router – restarting components tends to fix a lot of problems.

Now, it is time to try and eliminate the router altogether. If possible, connect your computer directly to your modem, to eliminate the other aspects of your network. In this type of diagnosis, the minimal setup tends to be preferable.

By cyberx86

Just a random guy who dabbles with assorted technologies yet works in a completely unrelated field.

1 comment

Leave a comment

Your email address will not be published. Required fields are marked *