Showing posts with label Diagnostic Procedures. Show all posts
Showing posts with label Diagnostic Procedures. Show all posts

Diagnosing A WiFi Problem Requires Proper Tools

A WiFi connectivity problem can cause many symptoms - from inability to access other computers on the LAN, to lack of bandwidth when downloading files from Internet servers. But there are many factors that can cause those symptoms, and more. Diagnosing WiFi problems by observing bandwidth or connectivity symptoms is just not proper procedure.

You need the right diagnostic tools, and I start with Netstumbler, and PingPlotter.

>> Top

Producing a PathPing Log For Analysis

Many network problems that affect your access to the Internet, such as the currently obnoxious "Server Error 1-500", can be better understood, if we can understand how you are connecting to the servers in question. A pathping log, similar to a traceroute log, but easier to read, is very useful in this case.

  1. Open a command window.
  2. Type "pathping www.google.com >c:\pathping.txt" (less the "") at the command prompt.
  3. Type "notepad c:\pathping.txt" (less the "") at the command prompt.
  4. Copy, and paste, the entire log, as displayed in Notepad, into your email or forum post. Please don't munge, or disguise, any details.
It really is simple - when you know how. Just be generous - and precise (see the spaces in the commands?).

Here's a sample log.
C:\>pathping www.google.com

Tracing route to www.l.google.com [74.125.19.103]
over a maximum of 30 hops:
0 Dell1600.martinez.cacroll.net [192.168.203.101]
1 209-204-141-1.dsl.static.sonic.net [209.204.141.1]
2 111.at-4-0-0.gw4.200p-sf.sonic.net [208.106.28.177]
3 0.as0.gw3.200p-sf.sonic.net [64.142.0.225]
4 200.ge-1-2-0.gw2.equinix-sj.sonic.net [64.142.0.210]
5 eqixsj-google-gige.google.com [206.223.116.21]
6 209.85.252.2
7 209.85.251.94
8 74.125.19.103

Computing statistics for 200 seconds...
Source to Here This Node/Link
Hop RTT Lost/Sent = Pct Lost/Sent = Pct Address
0 Dell1600.martinez.cacroll.net [192.168.203.101]
3/ 100 = 3% |
1 37ms 3/ 100 = 3% 0/ 100 = 0% 209-204-141-1.dsl.static.sonic.net [209.204.141.1]
0/ 100 = 0% |
2 33ms 3/ 100 = 3% 0/ 100 = 0% 111.at-4-0-0.gw4.200p-sf.sonic.net [208.106.28.177]
0/ 100 = 0% |
3 40ms 3/ 100 = 3% 0/ 100 = 0% 0.as0.gw3.200p-sf.sonic.net [64.142.0.225]
0/ 100 = 0% |
4 42ms 5/ 100 = 5% 2/ 100 = 2% 200.ge-1-2-0.gw2.equinix-sj.sonic.net [64.142.0.210]
0/ 100 = 0% |
5 35ms 4/ 100 = 4% 1/ 100 = 1% eqixsj-google-gige.google.com [206.223.116.21]
0/ 100 = 0% |
6 41ms 3/ 100 = 3% 0/ 100 = 0% 209.85.252.2
3/ 100 = 3% |
7 42ms 7/ 100 = 7% 1/ 100 = 1% 209.85.251.94
0/ 100 = 0% |
8 45ms 6/ 100 = 6% 0/ 100 = 0% 74.125.19.103

Trace complete.


>> Top

Producing a TraceRt Log For Analysis

Many network problems that affect your access to the Internet, such as the currently obnoxious "Server Error 1-500", can be better understood, if we can understand how you are connecting to the servers in question. A tracert log is very useful in this case.

  1. Open a command window.
  2. Type
    tracert www.google.com >c:\tracert.txt
    at the command prompt.
  3. Type "notepad c:\tracert.txt" (less the "") at the command prompt.
  4. Copy, and paste, the entire log, as displayed in Notepad, into your email or forum post. Please don't munge, or disguise, any details.
