The book "Where Wizards Stay Up Late" by Katie Hafner has a nice overview of this battle of standards.<p>Here are some of my favorite quotes from the book:<p>"the Internet community—people like Cerf and Kahn and Postel, who had spent years working on TCP/IP—opposed the OSI model from the start. First there were the technical differences, chief among them that OSI had a more complicated and compartmentalized design. And it was a design, never tried."<p>Not only was OSI "never tried":<p>"On the OSI side stood entrenched bureaucracy, with a strong we-know best attitude, patronizing and occasionally contemptuous"<p>“Everything about OSI was described in a very abstract, academic way,” [Vint] Cerf said. “The language they used was turgid beyond belief. You couldn’t read an OSI document if your life depended on it.”<p>Lastly, what I think is a nice and short summary of why TCP/IP "won":<p>"[the success of TCP/IP] provided an object lesson in technology and how it advances. “Standards should be discovered, not decreed,” said one computer scientist in the TCP/IP faction. Seldom has it worked any other way."
The article misses a big point. The OSI model originally envisioned operating over X.25 connections operated by telcos. Then came local area networks. Most network traffic was, for a long time, local; in business settings, it often still is. TCP/IP worked well both for local and distant networking, and worked through gateway choke points between LANs and larger networks. X.25 over a LAN was a huge mismatch; X.25 was intended for slow links.<p>OSI TP4 eventually could do everything TCP/IP could, and Microsoft included it in NT (NT4 and Windows 2000, I think), so it did ship. But nobody cared much.
TL;DR: TCP/IP shipped. (Edit: <i>first</i>. Some OSI stuff did ship, as another poster pointed out, but much later and by then it didn't matter.)<p>I also must point out that the history of spec-ahead-of-time massive bureaucratic network standards efforts is extremely poor. These efforts tend to produce things that are complex, over-engineered, unwieldy, hard to deploy, and generally a mess. In some cases things never progress beyond the discussion phase, or if they do the result is <i>far</i> less interesting than the hype. It's basically the bad form of "waterfall" development.<p>All the most successful network systems I am aware of are developed first and then specified once the kinks are worked out. Step one is to make it work. Then you optimize it, clean it up, test it in the field, and <i>then</i> you spec it so others can interoperate with it. The result is seldom perfect, but it differs from the byzantine stuff in that it actually exists and people can use it.<p>Real but imperfect functionality always trumps non-existent perfection.<p>Byzantine ahead-of-time network standards bodies are part of this whole branch of "enterprise" software "development" that as near as I can tell doesn't actually build anything. I've seen it in action in other spheres too. They pick a big problem, gather specifications liberally, and then jawbone it to death. Sometimes small prototypes are produced (at ridiculous cost) that do tiny subsets of it poorly.<p>I cannot for the life of me understand why money is actually spent on this stuff. You would get far better results by taking the millions spent on these enterprise towers of babel and using it to hose down AngelList and fund startups doing things that are relevant.
Famous last words: <i>A case in point is the lack of space of the Intemet addressing system that emerged in I994 due to an explosive growth of Internet. This may now be solved by replacing IP version 4 (Ipv4) by IPv6, which implementation is underway since about 2000.</i> (p. 173)