* o throughput e a qualidade dos circuitos entre os roteadores
* o status operacional de roteadores específicos
* o número de pontos intermediários (ou hops) que um pacote deverá atravessar
* os caminhos alternativos disponíveis em caso de falhas na rede
O software do roteador pondera essas e outras informações usando algoritmos especiais e depois determina como enviar um pacote em sua viagem entre segmentos da rede. O software do roteador leva em consideração informações como a velocidade de transmissão, o retardo de propagação (o tempo que um pacote leva para passar de uma rede a outra), retardos de enfileiramento, e custo. Os retardos de enfileiramento ocorrem quando os roteadores ou chaves de comutação recebem um tráfego intenso demais. O custo de um link pode ser informado com o uso de qualquer fórmula que se deseje, inclusive aluguel mensal de linhas privadas ou tarifa de linhas telefô:nicas discadas. É possível instruir o software do roteador a só usar uma linha telefô:nica discada como último recurso, atribuindo a esse circuito um custo maior que o dos outros.
Os roteadores modernos utilizam uma arquitetura adaptativa e distribuida. O software consegue se adaptar a mudanças no status de um circuito ou de outro roteador em questão de milissegundos, e cada roteador mantem suas próprias tabelas de informações. Os sistemas antigos eram menos flexíveis e dependiam dos dados armazenados em um nó central.