Troubleshooting Network Problems

From Mac Guides

Jump to: navigation, search

A wide variety of network problems can occur while using your Mac. The causes are just as diverse, however a few techniques can fix a large number of problems.

Contents

Identifying a Slow Connection

Sometimes, the internet may appear slow, and unresponsive, or webpages tend to load more slowly. The causes may be varied, but if all webpages appear to load equally slow, and you suspect the problem might be on your LAN, try this.

Identifying excessive LAN traffic

  • Install a bandwidth monitoring tool, such as MenuMeters. With no internet applications running, it should show zero traffic.
  • Use the shell. Type this into the Terminal:
 sudo tcpdump -i en1

This will ask for the root password (as it is running through sudo) and will dump out all tcp traffic for the specified interface. "en1" is typically, but not always, the Airport. Typing ctrl-q and ctrl-s will pause and unpause the output. Ideally, you should be able to identify any domain listed in tcpdump's output. Identifying domains is tricky, but look for ".com" and ".net'.

  • If tcpdump shows lots of unrecognizable domains, it may mean your computer or a computer on your LAN is running a net-intensive program. Common causes are filesharers (BitTorrent, Acquisition) or spyware (more common on Windows-based machines).

Identifying bad paths to remote sites

Sometimes, a remote website is unresponsive for others, but not the local machine. This is likely due to a bad node in the path between the local and remote machines.

  1. Open /Applications/Utilities/Network Utility
  2. Open the Traceroute tab
  3. Type in the remote website, such as "google.com" and hit Trace
  4. After a while, you'll see a list of every node between the local machine and remote. The output looks like this:
 Traceroute has started ...
 traceroute: Warning: google.com has multiple addresses; using 72.14.207.99
 traceroute to google.com (72.14.207.99), 64 hops max, 40 byte packets
  1  10.114.32.1 (10.114.32.1)  914.657 ms  846.880 ms  941.103 ms
  2  stagflstag-rtr1-3.se.rr.com (24.26.16.9)  868.670 ms  883.073 ms  509.596 ms
  3  pos10-0.tampflerl-rtr2.tampabay.rr.com (65.32.8.25)  370.200 ms  143.648 ms  228.678 ms
  4  pos6-0-oc-192.tampflerl-rtr4.tampabay.rr.com (65.32.8.137)  796.923 ms  282.122 ms  893.738 ms
  5  pop2-tby-p0-1.atdn.net (66.185.136.185)  1288.203 ms  905.030 ms  456.472 ms
  6  bb1-tby-p0-3.atdn.net (66.185.138.208)  67.447 ms  75.024 ms  66.814 ms
  7  bb2-atm-p7-0.atdn.net (66.185.152.245)  51.564 ms  321.921 ms  904.427 ms
  8  pop2-atm-p5-0.atdn.net (66.185.138.43)  908.132 ms  520.248 ms  100.082 ms
  9  google.atdn.net (66.185.147.218)  342.928 ms  53.205 ms  54.449 ms
 10  72.14.238.96 (72.14.238.96)  124.733 ms  108.714 ms  686.391 ms
 11  72.14.238.233 (72.14.238.233)  922.571 ms  937.112 ms  920.293 ms
 12  66.249.94.234 (66.249.94.234)  866.052 ms  941.489 ms  919.744 ms
 13  66.249.94.98 (66.249.94.98)  958.012 ms  924.657 ms  931.739 ms
 14  72.14.236.181 (72.14.236.181)  970.860 ms  831.862 ms  732.118 ms
 15  72.14.236.130 (72.14.236.130)  370.619 ms  822.449 ms  888.695 ms
 16  66.249.94.72 (66.249.94.72)  812.530 ms  830.257 ms  624.533 ms
 17  72.14.236.130 (72.14.236.130)  343.272 ms 72.14.207.99 (72.14.207.99)  1113.232 ms  962.343 ms

The local machine is first (hop #1) and the remote machine is last (hop #17, in this case). It means the connection to the remote machine went through 17 nodes (computers, routers...). The three numbers following the node name are 3 times. The lower this time is, the better. If a time shows as simply "* * *" it means that node didn't reply to the traceroute request in 5 seconds.

Identifying Internet-related issues

Sometimes, the local net connection will be fine, but no remote sites will respond. Here are some common problems, and solutions

Bad DNS Cache

If some (or all) remote websites fail to respond, and the connection to the internet is valid, the DNS cache may be old or out of date. To reset the cache, and hopefully restore internet conenction, type the following into the Terminal:

 sudo lookupd -flushcache

(You'll be asked for the root password, since sudo is being used).

That action has the effect of making all internet queries ask for the actual IP address of the remote server, again, rather than relying on a previously recorded IP address.

See Also