Visit Your Local PBS Station PBS Home PBS Home Programs A-Z TV Schedules Watch Video Donate Shop PBS Search PBS
I, Cringely - The Survival of the Nerdiest with Robert X. Cringely
Search I,Cringely:

The Pulpit
The Pulpit

<< [ Check and Mate? ]   |  Valley of the Nerds  |   [ Better to Start a Single Generator Than to Curse the Darkness: ] >>

Weekly Column

Valley of the Nerds: Who Really Invented the Multiprotocol Router, and Why Should We Care?

Status: [CLOSED]
By Robert X. Cringely

While the computer business may appear to run on gray matter, money and Jolt Cola, the real fuel is ego. As I wrote years ago, they do it to impress their friends. This has become even more clear to me following the airing of "Nerds 2.01: A Brief History of the Internet" as the experts, pundits and wrongfully accused have emerged to point out my mistakes.

They are a kindly lot, these critics, generally eager just to have their particular part of the story better or more accurately told. I've been this route before, only now I am older and better able to appreciate the position of the wronged engineer. In my book Accidental Empires, for example, I gave less than complete credit to Jef Raskin, head of the original Macintosh project at Apple. It seemed to me at the time that Jef had conceived of a low-cost machine called the Macintosh, but that most of the important work was done after Raskin's departure. Well, I was wrong. Sure, the Macintosh of Steve Jobs was very different, but in addition to the name, Raskin had hired most of the core Macintosh technical team and shepherded QuickDraw, the Mac's imaging model. This was nontrivial stuff and I owe Jef greater credit than I gave him at the time. Sorry.

This time around I stand corrected on a couple fronts. First, Tim Berners-Lee checked-in to say I had it wrong when I claimed Mosaic was the first graphical browser. I'll let Tim tell it:

"I wrote the first GUI browser, and called it "WorldWideWeb" for NeXTStep. (I much later renamed the application Nexus to avoid confusion between the first client and the abstract space itself.) Pei Wei, a student at Stanford, wrote "ViolaWWW" for UNIX; some students at Helsinki University of Technology wrote "Erwise" for UNIX; and Tony Johnson of SLAC wrote "Midas" for UNIX. All these happened before Marc (Andreessen) had heard of the Web. Marc was shown ViolaWWW by a colleague (David Thompson?) at NCSA, Marc downloaded Midas and tried it out. He and Eric Bina then wrote their own browser from scratch. As they did, Tom Bruce was writing "Cello" for the PC which came out neck-and-neck with Mosaic on the PC.

"Marc and Eric did a number of very important things. They made a browser that was easy to install and use. They were the first one to get inline images working — to that point browsers had had varieties of fonts and colors, but pictures were displayed in separate windows. Most importantly, he followed up his and Eric's coding with very fast 24 hour customer support, really addressing what it took to make the app easy and natural to use, and trivial to install. Other apps had other things going for them. Viola, for example, was more advanced in many ways, with downloaded applets and animations way back then — very like HotJava.

"Marc marketed Mosaic hard on the net, and NCSA hard elsewhere, trying hard to brand the WWW and "Mosaic": "I saw it on Mosaic" etc. When Netscape started they of course capitalized on Mosaic as you know - and the myth that Mosaic was the first GUI browser was convenient."

Okay, now everyone knows the truth about graphical Web browsers. I'm sorry, Tim, for missing your contribution and the contributions of so many others. But if you think this is bad, imagine how they would have handled it on "Dateline."

The second technical error is harder to explain, both because it lies even deeper in the technology and because there is still some dispute about who did what to whom. The issue at hand is who actually invented the multiprotocol router. "Nerds 2.01" clearly credits Cisco Systems founder Len Bosack, while another ex-Stanford academic, Bill Yeager, claims he's the man. To his credit, Bill (who now works for Sun Microsystems) has some Stanford documents that certainly credit him as the "principal inventor."

Here is Bill Yeager's third-person version of his story:

"Before Sun was formed at Stanford University, efforts were already underway across campus in the medical school to develop the multiple protocol routers that Cisco Systems licensed in 1986 from the Stanford University Office of Technology Licensing. Around Christmas of 1979 Xerox gifted ethernet technology to Stanford, MIT and Carnegie Mellon University. Ethernet-based local area networks were immediately installed in the Stanford medical school, and the department of computer science. This led to the need for what became known as "router technology". These were to interconnect not only different Ethernet segments, but also to interconnect Ethernet local area networks and the national Internet (Internet protocols were rolled out in 1982 to replace the ARPANET).