It really is simple - when you know how. Just be generous - and precise (see the spaces in the commands?). If you're having a problem with "www.yahoo.com", target that instead.
tracert www.yahoo.com >c:\tracert.txt
If you may be having a DNS problem, find out the IP address of the server, and target it, for comparison.
tracert 66.249.89.99 >c:\tracert.txt


Here's a sample log.

C:\>tracert www.google.com

Tracing route to www.l.google.com [66.249.89.99]
over a maximum of 30 hops:

1 1 ms 1 ms 1 ms 192.168.1.1
2 40 ms 43 ms 41 ms 10.122.84.253
3 42 ms 41 ms 43 ms 10.122.84.254
4 54 ms 55 ms 55 ms 10.121.20.1
5 * * * Request timed out.
6 51 ms 53 ms 51 ms 58.147.0.52
7 53 ms 51 ms 53 ms 58.147.0.46
8 268 ms 275 ms 271 ms 202.47.254.161
9 270 ms 269 ms 269 ms 202.47.253.148
10 280 ms 283 ms 283 ms 203.208.191.197
11 297 ms 299 ms 283 ms ge-0-1-0-0.sngtp-cr1.ix.singtel.com [203.208.149.201]
12 283 ms 339 ms 285 ms so-2-1-0-0.hkgcw-cr2.ix.singtel.com [203.208.154.38]

13 114 ms 115 ms 113 ms 72.14.196.5
14 118 ms 117 ms 117 ms 216.239.43.68
15 144 ms 137 ms 141 ms 66.249.95.198
16 142 ms 137 ms 139 ms 72.14.232.166
17 178 ms 171 ms 167 ms 72.14.236.236
18 175 ms 173 ms 175 ms 66.249.95.197
19 176 ms 181 ms 177 ms 216.239.47.54
20 176 ms 177 ms 175 ms jp-in-f99.google.com [66.249.89.99]

Trace complete.

You have two classes of information there. The list of IP addresses are very important, to understand the path that your traffic may take, between your computer and the Google server.

The timings (or lack of them, as in "Request timed out") are not always easy to interpret. A difference of 200+ ms (as in hops 7 and 8 above) may represent a real problem, or it may be the result of the two hops being on opposite ends of a busy or long communication line, as in a trans continental trunk line.

In many cases, a router (represented by one of the IP addresses in the list), though it will identify itself in the list, will prevent you from probing it for a timed response. The error "Request timed out" won't be as significant as the IP addresses.

Sometimes, the problem won't be immediately obvious from one traceroute log. If your problem comes and goes, a tool like PingPlotter will help you look for a problem over time.

>> Top

Identifying A DNS Problem In Your Internet Service

DNS, which lets you translate a host name or URL into an IP address, is a key process in Internet use. Sometimes, though, it doesn't work. You try to browse to http://www.example.com, and you get a cryptic

Firefox can't find the server at www.example.com.

or
We can't find "www.example.com"

or worse, sometimes the classical
404 Not Found

Or even, the white screen of death - no error - no response.

Now the above example symptoms could have been caused by any of several scenarios.

  1. Host www.example.com doesn't exist.
  2. Host www.example.com isn't operational today.
  3. Your DNS (that translates www.example.com into an IP address) isn't working.
  4. Your MTU setting is causing a problem with accessing www.example.com.
  5. (This is not fiction, folks) - Your ISP, or a government agency, is intentionally blocking your access to www.example.com.
  6. You don't have Internet connectivity.


