BOOTP & ARP history
mike at mtcc.com
Sat Mar 19 18:49:21 UTC 2022
I had completely forgot about RARP! We had similar considerations when I
designed the Lantronix terminal servers. We patterned them off of the
DEC terminal servers on the DEC side which net loaded images (I want to
think that DEC used MOP to download, but I could be wrong), but the
combination of bootp and tftp served our purposes for booting IP. The
thing about RARP is that getting an IP address is nice, but what about
the DNS server address at a minimum? I think we might have even had a
boot loader for Netware. Life was much more complicated with all of the
competing networking stacks and having no clue which one was going "win".
IPv6 in comparison was very familiar ground. To me it seemed that it was
ipv4 with bigger addresses and that was about it. But I've never
understood all of the strum und drang about ipv6.
On 3/19/22 3:30 AM, John Gilmore wrote:
> Michael Thomas <mike at mtcc.com> wrote:
>> There were tons of things that were slapped onto IP that were basically
>> experimental like ARP and bootp. CIDR didn't even exist back then.
> Speaking as one of the co-designers of BOOTP (RFC 951): yes, it was
> experimental. So why was it "slapped onto" IP? Well, in those days
> the IP protocol itself (now known as IPv4) was an experiment.
> The previous method of configuring each computer that was plugged into
> an IP network, was to have a human-to-human conversation with your
> network administrator, who would manually write down your new IP address
> on the local network, and also tell you the IP address of a local
> gateway. You would type this into a file in /etc and save it on your
> new computer's local hard drive, and your experimental network would all
> start working.
> Then it became 1985, disk drives were small and expensive, flash memory
> nonexistent. As a cost-reduction measure, Sun built some of the
> first end-user computers that could operate without any nonvolatile
> local storage: diskless workstations. They needed a way to boot without
> having a system administrator (or end user) type in the machine's IP
> address and the address of their gateway every time it booted. We
> had a network, why didn't we communicate this over the network?
> Sun designed and implemented a way of doing this, called RARP (RFC 903).
> This did not use IP packets; it required accessing the local Ethernet
> using packets with a unique Ethertype. And it only worked on Ethernet,
> not on any other possible LAN technology. I was the maintainer of the
> bootstrap ROMs in Sun workstations. Bill Croft and I thought we could
> do better. We put our heads together and said, "why can't we use IP
> broadcast packets for this?" (IP support for broadcast packets was also
> an experiment at around that time. IP multicast was barely a cloud on
> the horizon.) You could even write a portable UNIX program to be the
> BOOTP server or client (unlike for RARP).
> We got the BOOTP protocol working in prototype. Bill understood the RFC
> submission process, and we got it published as an experimental RFC.
> Sun didn't care. Their products shipped using RARP. Bill and I had
> lots of other things to do, so we ignored BOOTP for years.
> But Sun had a run of good luck at supporting and creating industry
> standards like TCP/IP and NFS. 3000 miles away, some competitors hated
> Sun's success, so they decided to standardize their products on
> "anything that doesn't work like Sun's". This was the UNIX wars, which
> distracted all the UNIX vendors. They should've been watching
> Microsoft, which proceeded to steamroller the computing market and make
> almost all of them irrelevant. I think it might have been DEC that
> first adopted BOOTP for actually bootstrapping their products, and
> others followed suit. I don't actually know why they picked it --
> especially because I was co-author and I worked at Sun. But they
> started using it, and it caught on among that consortium of non-Sun UNIX
> vendors. And eventually, Mitch Bradley, a hardware designer at Sun with
> a penchant for FORTH programming, built the boot code for the first
> SPARC machines, and implemented BOOTP in it, so even Sun started using
> By 1993, others had built DHCP (RFC 1541) on top of BOOTP, and that went
> onto the standards track at IETF. Everybody who liked the old way was
> free to continue manually typing human-assigned IP addresses into every
> new computer on their network and keeping them in local nonvolatile
> storage. Plugging into an Ethernet used to require inserting an
> electric drill into a fat yellow coaxial cable in your ceiling (see
> https://en.wikipedia.org/wiki/10BASE5), and then cleaning out the copper
> detritis that would short the cable and bring down the whole network,
> and attaching in a separate transceiver box with a "sting tap" that
> would touch the center conductor of the coax, then running a separate
> transceiver cable to your computer. The manual IP address configuration
> was only a small portion of the pain. But 3Com migrated Ethernet to
> twist-on BNC connectors (https://en.wikipedia.org/wiki/10BASE2), and
> users started migrating toward products that worked without bringing in
> a technician. BOOTP and DHCP offered a "plug and play" experience that
> those users craved. So what started as experiments eventually became
> expected parts of the IP standards.
> ARP was "slapped on" in 1982, long before RARP or BOOTP. The original
> IP specs required that the LAN address must fit into the low order bits
> of your IP netblock. This wasn't well thought through, but IP was an
> experiment and there were very few other experiments for its designers
> to learn from. It worked ok when ARPANET was your LAN (see the original
> use of 10/8), and when everybody else had Class A addresses, like the
> packet radio network or 3-megabit Experimental Ethernet users. But it
> didn't scale up, and it didn't work at all for 10-megabit industry
> standard Ethernet, with 48-bit addresses much longer than IP addresses.
> And Ethernet was cheap -- only hundreds of dollars per node. So when
> somebody slapped together a protocol that made IP-over-Ethernet work,
> which was ARP, suddenly it became much cheaper and easier to build an IP
> network. This created a much bigger market for IP, which led in fits and
> starts to the creation of NANOG. The rest is history.
More information about the NANOG