"A Stanford researcher, Bill Yeager, who worked for the SUMEX-AIM resource, located in the Medical School, was assigned the task to produce the router technology. By June, 1980, PDP11/05 based router was in place which connected the medical school and department of computer science. By 1981 Yeager developed a unique network operating system, which would be the basis for the MC68xxx version of the code. This was completed later that year, and was ultimately licensed by Cisco Systems.

"In 1983, the Sumex-aim router code was accepted as the Stanford standard. It both routed and provided network services for Parc Universal Packets (PUP), the Internet Protocol (IP), the Xerox Network Services protocol (XNS), and interconnected the Stanford Local Area Network. Access to the Internet was managed by a PDP11 running MIT router software. This used IMP technology to connect to the Internet, and was supported by Jeff Mogul, a Ph. D. student in computer science.

"In 1985, Len Bosack and Kirk Lougheed were given access to Bill Yeager's source code by Yeager. By this time the code was fully functional, additionally routing the MIT CHAOSnet protocol, and providing a host of services, among which was auto-configuration, and remote network booting with the BOOTP protocol. Lougheed continued its development in the department of electrical engineering, and was an initial employee of Cisco Systems.

"Although Yeager was the author of this code, he did not work in a vacuum. Stanford University is a laboratory where the free exchange of ideas among researchers is a day-to-day experience. Significant early contributions to the Stanford networking technology were made by three graduate students, Jeff Mogul, Bill Nowicki, and Benjy Levy. Mogul and Nowicki were there from the beginning, writing prototype router and EtherTIP code in CSD, and doing what was required to install network services on the early UNIX vax systems.

"In the final royalty agreement that Cisco Systems signed, Yeager granted 15 percent of these royalties to the department of computer science for the contributions Levy made to the EtherTIP portion of the same code base that Yeager developed."

So Bill Yeager was right there in the thick of router development, there is no doubt. But there are others who remember the story slightly differently and in even more detail. Here is Kirk Lougheed's version. Kirk, an original Cisco employee, is still at that company:

"I consider the standard story of Len Bosack and Sandy Lerner developing networking and routing at Stanford as something akin to a sound bite. It sounds good, but hides a lot of complexity. As anyone who has been around Silicon Valley for a while knows, there a lot of people besides the founders who are critical in the creation of a company. However, in the story-telling business, a complex story is a snoozer, so lots of details — and people — get dropped from the story. Good marketing people and other myth makers understand this; Cisco's early marketing people are largely responsible for the standard Len and Sandy story.

"I do not believe that Bill Yeager appreciates the story telling as practiced by Silicon Valley companies, marketeers, and journalists. There are many unsung heroes. He has not been singled out.

"The concept of a router (in those days called a gateway) as a packet switching device that operated at the network layer, arose from the same ferment as TCP/IP. Indeed, you had to invent a network layer (IP) before you could think of switching it. I believe there was a BBN document from the middle 1970s that described how you would build a router, although I have never actually seen it.

"At the same time as TCP/IP was being developed, similar protocol suites were being developed at MIT (the Chaosnet protocols) and Xerox PARC (the PUP or Parc Universal Packet protocol). Both protocols ran over LANs of limited extent, PUP over Xerox's 3MB Ethernet and Chaosnet over something similar. Both PUP and Chaosnet were designed so they could be switched by routers.

"Around 1979 or 1980, Xerox donated some Altos and 3MB Ethernet equipment to Stanford. The Stanford campus is rather spread out, so right away there was the problem of linking the various islands of Altos and other machines. People first tried the cheap solution of using hardware repeaters. Not very satisfactory. Bridges and their attendant broadcast storms were not a lot better. So it was on to routers.

"Bill Yeager implemented a router for PUP protocols using the SUN-1 processor card, 3MB Ethernet cards of Xerox design, and a Multibus backplane. From looking at the comments in the early sources, he did this in the summer of 1982 and he used as his model the sources for the PDP-11 based router used at Xerox PARC. The routing protocol was PUP Gwinfo as defined by Xerox PARC.

"Yes, Xerox came THAT close to the router market.

