An Ethernet switch has a similar function to a hub
(see earlier) -- switches are sometimes
called "switching hubs".
The difference is that a switch examines the MAC-level destination
address of every frame it receives, and transfers it directly to
the appropriate port, without other ports being involved in, or
aware of, the communication. Many such transfers can occur
simultaneously, which has the effect of increasing overall "system"
throughput. Typical switches can also do
full-duplex transfers, simultaneously transmitting
and receiving frames.
NB: A switch builds a table mapping source addresses to ports
which it subsequently uses to make switching decisions. It's
obvious that switches are significantly more complex than simple
hubs, and this is reflected in their price. However, as with all
technologies, the difference is rapidly diminishing.
Philsophical note: it's interesting that switches
essentially remove the possibility of collisions. We should
therefore imagine that network hardware is no longer executing the
CSMA/CD protocol, because a host can send a frame at any time. This
is ony partly true -- collisions can, in fact, still occur, and the
important point is that an Ethernet switch can still
interoperate with older, non-switching hardware.
The retention of the same frame format is an important aspect of
this interoperability.