Instradamento
# Instradamento

L'instradamento, nel campo delle reti di telecomunicazione, è la funzione di un commutatore (centrale telefonica, router, switch) che decide su quale porta o interfaccia inviare un elemento di comunicazione ricevuto (conversazione telefonica, pacchetto dati, cella, flusso di dati). Il termine è una metafora che si riferisce all'atto di instradare (dirigere, indirizzare).

## Descrizione

Il commutatore spesso usa una tabella di indirizzamento per decidere dove inviare ciascun elemento. Il formato di questa tabella ed il modo in cui viene popolata e possibilmente modificata sono specifici delle diverse tecnologie utilizzate e delle scelte progettuali adottate.

Ciascun elemento di comunicazione viene inoltrato dalla sorgente ad un commutatore, e da questo al successivo commutatore, fino a raggiungere la destinazione desiderata. Può avvenire sia nella commutazione di circuito che a commutazione di pacchetto.

Il sistema fisico preposto alla funzione di instradamento è il commutatore. Un commutatore a livello logico è composto da un interfaccia o porta per ogni linea, una struttura di commutazione che esplica la funzione attuativa dell'instradamento ovvero porta fisicamente il segnale da un ingresso x ad una certa uscita y, ed una 'struttura intelligente' ovvero un sistema di comando che ha funzione decisionale ovvero decide la strada da far seguire all'Unità Informativa in base alle segnalazioni delle interfacce (indirizzamento), strada che è poi inoltrata alla struttura di commutazione per la funzione attuativa di attraversamento.

Un commutatore dovrà essere in grado di gestire il traffico offerto in ingresso e per questo dovrà essere opportunamente dimensionato.

## Commutazione di circuito

L'oggetto dell'instradamento è una "conversazione" (ad esempio, ma non esclusivamente, una conversazione telefonica). In una rete di questo tipo, ciascuna conversazione segue un ciclo di vita:

* Creazione della connessione: quando la rete riceve la richiesta di stabilire ovvero instaurare una nuova conversazione tra due terminali, ne decide il percorso fisso una volta per tutte, e programma i commutatori per interconnettere tra loro le linee di comunicazione disponibili per realizzare il circuito tra i due nodi interessati. Nella Rete telefonica tale funzionalità è operata dal protocollo ST7. Le risorse di trasmissione necessarie a supportare la comunicazione vengono allocate in questa fase preventiva: se non sono disponibili risorse sufficienti la chiamata viene rifiutata, se la chiamata viene accettata c'è una garanzia stringente sulla qualità di servizio.
* utilizzo della connessione: i terminali coinvolti possono scambiare dei dati, avendo la garanzia delle caratteristiche del collegamento
* abbattimento della connessione: sulla base di una segnalazione inviata da un terminale o per altri motivi, la conversazione finisce. Le risorse impegnate vengono rilasciate e sono disponibili per altre conversazioni.

### Commutazione di circuito virtuale

Molte tecnologie a commutazione di pacchetto prevedono comunque una fase di creazione della connessione, durante la quale viene determinato il percorso che faranno tutti i pacchetti, ed eventualmente possono venir riservate delle risorse per ciascuna comunicazione.

## Commutazione di pacchetto

In questo caso l'oggetto dell'instradamento è il pacchetto, ovvero la decisione di instradamento viene presa separatamente per ciascun pacchetto. Anche per questa ragione, diversi pacchetti tra la stessa coppia di nodi possono seguire strade diverse, arrivare a destinazione in un ordine diverso da quello con cui sono stati inviati, e alcuni possono andare persi. Nelle reti IP, la risoluzione di questi problemi è tipicamente demandata a TCP, un protocollo di livello di trasporto, oppure alle applicazioni.

### Switching

Si intende con switching o "commutazione" l'instradamento effettuato a livello di collegamento, ad esempio all'interno di reti locali come nelle reti ethernet. Gli switch contengono tabelle di inoltro i cui elementi sono gli indirizzi mac dei singoli calcolatori presenti sulla rete. Questa tecnica ha pertanto dei considerevoli limiti di scalabilità, in quanto è necessario un elemento in queste tabelle per ciascun host presente sulla rete.

Le tabelle di inoltro degli switch vengono normalmente popolate in modo opportunistico (dinamico-adattativo) man mano che i singoli nodi vengono collegati alla rete, osservando il traffico in transito. Quando lo switch riceve un frame destinato a un mac address che non conosce, lo invia in broadcast su tutte le porte comportandosi da hub, e questo spreco di risorse è un altro limite alla scalabilità dello switch.

### Routing

Il routing è l'instradamento effettuato a livello di rete. Nel caso tipico di IP, i router usano tabelle di instradamento i cui elementi sono blocchi di indirizzi IP contigui, che sono detti route o rotte. Questo metodo è pertanto più scalabile, in quanto un singolo elemento della tabella di instradamento può gestire un numero anche molto alto di host. Per quanto riguarda l'indirizzamento IP il numero di host (singoli indirizzi) contenuto in una route o rotta è determinato dalla maschera di sottorete (maschera di sottorete).

Le tabelle di instradamento possono essere popolate con una combinazione di diversi metodi:

* routing per reti direttamente connesse: quando una interfaccia di rete di un host IP viene configurata con un indirizzo IP ed una maschera di sottorete, l'host conosce automaticamente la rotta per raggiungere tutti gli host di quella sottorete.
   * Nel caso molto semplice di una rete costituita da diverse sottoreti connesse ad un solo router, questo automatismo è sufficiente a popolare la tabella di routing di quel singolo router con tutti gli elementi necessari.
* instradamento statico: le rotte possono essere configurate manualmente sui vari router. Questo metodo è poco scalabile, difficile da gestire per reti più che banali, e non consente alla rete di utilizzare percorsi multipli quando questi sono disponibili per raggiungere una determinata destinazione.
* routing dinamico: le tabelle di instradamento vengono popolate da appositi protocolli di routing, eseguiti sui router, che permettono ai router di scambiarsi tra loro informazioni circa la topologia attuale della rete, e quindi di costruire e aggiornare (update) automaticamente le tabelle di instradamento. Questi protocolli permettono alla rete di adattarsi automaticamente ad eventuali modifiche (aggiunta o caduta di nodi e di collegamenti), ed in particolare di reinstradare il traffico in caso di caduta di un collegamento su percorsi alternativi che permettono di raggiungere la destinazione finale (IP destination).

Una volta popolata la propria tabella di routing, l'instradamento di ogni pacchetto IP pervenuto al router avviene applicando la regola del longest prefix match. C'è infatti la possibilità che un router abbia nella propria tabella di instradamento delle destinazioni appartenenti a una o più rotte instradate verso percorsi diversi, in questo caso prevale la rotta più specifica, cioè quella con la maschera di sottorete più lunga.

