Mac OS X Conference: Wireless Networking with Rendezvous
By Macworld Staff
Stuart Cheshire, Apple Engineer and co-chairman of the Zeroconf working group, exposed the nuts and bolts of
Rendezvous to a packed room Wednesday at the O’Reilly Mac OS X Conference.
<?php virtual(“/includes/boxad.inc”); ?>
Rendezvous is Apple’s flavor of local zero configuration networking using standard IP protocols. In English, Rendezvous allows a user to connect any device to the local network and have that device be identified and used by the other devices on the network without the user having to waste time configuring the device.
As an example, Cheshire brought a webcam to the session. He had no documentation for the camera, and the camera had no outside buttons other than the restore defaults button.
Over TCP/IP, Cheshire would need the documentation to look up the camera’s default address to begin using it. However, this camera recently got a firmware upgrade to support Rendezvous.
When he plugged the camera into the local network with an Ethernet cable, the camera came up as a device in a local browser window on Mac OS X. Cheshire double clicked the camera’s entry and, voila, the camera’s html control page came up, complete with images of the audience.
Cheshire’s session explained how this worked, and why Apple recently decided to back Rendezvous and make it open source.
After numerous standards rose and fell, the world settled on TCP/IP as the wide area network protocol. Cheshire said the there is still local area chaos. In the past, computer users connected devices through serial, parallel and other ports. A second set of local connections has arisen, including USB, FireWire, Ethernet, Wi-Fi and Bluetooth.
Cheshire said that the problem with this is that someone who is making a $99 printer needs to create six flavors of printer drivers.
So, he had to pick one protocol. Cheshire wondered, if wide area communication had already converged on TCP/IP, could local converge as well using this standard? He has been working on this at Apple for at least five years.
The requirements are simple. You need to come up with a way to address the devices, a way to name the devices and a way to browse the devices that are there. So, he thought about what he would have to do to make established large area protocols work on the small network.
“It’s not rocket science,” Cheshire said. “AppleTalk had done it for fifteen years. It’s just mundane engineering.”
Rendezvous works a lot like AppleTalk. To get an address, a device using Rendezvous picks a random address in the format 169.254/16, with each of those numbers being the highest in the field. The device then queries the network to see if anything else is using that number. If no, fine, if yes, then the device picks another number. The device also checks periodically to see if anything new is using its number, and changes numbers if it has to.
Rendezvous assigns devices names similarly. A device picks a desired name in the .local subdomain and then issues a query to see if anything else is using that name. Again, the device picks another name if its first choice is in use and the device performs ongoing conflict catching just as it did with it’s device number.
Finally, Rendezvous needed some sort of Domain Name Server browser to look at the .local area.
“History is littered with the carcasses of attempts at browsing,” Cheshire said. “Why did they fail? They failed to keep it simple. They couldn’t resist adding features and failed to understand basic principles. The answer was AppleTalk.”
In Rendezvous, each device broadcasts its availability to all of the other devices on the local network, and the browser collects this information so the user can use the devices. With AppleTalk, the chooser was the browser, but on Mac OS X there is a DNS service browser included which you can build with project builder.
Cheshire said that AppleTalk was considered chatty — taking up bandwidth with maintenance traffic. Rendezvous avoids chattiness with aggressive caching, duplicate suppression in queries and duplicate suppression on answers.
The real benefit of Rendezvous is in bootstrapping. Yes, anyone can configure and use a device if they know how to get to it. But, with headless devices, Rendezvous provides a quick and painless way to contact and begin using the device without looking up where a manufacturer says that it’s supposed to be.
For devices that don’t even need a web configuration page, Cheshire said that Apple might create a tiny piece of basic control software that devices using Rendezvous may use.
Rendezvous was made open source by Apple in late September, so both the Rendezvous client and responder are available from Apple’s open source repository. According to Cheshire, all a developer needs do is contact Apple for a license to use the Rendezvous logo.