Tuesday, November 29, 2005

Apple Didn't Just Release BroadBand Tuner ... It Released Consumer Primer!



Today's Mac news outlets are widely reporting that Apple released a small software utility called: "Apple Broadband Tuner 1.0"

Download from here: Apple Broadband Tuner 1.0

I could type endlessly about the implications this has or the underlying reasons Apple released this utility ... but, I won't.

I'll say this simply ... this was a VERY calculated and concerted move by Apple to slowly implant the notion that, "broadband is better" in the Apple Computer owner's mind.

Truly, Apple telling it's consumers that "it's tuning broadband" for better performance has a psychological impact on the Apple Customer base ... but that's not where this Consumer Primer 1.0 ends ...

If you didn't notice; Apple has stopped shipping Macs with built in modems ... now 56k modems are an external USB OPTION ... read that again ... option!

Apple is slowly axing the landline 56k modem the same way it did with the floppy ... by just not including it ... and then hyping the alternative ... can anyone say "floppy drive NO vs. Super Drive WOW"

And that is truly the difference between broadband options such as T1, 802.11b/g wireless hotspots, cable modem, DSL, and 2 WAY satellite and 56k telephone internet access ... one is a SLOW "NO" the other is a quick and loud "YES!"

Apple's focus is becoming online downloaded digital media via iTunes Music Store Songs and now Video ... in order for these services to grow ... it needs ... well ... more people that can connect!

5 comments:

The Resurrection said...

All true - plus with 50% broadband now and the fact in most places, broadband can be cheaper than dialup ... or very close (SBC $16.99 6 months - Earthlink DU $14.99 6 months), though I'm sure 70% is the max. The others will never give up :-)

Anonymous said...

Who would have thought that broadband is better.

Why should I pay for a modem I will 99.5% of the time never use? I reserve .5% for Adelphia cable service.

Who would think they did this as a service to those customers using high-bandwidth, high latency connections. I have seen some fairly substantial increases with it, but not if I had a modem.

--Bob. said...

True! ...but as was done with the floppy, someone has to lead the market. USB existed as a standard port for sometime before Windows started making use of it. The floppy is finally starting to be an option in many Windows systems. Apple now also includes BlueTooth by default. If no modem and "Consumer Primer 1.0" is the quid pro quo to having the technolgy we should have had 10 years ago, then I say sign me up!

John Francini said...

Broadband Tuner merely tweaks the settings of three network parameters inside the Mac OS X kernel -- something anyone who has a little bit of experience with going 'under the hood' can do.

The problem is simple: The TCP/IP network stack in OS X is tuned for the best throughput on slow network connections, such as dialup or low-speed IDSL. On faster networks, OS X doesn't wring the maximum speed possible from the connection because the settings are not optimized for it.

Here's a good explanation of what's going on. When your program opens up a network connection, imagine that it has set up a whole bunch of people who take data packets -- we'll use buckets in this analogy -- and pass them along from one to another until they reach their destination.

So when your program sends some data, it starts handing buckets to the first person in line -- the socket buffer handler. He's got a bunch of storage spots--a buffer, in computer-speak--he can use to put buckets. If he's got a place to put your bucket, he does so; else he holds onto it until a spot opens up. If his hands aren't free, he won't accept another bucket, and your program has to wait until he can store the bucket. The amount of space he has for buckets is controlled by the kern.ipc.maxsockbuf parameter.

While the socket buffer handler is busy filling spots with buckets, there's another guy that lives in the TCP/IP network part of the kernel who's taking buckets from all the socket buffers of all the active network connections, enclosing them in waterproof cases, affixing a shipping label on them, and putting them into storage spots in the TCP sendspace buffer. If he runs out of storage spots for packaged buckets, he stops taking them from socket buffers until spots free up. The amount of space he has for packaged buckets is controlled by the net.inet.tcp.sendspace parameter.

Finally, a guy that lives in your network connection takes the packaged buckets out of the sendspace buffer and puts them on a conveyor belt leading out of your system and onto the Internet. The speed at which he can put packets onto the conveyor belt depends on a number of factors, but the biggest one is the speed of the belt. Slow connections have slow conveyor belts; faster ones have faster belts, naturally.

The same exact thing happens in reverse when receiving packaged buckets: they are placed by the guy in the network connection into the receiving buffer (whose size is controlled by the parameter net.inet.tcp.recvspace), where they are removed, unpacked, and placed in the destination socket buffer by the socket buffer handler, and then finally handed to the program that wants to receive data.

Broadband Tuner increases the values of the three parameters I mentioned above.

You'd think this was All Good, wouldn't you? More space for the bucket-handlers means all that programs would all run quicker, yes? Well, not so fast. Some people on MacFixIt have reported that they've seen slowdowns when they install Broadband Tuner--slowdowns which reverse themselves when they remove it.

Why would this happen? Going back to our example, because of the training given the guys emptying the the buffers. They've been told to start moving buckets out of their buffers only when a certain percentage of the buffer is occupied -- say, around 85%. (Numbers here aren't exact, but are being used as examples.) And they've further been instructed to wait until only 10% of the buffer is occupied before telling the upstream guy (the one filling the buffer) that it's OK to start adding buckets again.

What this means is that if the buffer sizes are too big, it can be as bad as having them be set too small: time gets wasted while buffers fill and empty. Data buckets move in bursts, with large pauses, instead of in more continuous streams.

How does this relate to the reports on MacFixIt? Simple: the Broadband Tuner settings are too big for almost any home broadband network slower than Verizon's FiOS (Fiber-Optic Service).

If you are familiar with the UNIX command line environment in Mac OS X, you can create a settings file named /etc/sysctl.conf with more modest (but more useful) settings than those used by Broadband Tuner. Your file should contain:

net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=65536
kern.ipc.maxsockbuf=524288
net.inet.udp.recvspace=73728
net.inet.tcp.delayed_ack=0

and nothing else. The settings will be used the next time your computer is restarted. I've been using these settings for a couple of years now on my 800 MHz TiBook and have enjoyed very responsive network traffic.

These settings have another side benefit that I discovered a week ago. My wife was having problems printing to a new Canon iP6600D printer connected to my Airport Extreme base station. I wasn't having any problems at all. Her computer was configured exactly the same as mine, but with one difference: her network tuning settings were at Apple's defaults. I applied the settings I use to her computer, and voila! Problems gone.

Just my USD0.02...

Anonymous said...

Um, is this tongue in cheek, or are you being serious? I suppose there are people who still have to use dial up, just as they may have to use an old 68k Mac. But anyone who has a chance to use a G5 or broadband would never willingly go back. Apple doesn't need to convince anyone that broadband is great -- it's too obvious!

Tim Selander
Tokyo, Japan