Networking

Analysis: All about Broadband Tuner

Let’s make one thing clear about Broadband Tuner 1.0, the utility released by Apple in late November: it’s for people with broad band connections.

Apple says, “The Broadband tuner allows you to take full advantage of very high speed FiOS-based Internet connections that have a high latency.” FiOS is fiber-optic service, like that provided in some U.S. cities by Verizon. FiOS delivers information through fiber optic cable carried all the way to a subscriber’s house—the last leg is not handled by existing cable TV or telephone lines, but by small fiber cables wired to the destination point.

FiOS can provide speeds of 622 megabits per second downstream and 155 megabits per second upstream. To compare, a current fast U.S. cable modem might provide 3Mbps downstream and 512Kbps upstream, so yeah, FiOS is much faster. The faster your connection, the more important it is that your computer has a large buffer for sending and receiving information because so much data is in transit at any given time. All that Broadband Tuner 1.0 does is set three system-wide variables, using the sysctl facility, to increase the size of the TCP buffers.

Why does this matter? Peter Jerde deftly explained it on MacJournal’s subscribers-only discussion list:

While typical broadband solutions do have lower absolute latency than slower technologies like dialup, they have much higher relative latency: instead of counting the latency in milliseconds, count it in bits and bytes. Five milliseconds is only 160 bytes on a nice old 256Kbps DSL line. That same 5ms is over 3KB at 5Mbps.

That’s latency over your local link—latency over the Internet is much higher, as each hop adds a bit of delay, primarily due to that silly speed-of-light limit. From my home in Minnesota, my ISP is 7ms away, Apple’s Web server in California is 60ms away, and Sony’s Web server in Japan is 190ms away. Assuming I could achieve 5Mbps to Sony, upwards of 120KB of data would be “in transit” at any given time. If the buffers are smaller than that, you might wind up in a situation where each side stops transmitting while waiting for an acknowledgment. That’s inefficient.

Broadband Tuner makes TCP buffers bigger to avoid this inefficiency. It increases the default TCP sending buffer from 32KB to 128KB, the default receiving buffer from 32KB to 350KB, and the default maximum buffer size for both sides of a connection from 256KB to 500KB (using the traditional definition of 1KB as 1024 bytes).

The Broadband Tuner installation package doesn’t actually install any files. The .mpkg, or multi-package, file contains two normal packages, each of which serves only to let the Installer run pre-installation and post-installation scripts. The .mpkg script looks inside any

/etc/sysctl.conf
file, if one exists, to see if Broadband Tuner has added lines to set the variables as Apple documented in the update’s release notes. If not, you’re allowed to “install” Broadband Tuner, and its post-installation script adds the documented variables to the
/etc/sysctl.conf
file, creating the file if necessary. If the .mpkg script finds that you’ve already installed Broadband Tuner, you instead get to choose the “uninstaller,” whose post-installation script attempts to remove the variable definitions from the
/etc/sysctl.conf
file.

That’s all there is to Broadband Tuner. It copies no files to your system, and only creates a small text file (or adds a few lines to it if it already exists). It does not add any binary code or modify the kernel in any way. Therefore, reports like MacFixIt’s of kernel panics after installing it are illogical at best. Can’t happen. And then an MWJ staff member experienced similar trouble after installing Broadband Tuner 1.0—not a kernel panic, but a refusal to get through the kernel-loading part of the boot process. So much for that theory.

We don’t know exactly what causes these problems, but we suspect it is the previously mentioned

/etc/sysctl.conf
file. The scripts in the installer package attempt to insert new variable definitions in that file if it already exists, even though Mac OS X does not ship with such a file. Since the kernel reads and parses the file during startup, other optimization utilities may have created such a file for you. If the file exists and is formatted in a way that Apple’s simple Perl installer script does not expect, it’s possible that the Broadband Tuner installer or uninstaller could corrupt the file, causing problems at startup.

For most people, the easy fix is to delete the

/etc/sysctl.conf
file. In all cases we’ve seen, removing the file solves the startup problems, reinforcing the “damaged or malformed file” theory. The easiest way to implement the easy fix is to boot into single-user mode by holding down Command-S during startup. At the command line, follow the on-screen instructions to mount the hard disk with write permission, and then type
rm /etc/sysctl.conf
and press Return. MacFixIt uses the path
/private/etc/sysctl.conf
—that’s the full correct path, but since all of the affected Unix folders have links in the expected locations to their true locations inside the /private directory, typing
/private
is not required.

The easier way around potential problems is not to install Broadband Tuner 1.0 unless you have a FiOS connection, or one that’s just as amazingly fast. Using buffers larger than necessary not only wastes RAM, but also may slow down your TCP connection. Buffers that hold more information than TCP can transmit or receive in a reasonable time may lead the network stack to send fewer gigantic packets, instead of a greater number of smaller packets that could provide more throughput.

For non-FiOS connections, use a utility that lets you tune your system to match your connection. The most recommended utility is Sustainable Softworks’ $30 IPNetTunerX, with the capability to adjust most network variables along with explanations of them and pre-set documents for common network situations. We’re not aware of a product that will automatically test your connection and recommend the best settings, though it would be both useful and popular.

In the meantime, feel free to use Broadband Tuner if you have a FiOS connection, or try IPNetTunerX for other situations, or live with the system’s defaults. Optimization can become a second career if you get caught up in every detail, so if you’re the obsessive-compulsive type, maybe you should just leave it alone.

[ Excerpted with permission from the December 10 issue of MWJ, published by MacJournals.com. Copyright 2005, GCSF Incorporated. For a free trial to MWJ, visit www.macjournals.com. ]

Subscribe to the Apple @ Work Newsletter

Comments