Ethernet History – The Switching Abomination

0/ More Ethernet history? Learn why Ethernet Switching is an (extremely successful) ABOMINATION!!!

1/ So, the DEC/Intel/Xerox 10Mb Ethernet spec came out in 1980. The same year, ISO published a draft of the 7 layer OSI model (en.wikipedia.org/wiki/OSI_model)

2/ Now, unlike the later OSI *protocols*, the OSI *model* was widely regarded as a good thing, and codified what was pretty much true of many protocol stacks – TCP/IP, Xerox XNS, DECnet, etc.

3/ In the OSI model, packet forwarding only happens at layer 3 – the Internetwork layer. L3 forwarding is *necessary* to go between different types of L2 networks, and is *sufficient* to forward between different L2 networks of the same type. Thus was born Cisco!

4/ Routing and forwarding were not trivial problems and involved a bunch of immature software, running on the pathetically slow processors of the ‘80s. Not a problem for WAN routing, which was on even more pathetically slow telephone lines, but then LANs came along.

5/ Ethernet brought a theoretical peak packet rate of 14,880 packets per second! But that only happened with the tiniest packets; as long as you used big 1500 byte packets the packet/forwarding rate was more manageable.

6/ Ethernet, of course, was a shared LAN medium protocol using CSMA/CD to have a bunch of stations share a single cable/collision domain. But it was well known that things started to melt down if you put a lot of busy stations on one cable.

7/ So, Ethernets got split up into manageable sizes, but there was an obvious need for them to interconnect. Layer 3 routing was the obvious answer to this, but brought it some problems

8/ The biggest problem was that the PC world was going nuts with Ethernet and inventing protocols that respected no architecture, and had never heard of an OSI model. So even if you wanted a router, there was no L3 protocol to base it on!

9/ The typical PC vendor would think of networks as having single digit numbers of computers, all running identical software, so no one was ready when things exploded into hundreds of PCs in a building!

10/ The folks at Digital Equipment Corp (DEC) somehow came up with the idea of *bridging* Ethernets. I think they were driven by the desire to crank up the packet rate of forwarding, because even the earliest of their bridges had some hardware acceleration.

11/ Bridging, when it worked, was great because it interconnected network segments *transparently* to the end stations. “Transparent Bridging” became a big deal. Many companies did well with bridges – Bridge Communications, Ungermann-Bass, Vitalink, …

12/ But the ideas behind bridging were met with disbelief, disdain, and disgust by many networking people, including ME! Bridging sounds innocuous, but can get pretty ugly under the covers.

13/ First problem – broadcast loops/broadcast storms. This haunted the industry throughout the ‘80s and you can still easily suffer from this at home with cheap Ethernet switches. A bridge *must* forward every packet in the absence of information not to.

14/ Second problem – MAC address filtering. Forwarding every packet between LANs makes no sense, so a bridge must “learn” what packets not to forward. But MAC tables were small, and there were no standards for how quickly to learn or forget.

15/ Third problem – LAN heterogeneity. Ethernet was not the only game in town, there was Token Ring, Appletalk, and later FDDI to contend with. Bridging was poorly defined, partly because the actual packet formats were different in all these networks.

16/ So, to believers in the OSI model, bridging was disgusting – more like anti-routing than proper L3 routing. Bridges had to learn when NOT to forward packets; with Spanning Tree Protocol they learned what links to NOT use. Bridging wasn’t even a standard until 802.1D in 1990.

17/ The PC tsunami meant that the well architected Layer 3 routing had to give way to the wild west of Later 2 bridging, because Layer 3 was slow and couldn’t accommodate all the layer violations happening with PC protocols.

18/ However, Layer 3 routing remained whenever there was an *administrative* boundary. If you have mutually distrustful network admins, then they get a lot more paranoid about what gets allowed between the networks! This was still big enough for Cisco to succeed wildly.

19/ After the invention of 10Base-T Ethernet, the shared medium aspect of Ethernet quickly faded away. Bridges became hubs which became switches. Now every single CAT5 cable is its own Ethernet (by old definitions), and they are all connected by switches – bridges on steroids!

20/ Many of the problems of L2 bridging remain today – you really have to worry about how big a L2 network gets. Spanning Tree and its descendant protocols are very much still necessary, and don’t do as good a job as L3 routing protocols.

21/ Today, most big data centers confine the L2 network to a single rack, and use L3 in the backbone. But most cloud or VMware datacenters also have to deal with “virtual” L2 networks connecting virtual machines across network backbones with tunneling and SDN. Complicated!

22/ What about Layer 3 forwarding? Until Juniper Network cam along in the late ‘90s, all L3 forwarding was still being done in software, although those Cisco routers sure *looked* like hardware. Today, switch chips are happy to do either L2 or L3 at line speed.

23/ Incredibly, 400Gbps Ethernet switches are now available with ridiculous amounts of switching bandwidth. But remember, they are all ABOMINATIONS! (Also AWESOME!)

Leave a Reply