Fix Harry's wifi

From Finninday
Revision as of 17:26, 4 February 2014 by Rday (Talk | contribs)

Jump to: navigation, search

Background

A friend suffers from crappy wifi. I keep telling him that I'll fix it, but I haven't yet. We spend time talking or eating instead of poking at the wifi. Before I go over again, I want to have a streamlined process for diagnosing the problem with all the necessary tools pre-loaded on my laptop so I can look like a rock star.

So I'm practicing on our wifi and trying to make sure I've got all my tools together. These procedures assume that I have access to an Android phone and a linux laptop both on the wifi network of interest.

Wifi Analyzer for signal strength

At home I get a maximum signal of about -50 db from Portlandia when the phone is less than 5 feet from it. I get about -75 db from ahub which is one floor down from the phone.

Identify protocol

Standard android wifi settings page tells me link speed, security type, and IP.

  • Portlandia: 54Mbps (802.11g)
  • ahub: 36Mbps (mixed 802.11b+g)

Other possibilities are:

  • 802.11n (2009) up to 150Mbps
  • 802.11ac (2012) up to 866Mbps

see what dhcp is giving us

root@ferret:~# less /var/lib/dhcp/dhclient.leases

lease {
  interface "eth0";
  fixed-address 10.0.0.6;
  option subnet-mask 255.0.0.0;
  option routers 10.0.0.3;
  option dhcp-lease-time 43200;
  option dhcp-message-type 5;
  option domain-name-servers 8.8.8.8,8.8.4.4;
  option dhcp-server-identifier 10.0.0.3;
  option domain-name "finninday.net";
  renew 0 2013/11/24 04:12:33;
  rebind 0 2013/11/24 08:53:29;
  expire 0 2013/11/24 10:23:29;
}

what does the routing table look like?

root@ferret:~# ip route list
default via 10.0.0.3 dev eth0  proto static 
10.0.0.0/8 dev eth0  proto kernel  scope link  src 10.0.0.6  metric 1 

root@ferret:~# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.0.3        0.0.0.0         UG    0      0        0 eth0
10.0.0.0        0.0.0.0         255.0.0.0       U     1      0        0 eth0

measure ping time and packet loss with mtr

  • on a wired network ping time is between 0.2 and 0.4ms
  • across portlandia ping time between a desktop and a tablet is between 1.9 and 99ms. Average is 57ms.
  • there is no measurable packet loss

measure bandwidth with curl

The curl manual says the speed is measured in bytes per second.

Over a wired link, I get this:

root@ferret:~# curl -o /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 20  500M   20  103M    0     0  5683k      0  0:01:30  0:00:18  0:01:12 6896k^C

Over Portlandia, I get about 2MBps out of a theoretical max of 6.75MBps:

[rday@servo lf]$ curl -o /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  7  500M    7 38.2M    0     0  1595k      0  0:05:20  0:00:24  0:04:56 1936k^C

Over ahub, I get about 2.6MBps out of a theoretical max of 4.5 to 6.75MBps:

[rday@servo lf]$ curl -o /dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 11  500M   11 56.3M    0     0  2397k      0  0:03:33  0:00:24  0:03:09 2632k^C