How did we ever get into this switching mess?
If you’re confused about the numerous meanings of a switch, you’re not the only one. If you wonder how the whole mess started, here’s the full story (from a biased perspective of a grumpy GONER):
35 years ago, there were no bridges or routers. Hosts communicated directly with each other or used intermediate nodes (usually hosts, sometimes dedicated devices called gateways) to pass traffic ... and then a few overly-bright engineers at DEC decided their application (LAT) will run directly on layer 2 to make it faster.
Their company has been dead (actually, sold in pieces) for over a decade, but their eagerness to cut corners still haunts every one of us.
When someone managed to sell too many devices to a single customer (probably ignoring every design recommendation ever made ... isn’t that how progress is made?), and they could no longer fit onto the same thick Ethernet segment, DEC built a transparent bridge (and Radia Perlman designed STP).
At the same time, the number of protocols running on Ethernet (and other now-extinct technologies, including ARCNET and LocalTalk) exploded (the early CCIEs might “fondly” remember all the protocols we had to configure in the lab). Each of these protocols needed its own gateway (= router) devices and Bill Yeager at Stanford got a brilliant idea: let’s make a dedicated device that will serve as a gateway to all of them ... and thus multiprotocol router (initially still called gateway; that how AGS got its name) and Cisco were born.
Routers were way more complex (and expensive) than bridges, so someone got the next bright idea: let’s use bridges to connect remote sites together. While that might be survivable (but still stupid) for a few small remote sites today, we used very slow WAN links in those days (64 kbps was a high-speed link) and the crazy and overly-brave engineers building large bridged networks produced numerous catastrophic failures. Based on those events, bridge became a much-hated word and everyone understood that routers are good, bridges are bad.
Fast-forward a few years. Thick and thin coax Ethernet were replaced by twisted pair attachments to a hub and several startup companies got another great idea: let’s replace a hub with a bridge; it will boost performance and decrease the number of collisions (and potentially transmission errors).
Of course they forgot to mention increased latency (or played with the cut-through switching), but let’s not go there.
These startups were facing a serious problem: what they had was a bridge, but nobody wanted to buy a bridge (because bridges are bad), so some fateful marketing department invented a switch. New mantra: hubs are slow, switches are fast.
Even in those early days, some people figured out not every host (or user) belong to the same LAN segment. They wanted to implement LAN segmentation and decided to do it with higher-speed routers (Cisco 7000 was a quite popular option). The design worked, but had a significant drawback: high-speed multi-protocol routers were always expensive. Changed mantra: routers are expensive, switches are more cost-effective.
Some newbies who firmly believed marketing claims made by various vendors decided (yet again) to build WAN networks with switches (because routers were expensive) ... and (predictably and inevitably) failed.
Because the routers were so expensive (and switches already had hardware-based forwarding), networking vendors tried to combine the best of both worlds. Some of you might still remember the early days of Netflow and Multi-Layer Switching (where the router would inspect initial packets in a session and download the flow specification to the switches ... the craziness now resurrected in OpenFlow).
Finally, someone managed to implement cost-effective layer-3 forwarding in hardware, resulting in high-speed reasonably-priced routers ... only you couldn’t call those devices routers anymore, because routers are expensive, so they stretched the definition of switching to include layer-3 switching (the process formerly known as routing).
Is there a way out of this switching mess? Judging by the comments made by readers of Terminology: Switch vs Router article (by @packetlife), we’re way past the point of no return.
But remember: regardless of how you decide to call the physical (or virtual) device that forwards the data across your network, it’s important to understand whether it forwards the data based on physical layer-2 addresses (we called that bridging) or based on logical, hierarchical layer-3 addresses (what we called routing 20 years ago), because there are significant differences between routing and bridging (maybe even more than you think).
I agree that forwarding packets based on l3 should be called routing. Why whould that change just because the hardware changes, it doesn't matter if an ASIC or a CPU is doing the forwarding, it's still routing. The term layer 3 switcing is probably invented to show that there is a difference between a conventional router and a switch doing routing and that switching the packets must be much faster than routing them! On this note I found it interesting when I was doing a lab on frame-relay (preparing for CCIE) and the debug command is called debug frame-relay packet, since when is frame-relay a packet technology? :)
l
It's Radia's network. We just put packets on it.
I would highly recommend "Patterns in Network Architectures" by John Day. His views might be arguable, but he provides very interesting historical review.
Of course, for the purpose of advanced bridging, a link could be viewed as having complex structure, which, in turn, implements path determination and routing on its own. But I believe that understanding how this two processes apply to different entities is helpful.
I'm a fairly young engineer and really got my teeth sinking into the technologies around 1996-1997. I cut my teeth on a small Novell network and slowly went on from there. As already mentioned, seeing the history of how things came about (and more importantly, the taint of marketing) really helps to put terminology and sometimes even the technology in perspective. I remember when I just started struggling to understand the differences between some protocols (such as ISL vs 802.1q) only much later to find out the history. Of course, it puts everything into perspective.
Another thought that came to mind is the understanding (or lack thereof) of some even senior people of the technology. We're talking true "understanding". Sometimes getting a few of my peers to really understand the difference between layer 2 and layer 3 is difficult. Then there is the guy that refers to any "switch" as a "hub"; those are the times when you just have to learn to interpret someone's language. :)
Great post!
I'm a fairly young engineer and really got my teeth sinking into the technologies around 1996-1997. I cut my teeth on a small Novell network and slowly went on from there. As already mentioned, seeing the history of how things came about (and more importantly, the taint of marketing) really helps to put terminology and sometimes even the technology in perspective. I remember when I just started struggling to understand the differences between some protocols (such as ISL vs 802.1q) only much later to find out the history. Of course, it puts everything into perspective.
Another thought that came to mind is the understanding (or lack thereof) of some even senior people of the technology. We're talking true "understanding". Sometimes getting a few of my peers to really understand the difference between layer 2 and layer 3 is difficult. Then there is the guy that refers to any "switch" as a "hub"; those are the times when you just have to learn to interpret someone's language. :)
Great post!
I'm a fairly young engineer and really got my teeth sinking into the technologies around 1996-1997. I cut my teeth on a small Novell network and slowly went on from there. As already mentioned, seeing the history of how things came about (and more importantly, the taint of marketing) really helps to put terminology and sometimes even the technology in perspective. I remember when I just started struggling to understand the differences between some protocols (such as ISL vs 802.1q) only much later to find out the history. Of course, it puts everything into perspective.
Another thought that came to mind is the understanding (or lack thereof) of some even senior people of the technology. We're talking true "understanding". Sometimes getting a few of my peers to really understand the difference between layer 2 and layer 3 is difficult. Then there is the guy that refers to any "switch" as a "hub"; those are the times when you just have to learn to interpret someone's language. :)
Great post!
You could use ACM or IEEE archives to as one of the sources of your research. I hope someone will once take the time to do that and write a good historical overview. What I've seen from John Day was unfortunately too biased.
The hardware configurations are totally different , and the uses of routers and L3 switches isnt the same.
There is an IEEE journal title Annals of the History of Computing ... Theres loads of articles there about the birth of X25 and all the assorted public networks (cyclades) etc etc and the thoughts governing why they choose this and that ....
Also IETF have several RFC's documenting the history of deployment of various protocols in live environments
ACM and IEEE are not just repositories for abstracts ..
Thats the problem with networking ..any old hack can step up and get involved ..... unlike say programming where you at least need to have the talent to deal with the abstract and appreciate the foundations of computing .... networking is just all arithmetic these days.
As for "wouldn't be the first time" - you're right, I make mistakes (but I never claimed I'm omniscient ;) ), but then one of the best parts of my blogging experience is that I learn something new on a daily basis based on your comments.
Last but definitely not least, while it would be interesting to compare networking and programming (where I have seen a fair share of programmers that fall way short of your definition of minimum needs), I will not enter into a pissing contest with an anonymous commenter.
Having had many years in both the programming and networking realms, I think that there is little difference between the clueful folk in either discipline. Likewise at the shallow end of the pool.
While you may not have intended to be brusque (giving you the benefit of the doubt) in your reply, you would do well to show a little courtesy to someone who spends a great of time trying to help educate people. Pointing out mistakes can be done without being insulting.