A network-wide process that decides the end-to-end path that Packets take from source to destination.

It takes place on longer timescale and is often implemented in software.

It allows multiple networks to communicate independently and yet remain separate, and is thus different from bridging networks via a network bridge.