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.