What to do now? Well, if your Internet connectivity is down, you've got different work to do. But, if you can access any other web sites, or if you're otherwise certain that your service is not the problem, then make sure that your DNS is working. To do this:

  • Find out the IP address of the web site. There are various web sites all over the Internet that will let you use their DNS servers, thru your browser. I use 2 web sites, consistently, and keep their URL and IP addresses available.

    1. All Net Tools, by IP address: http://216.92.207.177/toolbox .
    2. All Net Tools, by name: http://www.all-nettools.com/toolbox .
    3. DNS Stuff, by IP address: http://66.36.247.82/ .
    4. DNS Stuff, by name: http://www.dnsstuff.com/ .

    I use either of those two web sites; in case one goes down I use the other. And, if I'm researching a DNS problem, I access either one by its IP address. Finally, given the possibility that one or the other might change its IP address, I can hopefully resolve its name, using the other website. So, I keep all 4 addresses handy.

    • For All Net Tools, I enter the web site URL into the "SmartWhois" window, and hit Enter or Go!.
    • For DNS Stuff, I enter the web site URL into the "DNS lookup" window, and hit Enter or Lookup.

  • Conduct a simple 4 step test. In this example, I'll target www.yahoo.com, which uses (among many others) 66.94.230.33. Feel free to use whatever web site, for your testing, that pleases you.
    • Clear all caches, to ensure consistency.
      • Clear DNS cache. From a command window, enter "ipconfig /flushdns".
      • Clear the cache in your browser.
        • From Firefox, Tools - Options - Privacy - Cache - Clear Cache Now.
        • From Internet Explorer, Tools - Internet Options - Temporary Internet files - Delete Files.
    • From a command window:
      1. Ping www.yahoo.com.
      2. Ping 66.94.230.33.
      3. Note success / exact text of error messages.
    • From your browser:
      1. Browse www.yahoo.com.
      2. Browse 66.94.230.33.
      3. Note success / exact text of error messages.

  • Now, consider the results of the tests.
    • If you see a difference between both IP address accesses, as compared to both named accesses, you very likely have a DNS problem.
    • If you can ping (with a successful return), but not browse, with identical results for IP address and name, you may well have an MTU setting problem.
    • If you see a combination of results, you may need to research BOTH a DNS and MTU problem.
    • If the tests aren't conclusive, consider the ubiquitous LSP / Winsock corruption problem.
If you want to read a more detailed description of this diagnostic technique, check out Roberto's Report: DNS and MTU - Interpreting Results.

>> Top

Watching What Your Computer Is Doing

Your computer, as it runs the many programs that you (or others) start on it, and access other computers on your local or wide area network, is very busy. Even when you aren't doing anything intentionally, your computer is still busy. Sometimes, knowing what your computer is actually doing, at any time, is a critical need.

Long years ago, a computer would be pictured in a movie as a big metal box, with lots of flashing lights. Those lights were used, at that time, to tell what the computer was doing. Those computers ran very slowly (sometimes, not at all), and the flashing lights were critical to knowing what was going on, at any time.

