Un protocollo di routing è il mezzo attraverso il quale la rete di computer è in grado di dirigere il traffico in modo efficiente tramite dispositivi chiamati router. Qualsiasi protocollo di questo tipo è essenzialmente un algoritmo progettato per prevenire e correggere i loop, raccogliere informazioni sulla topologia della rete e distribuire tali informazioni ad altri router e infine selezionare i percorsi che il traffico dovrebbe prendere. Alcuni di questi protocolli gestiscono il traffico all’interno di una rete, indirizzandolo ad altri router all’interno di una rete controllata. Quando le comunicazioni devono entrare o uscire da una particolare rete, sono dirette da un altro tipo di protocollo di instradamento che controlla il traffico al limite, o confine, della rete.
Quando un protocollo di routing viene utilizzato all’interno di una rete, viene indicato come protocollo gateway interno (IGP). Utilizzando lo stesso protocollo di routing insieme, formano un dominio di routing. Successivamente, qualsiasi numero di domini di routing insieme forma una rete che comprende un sistema autonomo (AS). Qui, all’interno di un AS, i protocolli rientrano in due categorie principali, un protocollo a stato di collegamento o un protocollo basato su vettori.
Con un protocollo link-state, i router parlano tra loro per mappare l’intera rete, valutare lo stato delle connessioni tra di loro e quindi calcolare i migliori percorsi possibili che il traffico può seguire per aggirare. Questo metodo è utile per determinare quali percorsi possono avere una velocità di connessione maggiore rispetto a un altro percorso e per calcolare il percorso più breve. Questi tipi di protocollo di routing sono molto veloci nel far convergere i router tra loro, aggiornando la loro conoscenza della rete, quando viene aggiunto un nuovo router o se uno va off-line.
Un protocollo di routing basato su vettori è disponibile in due versioni: il vettore di distanza e il vettore di percorso, dove quest’ultimo è una sottoclasse del primo. I metodi a vettore di distanza utilizzano il cosiddetto conteggio degli hop per determinare il percorso più breve da un router all’altro. Qui, il router conta il numero di altri router che la comunicazione deve attraversare, ognuno dei quali rappresenta un hop, e quindi costruisce la sua mappa dei migliori percorsi possibili. In confronto a un protocollo link-state, un algoritmo di vettore di distanza non può dire quanto velocemente un particolare hop viene confrontato con un altro e può in definitiva scegliere un percorso più lento anche se richiede meno hop. Soffre anche di ritardi quando un router viene aggiunto o rimosso dalla rete, poiché deve contare nuovamente gli hop per ricostruire la sua mappa della rete.
Un protocollo di routing del vettore di percorso viene spesso utilizzato sul confine di una rete in quello che viene definito protocollo di gateway di confine (BGP). Oltre a contare gli hop, il router di confine annuncia anche la sua disponibilità inviando un messaggio di vettore di percorso. I router di confine di altre reti quindi costruiscono la loro conoscenza dei percorsi al di fuori di un AS controllando questi messaggi l’uno dall’altro.
In alcuni casi, un protocollo di routing può essere effettivamente instradato su un protocollo di comunicazione esistente. Il fatto che vengano instradati dipende dal livello del modello di interconnessione dei sistemi aperti (OSI) in cui operano, come IS-IS, il livello del collegamento dati ed è un protocollo non instradato. Il protocollo Internet (IP) e il protocollo di controllo della trasmissione (TCP) operano rispettivamente ai livelli tre e quattro e sono due mezzi con cui è possibile instradare un protocollo di routing. I più notevoli sono i BGP che funzionano su TCP.