ATM is rarely used to connect actual
workstations because the hardware is very expensive, and
Ethernet is generally
good enough for the end user. However, its very powerful capabilities to support
service level agreements directly through the hardware makes it popular for
backbone bandwidth providers.
ATM routing is done through virtual channels and paths. Each cell contains a VPI (virtual path identifier) and VCI virtual channel identifier, and a router only has to know that (e.g.) incoming cells from port A with VPI 0 and VCI 17 have to be sent to VPI 1 and VCI 25 on port C. This can be done very quickly and efficiently in hardware.
Of course, this routing rules have to be set up first,
which is done through a separate, complex signaling protocol.
What's the difference between a virtual path and a virtual channel? Well, paths can be used to "group together" channels, so that heavy-duty backbone routers can do their routing by looking only at the VPI and ignore the VCI. This
makes their routing tables much smaller so that they are quicker and can handle much higher data rates.