Do you ever have a problem such as:
- I can't get www.yahoo.com in my browser?
- I can't get my email?
- I can't publish my new web site with Fusion?
Then you might need to do some basic TCPIP troubleshooting. I recommend at least trying the stuff I'm talking about here before you call your ISP technical support line.
Then, when you talk to your ISP's tech support people, you can give them some useful information that will help them identify your problem a little quicker than the stock "Let's reboot your system/cable modem/DSL box etc. and see if it works then" answer.
To be fair to the overworked and underpaid level-one tech support people out there, sometimes a simple reboot does clear up a problem. So save yourself a wait on hold
- Reboot everything, and if that doesn't help,
- Do some of your own troubleshooting, and if that doesn't help,
- Then call.
At worst, the poor new techie on the other end might say "huh?" If so, you can point their supervisor here for some tips about how to train their support staff to do their jobs a little better <evil grin>.
Most of the tools I'll tell you about here run from the Windows command line, AKA an MS Dos Session. In case you don't know how to open a command line session, here's the easiest way:
In Windows 9x or ME, do this:
- Click Start, Run, type command, click OK
In Windows NT, 2000 or XP:
- Click Start, Run, type cmd, click OK.
- (Yes, I know there's an icon for it hiding in various places in the now many different flavours of the Windows Start Menu. But it's darn awkward to find, and doing a Start, Run, command or cmd always works.)
A short rant about Windows:
- The point and click environment of Windows is fine -- until something goes wrong. Then, it really pays to know some of the useful stuff you can do at the command line.
- The command line interface is a little scary. Yes, you can break your system by using it incorrectly.
- As long as you read the screen carefully, and respond accordingly, you won't hurt anything. If you stick to just using the examples I'm providing here, we won't trash your system. Promise!
Useful command line tools
In Windows, you can open a command line session, and type (for example) tracert www.yahoo.com. You'll see something like this:
Tracing route to www.yahoo.akadns.net [220.127.116.11]
over a maximum of 30 hops:
1 10 ms 10 ms 10 ms ubr-j1.ivideon.com [18.104.22.168]
2 130 ms 1772 ms 231 ms 64-59-159-254.ivideon.com [22.214.171.124]
3 180 ms 451 ms 390 ms rd2nr-fe1-1-0.wp.shawcable.net [126.96.36.199]
4 40 ms 40 ms 50 ms rc2sh-atm4-0-1.mt.shawcable.net [188.8.131.52]
5 40 ms 40 ms 50 ms exodus1-pos.mt.shawcable.net [184.108.40.206]
6 40 ms 51 ms 40 ms 220.127.116.11
7 60 ms 60 ms * bbr01-p0-0.wlhm01.exodus.net [18.104.22.168]
8 60 ms 70 ms 70 ms bbr01-p4-0.whkn01.exodus.net [22.214.171.124]
9 60 ms 70 ms 60 ms bbr02-g3-0.whkn01.exodus.net [126.96.36.199]
10 60 ms 71 ms 70 ms bbr02-p1-0.jrcy01.exodus.net [188.8.131.52]
11 * 70 ms 81 ms bbr01-p5-0.stng01.exodus.net [184.108.40.206]
12 70 ms 70 ms 120 ms dcr04-g9-0.stng01.exodus.net [220.127.116.11]
13 70 ms 70 ms 80 ms csr22-ve241.stng01.exodus.net [18.104.22.168]
14 160 ms 80 ms 70 ms 22.214.171.124
15 70 ms 80 ms * 126.96.36.199
16 70 ms 70 ms 81 ms www10.dcx.yahoo.com [188.8.131.52]
Each numbered line represents one "hop" along the route between you and Yahoo. It shows you three time values, the "friendly name" of the router you crossed, and the numeric IP address of the router you crossed.
Tracert sends three packets out, and the three numbers indicate the time in milliseconds that it took those three packets to travel from you to that router.
- When you see a really big number or two (over 500 ms), you'll know that router is pretty busy. It's not completely max-ed out, but it's a very likely suspect for the source of your trouble if you are finding things a tad slow.
- When you see an asterisk (*) instead of a time value, your packet was dropped or timed out.
- When you see three asterisks on one or more lines, you will often not be able to get where you're going, and you'll know where on the Net your data packets died.
If you see three * results within the first two or three "hops," the problem is very likely with your Internet Service Provider's networking equipment. Knowing this, it can be worthwhile to phone them, and ask nicely if they are aware of the problem, and how long it might take before things work again.
- If the "three asterisk" problem on your ISP's network is chronic, you know you're using an over-subscribed or under-equipped (or both) ISP,
- Document your problems, and ask to speak to a manager at your ISP. Present your facts, and ask if there are plans to add more or better equipment to the network. If the answer is "no," it's time to think about switching to another ISP.
- On the @Home cable modem network, I used to see solid asterisks real often inside the shawcable network. And when I did, I phoned and complained, and asked for (and usually got) a credit on my account.
Note that many corporate network firewalls don't pass tracert packets for security reasons. My workplace's network is one such environment.
If you didn't make a typo in the address part of the command, you may need to fall back on more basic network/Internet diagnostic tools.
Windows 9x and ME all have a graphical diagnostic tool that lets you see your TCP/IP network settings. It also lets you do useful things such as releasing and renewing your "automatic" network configuration (DHCP, or Dynamic Host Configuration Protocol) settings.
If your system is set up to get "automatic" settings from a DHCP server, you may need this tool. Even the Windows XP networking layer can get "confused" and not be able to connect out.
There's no icon for it in the Start menu, so you have to get at it this way:
- Click Start, Run, type winipcfig in the box, and hit OK.
To see everything you might need to know about your IP settings, you might have to click the More Info button, or or choose a different network interface in the pull-down list at the top.
If you're trouble-shooting a running dialup connection, you to look want the PPP Adapter. If you're on a cable modem or other broadband connection, choose that network device from the list.
This information is pretty hairy network geek stuff, but if you have even one bad setting here, guess what? You can't get or send email, see web sites, or do much of anything else on the Internet. The lights are on, but nobody thinks you're home.
If you like mucking about at the command line, the good news is that all the 9x versions of Windows (including ME) also give you <ta-da>:
If you run Windows NT, 2000, or XP, guess what you don't get? That's right; you don't get the somewhat friendlier winipcfg graphical diagnostic tool. And brave Win9x-ers can do this too!
- Start a command line session as explained above. The command we're going to look at here is ipconfig.
- To see the various options, type this: "ipconfig /?" (without the quotes) and press Enter. Feel the power! <grin>
Some of you on Windows 9x, or NT might have had some of that wonderful "help" content scroll off the top of your screen. You may need to type "ipconfig /? | more" to see all of it.
My two favourite ipconfig commands
- Ipcfg /release (or) ipcfg /relase /all (That removes your current set of automatic settings.)
- Ipcfg /renew (or) ipcfg /renew /all (That queries your network DHCP server to send you a fresh set of automatic settings.)
Solving Automatic Configuration Problems
Every version of Windows -- including XP, can sometimes go "stupid" at the network layer. But instead of rebooting, try either Winipcfg or ipconfig to first "release" and then "renew" your network settings.
If you get an ugly error message on the "renew," read it and/or print it out. You will want to refer to it when you call your ISP to report the trouble.
Expect them to say something like "OK, reboot (your system, the modem, or the whatever)." You'll say back to them, "Yes, I've been there, done that, didn't get a t-shirt, and now when I run ipconfig (or winipcfg) I get this (read it to them) error message."
- The "ping" command is basic to all Internet communications. If you can't ping it, you can't talk to it at all.
"Ping" was named after the submarine sonar echo-location technology. You "ping" a resource, and if you don't get a response, it's not there for you right now.
If you type "ping /?" you'll get another one of those friendly dos command line help screens with all the syntax you can add on to refine the basic ping command. The useful thing is, you can "ping" either a numeric address or a named address.
- Ping 192.168.1.1 (the default address of a Linksys or many other home broadband routers).
- Ping www.microsoft.com.
Either way, you'll get back something like this:
Pinging 192.168.1.1 with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time=1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
The time= statement shows you the response time from the remote machine. Machines close to you will answer with faster times than machines far away, unless there are problems with congestion on the route to the machine.
In that case, you can run a tracert to see where the congestion is.
When to use ping
When diagnosing internet connectivity, ping can tell you some very basic information.
Check your winpcfg or ipconfig to see what the numeric address of your gateway is. Then type ping 192.168.1.1 or whatever the numeric address of the gateway is.
If the gateway answers your ping, it's probably running OK. And you know that your machine is OK too, because it can talk to the gateway.
Next, ping the numeric IP address of your primary and secondary DNS servers. If they answer, probably (but, again, not always) they are running OK.
Next, ping a named address, something you know is likely to be running OK, like www.yahoo.com, or www.ibm.com, etc.
If you get ping responses from the numeric addresses of your gateway and DNS servers, but not an outside named resource, something is definitely wrong somewhere. "Unknown host www.yahoo.com" is not a helpful error message, but it can be.
Maybe you made a typo in the address. Or maybe your primary and secondary DNS servers both "went stupid." That happens too.
If you get "unknown host" errors, it means you have a DNS problem (your settings are wrong, or the DNS servers are down, or the routing is gone, or…)
"Request timed out" is only slightly more useful. The DNS boxes are running and recognize the name, but you still can't talk to it.
That's when you reach for our old friend tracert to see where the problem is.
Exceptions where Ping or Tracert won't work:
If you work on a corporate network with a locked down firewall, you probably will not be able to use ping (or tracert) to diagnose connectivity to resources outside the firewall. Many corporate firewalls lock out the ICMP protocol and the TCPIP ports that the ping and tracert commands use.
I can predict one of the first things that will happen after you call your corporate help desk to report a network problem. They will "ping" your workstation to see if its network layer is running.