Technology: October 2015 Archives
It seemed like a good idea: Head to a coffeehouse this afternoon with my daughter as she worked on her homework for Monday. We'd have a change of scenery from home, get some lunch, and I'd be there to keep her on track without hovering too closely. For whatever reason, it seems less claustrophobic to sit together at a small table in a coffeehouse than it does to sit around a larger table in our kitchen. Most of her schoolwork required access to the Internet -- a situation that I deplore -- so we needed to be some place where the wifi was working.
After church, we headed to our favorite coffeehouse, ordered a gluten-free grilled cheese sandwich and a breakfast burrito, a bottomless coffee, and a San Pelligrino orange, and sat down to work.
We could connect to the router, but our devices were never assigned an Internet Protocol (IP) address, which meant the Internet was inaccessible. We tried on two different Windows laptops, an iPod, and an Android tablet with the same result.
My daughter spoke to the barista, whose only advice was The IT Crowd mantra:
We dutifully rebooted the laptops and tried again -- no joy, as I expected. I asked the barista if he could reset the router, and he said it can cause problems for their cash register and order printer, problems that last for hours. That's understandable, but my daughter had to have wifi, so we left.
As it was close to 1 p.m. and the Sunday lunch rush, Panera or Qdoba seemed like a bad idea. I decided to head to a close-by coffeehouse that was new enough that I thought it might be less crowded, but we had the same problem there, as did another customer. I really should have checked the connection before ordering drinks.
So we headed for home, $30 poorer and having wasted two hours.
Here's my theory: While the router was working at each of the coffeehouses, its pool of available IP addresses was exhausted.
When you connect to a wifi network with your laptop, phone, or tablet, your computer requests an IP address. In the bad old days, you would have to ask a system administrator for an available address on the network, then manually configure your network adapter with that address and reboot your device.
In response to this inconvenience, the Dynamic Host Configuration Protocol was developed and became widely available in the late '90s. With DHCP, your device automatically sends out a request for an IP address when it connects to a network, and a DHCP server (usually resident on the router) answers the request by granting a "lease" on a specific address for a specific length of time.
The DHCP server only has a certain number of addresses in its pool, and leases are granted for a fixed length of time. The duration of the lease and the number of addresses are often part of the router configuration. In a typical setup, a total of 254 addresses are available, with a small number of those addresses reserved for devices that are always connected, and the remainder available to the DHCP server. A typical lease length is one day. Once the lease is granted on an IP address, the address will be unavailable for reassignment until one of three things happens: (1) the lease expires, (2) the lease is manually revoked, or (3) the DHCP server is restarted (e.g., by turning the router off and back on).
This means that if around 250 customers connect to your network over the course of a few hours, you'll run out of IP addresses for the rest of the day, and anyone trying to connect to the network after that point will be disappointed.
You may think it unlikely that so many would try to connect in such a short time, but consider the ubiquity of wifi-enabled phones and tablets. If a customer has ever connected to your network with her phone, the next time she comes in to order a latte to go, it's likely that the phone will automatically request and receive an IP address from the router, even if the phone never leaves her pocket.
Dear coffeehouse owner, as much as I enjoy your coffee and the ambiance you've created, it's the ability to get work done at your establishment that allows me to justify to myself the extra cost of the coffee and food over what I'd spend to drink and eat at home. If a coffeehouse's internet connection is hit-or-miss, I'll have to find somewhere else to work -- and somewhere else to spend money.
There are some steps you can take to improve the likelihood that your customers will get the wifi service they expect:
- Reduce the DHCP lease duration to an hour or less. Exactly how you do this will vary by router -- check your manual. There's no downside to this; if a customer needs to be connected for a longer period, his device will automatically send a renewal request, and the customer won't perceive a break in service.
- Expand the number of available DHCP addresses. Your default setup may not be maximizing the number of addresses your router can support.
- Require users to check a box or click "Connect" before they can get on the internet. Both Starbucks and Panera do this, and it should eliminate the kind of inadvertent connections I mentioned above. This also gives you a chance to display and receive consent to your terms of usage before granting the customer access to your network.
- If possible, move your business-critical devices to their own secured network and assign fixed IP addresses to each. Separating your credit-card machine, order management system, and your PC with schedule and HR records from the public network just makes good sense, and it also allows you to reset the public network -- and clear any zombie DHCP leases -- without affecting the devices you need to run your business. Even if a separate secure network isn't practical, reserving fixed IP addresses for your business-critical devices will make it easier for your devices to find each other and resume operation if a router reset becomes necessary.
And if you need a hand with any of the above, give me a holler. I do computer stuff for a living, and while networks aren't my speciality, I've had to configure routers as part of my job. And I will work for coffee.