Routing is the means of discovering paths in computer networks along which information (split up into packets) can be sent. Circuit-based networks, such as the voice telephone network, also perform routing, to find paths for telephone calls through the network fabric.
Routing is usually directed by routing tables, which maintain a record of the best routes to various network locations in order to keep up with the packet arrival rate. Small networks may involve hand configuration. Large networks involve complex topologies and may change constantly, making the constructing of routing tables very problematic. Automatic routing protocols attempt to solve this problem with dynamically updated routing tables. These are updated intermittently by the routing software, based on information carried by the routing protocol, and allow the network to be nearly autonomous in avoiding network failures and blockages. Routing directs forwarding, the passing of logically addressed packets from their local sub network toward their ultimate destination. In large networks, packets may pass through many intermediary destinations before reaching their destination. The hardware used in routing includes hubs, switches and routers.