Gli algoritmi di routing determinano come instradare ogni datagramma IP dal mittente al destinatario, in base all’indirizzo di destinazione contenuto nel datagramma stesso. Un algoritmo di routing può essere di tipo:
Senza tabella:
Gerarchico
Con tabella: ogni router mantiene una tabella che consulta per determinare come inoltrare i datagrammi. Un algoritmo con tabella può poi essere
Gli algoritmi dinamici si distinguono ulteriormente in distance vector e link state.
In Internet si usano algoritmi con tabella di tipo dinamico, tra cui principalmente RIP, OSPF e BGP, che verranno illustrati in seguito.
Come appena detto, quando si usa un algoritmo di routing con tabella, ogni router consulta la propria tabella di routing per determinare il next hop, cioè per scegliere verso quale porta di uscita (e dunque verso quale nodo successivo) inoltrare ciascun datagramma ricevuto.
Una tabella di routing associa ogni rete di destinazione conosciuta (che può essere direttamente connessa al router, oppure remota, cioè raggiungibile tramite altri router) alle porte di uscita che permettono di raggiungerla, memorizzando anche i costi di ciascun percorso, che possono essere calcolati secondo varie metriche. Nella tabella deve sempre essere presente anche una default route, che indica la porta di uscita su cui instradare i datagrammi indirizzati a reti che il router non conosce. Un esempio di tabella per un router con porte di uscita chiamate L1, L2, ecc. potrebbe allora essere:
Per stabilire il costo dei percorsi di routing, e quindi poter scegliere il percorso migliore per un datagramma, esistono varie metriche, che possono essere usate singolarmente o in combinazione. Alcune delle principali sono: