[Date Prev][Date Next] [Thread Prev][Thread Next]
Re: In the service of Aunt Tillie -- Zero-configuration networking
- From: Stuart Cheshire <cheshire apple com>
- To: <fedora-devel-list redhat com>
- Cc: "Eric Raymond" <esr thyrsus com>
- Subject: Re: In the service of Aunt Tillie -- Zero-configuration networking
- Date: Sat, 6 Mar 2004 08:04:50 -0800
Sorry for the delay replying. My first attempt to send this mail did not
go though because I was not subscribed to the list. Now I've subscribed
and I'll try again.
There seem to be some misunderstandings about Zeroconf, which I will try
to correct. It would be a pity if red herrings impeded the spread of a
good technology that has the potential to make people's lives a lot
easier. Actually, I should clarify that. It's more than just "potential".
Zeroconf has been making Mac users' lives easier for a couple of years
now. Now that HP is shipping Apple software like iTunes preinstalled on
its Windows PCs, Zeroconf is making Windows users' lives easier too.
Products like TiVo use Zeroconf, so users of consumer electronics
customers are also benefiting. I'd like to bring these benefits to the
broader Linux community too, but... it seems to be an uphill struggle
There seem to be two concerns, the trade mark law suit, and the patent.
1. Trade Mark Law Suit
The Darwin mDNSResponder project existed long before Apple's marketing
people even thought of the word "Rendezvous". "Rendezvous" really doesn't
have a rigorously defined narrow meaning. "Rendezvous" is Apple's
marketing term for the broad idea that "computers should suck less".
Technologies like self-assigned addressing, IPv6, mDNS, DNS-SD, etc., are
all contributing components towards that broader goal.
The CVS project is called "mDNSResponder", not "Rendezvous". The word
"Rendezvous" does not appear in any header file names, variable names,
function names, or library names. In fact there are only TWO occurrences
of the word "Rendezvous" in the mDNSPosix directory, and both are in the
>Apple uses the brand name "Rendezvous" to describe our implementation of
>zeroconf technologies. This sample is designed to show how easy it is
>to make a device "Rendezvous compatible".
I should point out that other trade mark names like "Solaris" also appear
in the ReadMe file, and in fact Microsoft's registered trade mark
"Windows" appears more times in the source code than the word
"Rendezvous" does, in the form of checkin comments like "2003/08/06
21:33:39 Fix compiler warnings on PocketPC 2003 (Windows CE)", and so on.
Is the mention of trade mark names in the ReadMe file and checkin
comments really a valid reason to reject a technology? I think not.
2. The Patent
Eric Raymond wrote, "This stuff was invented by Stuart Cheshire".
I'll respectfully decline that honour. The algorithm for self-assigned
link-local addressing is as follows:
Pick an address; if someone is already using it, pick a different one
To claim to have invented that would be some kind of hubris. MacTCP did
that in 1990; AppleTalk did it in 1985, probably many things did it
before that too, and every five-year old child finding a place to sit in
the classroom uses the same algorithm.
Nonetheless, Microsoft applied for, and in August 2000 was granted,
United States Patent 6,101,499 "Method and computer program product for
automatically generating an internet protocol (IP) address". I'm not sure
whether it should have been granted, and I don't know that it would stand
up in court. Even ignoring the other prior art, at the time Microsoft
applied for this, version 6 of IP already had self-assigned link-local
addresses, and nowhere in the patent claims does it restrict the scope of
the invention specifically to an older version of IP. The claims describe
the patent as applying generically to "IP" as a whole, yet at the time of
the application, "IP" as a whole already had self-assigned link-local
addresses, as specified in Standards Track RFC 1971, August 1996 (and
published in Internet Draft form long before that). Furthermore, UPnP,
which claims to be some kind of semi-open standard, also requires IPv4LL
If we all scurry away in fear any time Microsoft files a patent
application, no matter how valid or otherwise it may be, then we're
handing victory to them on a plate.
Regardless, even supposing this patent is sufficient reason to scurry
away in fear, it doesn't make much difference. If we're afraid of
Microsoft's patent, then:
(a) don't do self-assigned addresses at all. The interesting part of this
is, after all, mDNS and DNS-SD. If you have a DHCP server on the network
(as most Linux users do) then you have a working IP address anyway,
without self-assigned addresses. The part that's still missing is mDNS
(for local naming without a DNS server) and DNS-SD (for browsing to find
what's out there). That's what's provided by Apple's Darwin mDNSResponder
(b) or, implement a local DHCP server on Linux which listens for its own
DHCP DISCOVERs, and then, if they're not answered by some other server
within 5 seconds or so, sends back a DHCP OFFER containing a 169.254/16
address. The DHCP client will do its usual ARP probe (as required by RFC
2131, March 1997) and send back a DHCP DECLINE if it finds the address
already in use. Can Microsoft's patent prevent us from implementing an
RFC 2131-compliant DHCP server?
(c) or, do self-assigned addresses, but only IPv6 self-assigned addresses
(RFC 1971), not IPv4 self-assigned addresses. Back in 1998, IPv4 was
still very important. Today it is becoming less so, as more and more
systems gain IPv6 capability. The fact that most ISPs don't provide IPv6
service is not a problem here. Remember that the main focus of Zeroconf
today is on the small home network, the local link. Regardless of how
much or how little IPv6 support your ISP may provide, you can *always*
use IPv6 on your local link, using self-assigned link-local addresses,
and indeed this is exactly what OS X does today. Even with absolutely no
other working infrastructure, you can *always* use IPv6 with Multicast
DNS ("dot-local") names on the local link. I believe that IPv6+mDNS may
actually be one of the catalysts that helps jump-start adoption of IPv6,
by making IPv6 begin to be something that suddently starts to be useful
to everyone, everywhere, instead of having to wait for everyone's ISPs to
start offering IPv6 support.
Eric Raymond wrote, "The inventor of zeroconf, Stuart Cheshire, tells me
... he doesn't understand the politics of ... the Linux community".
It's true. I don't. I've worked hard to make a technology that makes
people's lives easier, and I've worked hard to get my employer to make
that technology available to everyone on the most liberal terms I could
possibly manage. If someone can tell me what I'm doing wrong, I'm happy
Stuart Cheshire <cheshire apple com>
* Wizard Without Portfolio, Apple Computer, Inc.
[Date Prev][Date Next] [Thread Prev][Thread Next]