"For the multiprotocol story, you need to understand the PUP addresses are 16 bits long and IP addresses are 32 bits long. PUP addresses can fit inside IP addresses. When Stanford started running IP on its Ethernets, the local convention was for a host to have both PUP and IP addresses and to embed its PUP address within its IP address. Thus when an IP packet arrived at the router, the software would look at the IP address, extract the PUP address, make a routing decision based on the PUP routing table, and then send the IP packet on its way.

"I think this is what Bill means by multiprotocol routing.

"There is more to the story.

"Bill went on to implement support for terminal lines; the result was called a EtherTip, or Ethernet Terminal Interface Processor, inspired by the TIPs that sat on the ARPAnet. The idea was to have a pool of terminals that could be connected over the network to any computer on the network. Again, PUP protocols were used to connect the Tip to the computer.

"I came into the picture in 1985. I had been doing a lot of IP and PUP work on the DECsystem-20s at Stanford. Since DEC had discontinued that product line, I was looking for other things to do. The Tip software struck my fancy, so I got a copy and started improving it. I wasn't interested in the router portion of the software, so I chopped that part out and concentrated on adding real TCP/IP support.

"Since Bill's original software had to be custom compiled for each router or tip, other people (Benjy Levy, Philip Almquist) had taken copies of the software and were making modifications for their local environments at Stanford. My goal was to generalize the software so that one binary could run on all Tips. Site specific parameters would be handled through configuration files downloaded from the network. In the process I realized that I wasn't very far away from a router, so I added the PUP switching code back in and wrote some new IP switching code. The routing decisions were still based on a PUP routing table.

"When we (Len, Sandy, Greg Satz, Richard Troiano, and I) left Stanford in July of 1986, we weren't sure whether we were going to be selling terminal servers (Tips) or routers. The software would do either. We did know, however, that there was no market for PUP, so we abandoned PUP support and emphasized TCP/IP, implementing Cisco's IGRP to replace the PUP Gwinfo for making routing decisions. The market pretty quickly told us it was more interested in routers than terminal servers.

"One of our very valuable early customers, Chuck Hedrick of Rutgers University, was the person who drove us in the direction of multiprotocol routers. Chuck was one of our few source licensees. He also had a lot of machines that used the DECnet networking protocol. As a weekend hack (or so it seemed), he implemented DECnet routing in the Cisco software and gave us the source with the stipulation that we not charge extra for it. The DECnet and IP support were totally independent in that they didn't share a routing protocol. This "ships in the night" approach as it is called, is how multiprotocol routing is done these days.

"As for Bill's version (of the story), I have no major quarrels with it. Jeff Mogul and Bill Nowicki were certainly major players in the networking scene at Stanford in the early to mid 80s. There were a lot of people involved in working on the software. There's plenty of room under the sun for all of us.

"The real value of the Yeager software was the basic operating system. It wasn't particularly sophisticated, but it was quite usable and served as an excellent starting point. The PUP routing wasn't of commercial interest. His minimal IP support was tossed out and rewritten as a full stack that included TCP support. XNS was also tossed out and when it reappeared years later, it was a "from scratch" effort by Greg Satz. And yes, Chuck Hedrick likely used some of Bill's original code at Rutgers. Hedrick also wanted a commercial source for the hardware and for software support. That is what Cisco provided, since no other company seemed interested. My memory is that Hedrick implemented the DECnet support in the Cisco router code.

"There is one other person who should be mentioned in a story about the first multiprotocol router. The Chaosnet protocol developed at MIT was, like PUP and IP, a routable protocol. MIT implemented their Chaosnet routers on PDP-11's and when IP came along, routed IP and Chaosnet together, probably much like we did at Stanford. I believe the author of that software was Noel Chiappa. It was Noel who took the MIT software to Proteon and persuaded them to build the Proteon routers that were Cisco's competition in the early years. Proteon also stressed IP and ended up implementing DECnet."

If you are still with me, it looks like Kirk Lougheed confirms that the Len and Sandy story is apocryphal, and that Bill Yeager made a major contribution.

So let's credit Bill Yeager with writing the first multiprotocol router, Len Bosack for understanding that the technology developed at Stanford had commercial possibilities, and Sandy Lerner for having the drive to create Cisco Systems.

Now I need a drink.

Comments from the Tribe

Status: [CLOSED] read all comments (0)