The equivalent of a Blue Screen Of Death was known as (among other terms, some of which won't ever be discussed here) a Hard Stop. When a Hard Stop occurred (which could be many times / day, depending upon what programs were running), the lights would be used to describe what the computer had been doing, and to display the contents of memory and registers.

Today, no computer could ever drive enough lights to tell you anything useful. You typically have three lights on your computer. These lights tell you that the computer is doing something, Period.

  1. Disk activity.
  2. Network activity.
  3. Power.

If you want to have any idea what your computer is doing, you'll have to at least list the tasks it's running. Task Manager is provided as a native component in Windows. Process Explorer (free) from the SysInternals division of Microsoft, provides more detail than Task Manager.

Knowing what tasks are running is a good place to start, but it's only a start. How do you know what each task is doing? I use Filemon and Regmon (both free, and both again from SysInternals).
  • Filemon lists files, as accessed (read and / or written) by any given process.
  • Regmon lists registry values, as accessed (read and / or written) by any given process.

You can use both programs simultaneously, or either program separately, at your convenience.
  1. Open the application that interests you.
  2. Identify the application in Process Explorer, and get its PID. Maybe use the Process Finder to automatically locate the entry for any visible window.
  3. Start Filemon / Regmon.
  4. Create a filter in either application, ":PID" where PID is the PID of the application in question.
  5. Go back to your application, make the change, and watch what Filemon / Regmon displays.
  6. When you find an interesting entry in Filemon, you can double click on it, to open Windows Explorer, and display the folder containing it.
  7. When you find an interesting entry in Regmon, you can double click on it, to automatically open Regedit, and display the registry entry in question.
  8. The filter used by Filemon and Regmon is very simple, and easy to use - it's a simple text string. If you know a process name, or file or registry path, you can filter on whatever you know. Use your imagination.
  9. Both Filemon and Regmon use a context menu (right mouse click) for displayed entries, and a toolbar with several other possibilities. Both can display changes continually (automatically scrolling as you watch), or will let you freeze the display, and manually scroll, at your convenience.

Besides knowing what your computer is doing right now, it is useful sometimes to know what your computer did when it started up. A lot of processes - legitimate, not legitimate, and some in between the two, are started, by other processes, when the computer starts up. Knowing how any process starts up can be important to knowing what it's doing right now. Autoruns (another SysInternals product) and HijackThis are key tools (both free) that I use for this purpose.

Now all of the above tools are used to monitor your computer, and what it's doing on its own. Most computers are used on a network, and make connections to other computers. TCPView, another SysInternals product, shows you what other computers your computer is connected to, local and distant.

If your computer uses WiFi for connectivity, knowing who shares the WiFi spectrum with you could be relevant.

And remember that most computers running Windows contain some server functionality. If your computer is on a local network with other Windows computers, sometimes knowing who else is accessing it is useful too.

>> Top

The Ping Command


The command utility "ping" is one of the simplest, and most universally useful, utilities used in computer networking. It asks just one question.


Do I have connectivity to a given host?


It answers that question, and possibly one other.

What is the publicly known IP address for that host?


Depending upon whether you specify a host by name or by IP address (and either is useful), and whether that host actually does respond, you may get a series of responses.


You run Ping simply by opening a Command Window, and typing the command. You can:

  • Ping (hostname).
  • Ping (IP address).


>>Top

Ping host by name, host responds.

I enter

ping pchuck1

And I see

Pinging pchuck1 [192.168.100.100] with 32 bytes of data:
Reply from 192.168.100.100: bytes=32 time<1ms TTL=128
Reply from 192.168.100.100: bytes=32 time<1ms TTL=128
Reply from 192.168.100.100: bytes=32 time<1ms TTL=128
Reply from 192.168.100.100: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.100.100:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

This tells me:

  • Host "pchuck1" is online and responding.
  • It's IP address is 192.168.100.100.


>>Top

Ping host by IP address, host responds.

I enter

ping 192.168.100.100

And I see

Pinging 192.168.100.100 with 32 bytes of data:
Reply from 192.168.100.100: bytes=32 time<1ms TTL=128
Reply from 192.168.100.100: bytes=32 time<1ms TTL=128
Reply from 192.168.100.100: bytes=32 time<1ms TTL=128
Reply from 192.168.100.100: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.100.100:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

This tells me:

  • Host "192.168.100.100" is online and responding.


>>Top

Ping host by name, host does not respond.

I enter

ping pchuck8

(I only wish I had 8 computers).

And I see

Pinging pchuck8 [192.168.100.107] with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.100.107:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

This tells me:

  • Host "pchuck8" is not online, or is not responding.
  • It's thought to exist, and to have an IP address of 192.168.100.107.

Possible problems:


>>Top

Ping host by IP address, host does not respond.

I enter

ping 192.168.100.107

(I only wish I had 8 computers).

And I see

Pinging 192.168.100.107 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.100.107:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

This tells me:

  • Host "192.168.100.107" is not online, or is not responding.

Possible problems:


>>Top

Ping host by name, host is unknown.

I enter

ping pchuck8

(I only wish I had 8 computers).

And I see

Ping request could not find host pchuck8. Please check the name and try again.

This tells me:

  • Host "pchuck8" is unknown.

Possible problems:


>>Top