What's the difference between a bridge and a switch?
I can't find any authoritative source that can concisely explain the difference between a bridge and a switch. As far as I can tell, most devices commonly referred to as "switches" fit the description of "bridge" as defined by the IEEE 802.1D standard. While it may be the case that a device can be both a bridge and a switch (perhaps "switch" is a subset of "bridge"?), I can only find "hand-wavy" explanations of the difference. The most commonly cited differences I have come across boil down to one of these two:
- Switches have many ports, bridges only have two (or some other small number)
- Switches perform forwarding in hardware, while bridges perform it in software
I'm unsatisfied with these answers because:
- The IEEE standards clearly don't state or assume that bridges will have only two ports. If anything, the assumption is that there will be many more than two ports. So this explanation is simply absurd. (Even Cisco attempts to pass this off as one of the differences).
- The IEEE standards seem to define "bridge" by what it does, not by how it does it. There's nothing in the standard that I could find that says bridging must or should be done in software. So a bridge that forwards in hardware would still be a bridge as far as the standard is concerned.
In fact, when I searched the IEEE 802.1D standard, there was no mention of the word "switch" at all. So "bridge" seems to be the technically correct term. However, since the word "switch" seems to be more commonly used (by far) I can't help but wonder if there is some actual differentiating factor. Or is this just a case of different words being used to describe the same thing?
References to sources would be especially appreciated.
EDIT: I should add that I am fully aware of the fact that bridges are not the same thing as repeaters.
The IEEE standards clearly don't state or assume that bridges will have only two ports. If anything, the assumption is that there will be many more than two ports.
You are correct. Actually, you can see a bridge with three ports in IEEE 802.1D standard. ( See Figure 7-1—A Bridged Local Area Network ).
Okay, I found this article: "The 10 Most Important Products of the Decade":
It sheds some light on the origin of the term "switch" and some quick quotes from the article will clarify several important points which cause endless confusion...
Why EtherSwitch and not EtherBridge? Two reasons: First, bridging was a bad word in the industry, one to be avoided by any good marketer. Second, Kalpana's product didn't meet IEEE specifications for a bridge, so rather than fight, the company switched.
Switching was just a fancy name for bridging, and that was a 1980s technology--or so the thinking went.
A few jots in its legendary checkbook brought Cisco from switching sideliner to switching headliner, and one of the company's key acquisitions was Kalpana.
An ethernet switch is a multiport ethernet bridge. A bridge is a device that splits collision domains but not broadcast domains. A switch is simply a bridge with lots of ports. Other examples of bridges are wireless access points and dual speed hubs. I don't think implementation (store&forward vs fast forwarding, software vs hardware, 2 ports vs many ports etc) makes it difference in kind, only a difference in degree (ie faster bridge or more ports on a bridge, etc).
Ethernet was originally an "everyone sees all traffic" protocol. That's how traffic management happened -- if someone else is using the network, you wait until they're not; if two people try to use the network at the same time, both wait a random amount of time before attempting to use the network again. This was a "collision domain" or what people now call a "broadcast domain" because everything is switched and there are no more collisions (two simultaneous initiators of traffic).
A bridge, in this context, only forwards traffic to stations on the other side of the bridge if it has learned that that station is on the other side of the bridge. If it hasn't seen the target MAC, it will send it over the bridge (flooding) or if it is a broadcast / multicast, it will also send it over the bridge.
In ethernet, it is useful to remember how the technology was invented and deployed. First came shared media such as 10base5 and 10base2, both of which are coaxial cables that physically carry all traffic to all stations as an RF signal. Because vampire taps on 10base5 connections were expensive, people also used AUI repeaters that acted somewhat like hubs, but weren't. None of this equipment had any memory at all; the traffic went through or it didn't (and if it didn't the sender was expected to retransmit).
Only much later did people start using twisted pair and deploying ethernet 10baseT hubs. A common topology was to use 10base5 as a building backbone and 10baseT to some locations, and connect different 10base5 backbone networks to each other using bridges or repeaters, depending on the traffic patterns and local budgets.
I don't see any specific reason for confusion here - the standards refer to bridging and they define how bridging works, switches are generally just fast multi-port bridges - both are L2 devices that extend broadcast domains but limit collision domains. Cisco have a pretty good document on their view of the differences here.