Il protocollo IGP (Interior Gateway Protocol) maggiormente utilizzato oggi su Internet per l’ instradamento dinamico è senza dubbio il protocollo RIP. RIP e' l'acronimo di Routing Information Protocol ed e' un protocollo relativamente semplice appartenente alla famiglia di protocolli di tipo "distance vector". L' algoritmo distance vector è stato sviluppato da Bellman, Ford e Fulkerson nel lontano 1969 : poi è stato integrato dalla Xerox Network System nei suoi protocolli come XNS RIP. Tale protocollo è stato precursore di comuni protocolli di routing come Novell IPX RIP, AppleTalk Routing Table Maintenance Protocol (RTMP) e naturalmente IP RIP. Nella versione 4.2 del Berkley UNIX rilasciata nel 1982 il RIP è implementato come un processo demone chiamato routed : ancora molte versioni di UNIX implementano il RIP. Gli indirizzi presenti nelle tabelle RIP sono indirizzi Internet a 32 bit. Una voce (entry) nella tabella di routing può rappresentare un host, una rete o una sottorete. Non sono presenti specifiche sul tipo di indirizzo nei pacchetti RIP; e' compito dei router analizzare l'indirizzo per capire di cosa si tratta. I pacchetti RIP vengono impacchettati nei pacchetti UDP e IP (i processi RIP utilizzano la porta 520 sia per la trasmissione che per la ricezione). I pacchetti normalmente sono inviati in modalità broadcast, questo significa che saranno ricevuti da tutti i routers connessi alla rete. Il tipo di metrica usata è l'Hop count e gli Updates, che contengono l'intera copia delle routing table, vengono scambiati ad intervalli regolari (ogni 30 secondi) e quando si verificano dei cambiamenti nella topologia. Tutte le volte che un router riceve un update che contiene entry modificate, deve aggiornare la propria routing table incrementando di 1 l'Hop count e indicare come next hop l'indirizzo IP del router da cui ha ricevuto il messaggio. La tabella di routing indicherà, per ciascuna entry della tabella, solo il percorso migliore per raggiungere la destinazione desiderata. Una volta che è stato aggiornata la routing table, il router trasmetterà immediatamente un update per informare gli altri router adiacenti dei cambiamenti. In questo particolare caso, gli updates vengono inviati senza attendere i 30 secondi di default. Ciascun router, in una rete nella quale opera questo protocollo, viene considerato come 1 hop. Se un router apprende un percorso verso una certa destinazione che richiede il passaggio di altri tre router, scriverà nella propria routing table in corrispondenza della suddetta destinazione, un Hop count = 3. Il formato del pacchetto RIP è il seguente:
Si può osservare che non è presente alcun campo Dati, in quanto il protocollo RIP non è stato progettato per lo scambio di informazioni tra host. In pratica le informazioni contenute in tali pacchetti riguardano solo il routing. Vediamo in dettaglio i campi:
Campo Command
Indica se un pacchetto è di tipo response o request.
Un pacchetto response contiene informazioni sul routing e può essere creato sia in risposta ad una request sia come semplice updates.
Un pacchetto request è inviato da un router ad un altro per richiedere una routing table o parte di essa.
Campo Version Number: serve per distinguere le due versioni di RIP: RIP 1, e RIP 2.
Campo Zeros: fornisce la compatibilità verso protocolli precedenti, inoltre può essere usato per riservare spazio per utilizzi futuri.
Campo Address Family Identifier
E' un codice che individua il tipo di indirizzo contenuto nel campo Indirizzo. Infatti, sebbene il RIP sia usato principalmente per il routing basato su TCP/IP, ciò non vieta la possibilità di adoperarlo anche con altri tipi di indirizzamento. Nel caso di indirizzi IP, il valore di tale campo è due.
Campo Address: contiene generalmente l'indirizzo di una network di destinazione, tuttavia può anche contenere un indirizzo host.
Campo Metric: contiene il valore della metrica che nel caso del RIP, come più volte affermato è l'Hop count.
Il contenuto delle routing table è il seguente:
L'indirizzo IP di destinazione è forse il campo più importante contenuto nella routing table. Infatti quando un router riceve un pacchetto dati attraverso la sua porta di IN, controlla nella propria tabella di routing se esiste una entry per tale destinazione, ed in caso affermativo inoltra il flusso dati nella corrispondente porta di OUT.
Il campo next hop contiene l'indirizzo del router successivo verso il raggiungimento della rete di destinazione.
Per quanto riguarda il Timer, il RIP deve scandire temporalmente ogni quanto inviare gli updates ad i router vicini, inoltre considererà irraggiungibile un router vicino se da questo non riceve notizie almeno una volta ogni 180 secondi.
Una caratteristica da non trascurare è che il Protocollo RIP 1 non invia le subnet mask ma solo gli indirizzi IP, di conseguenza possono verificarsi degli errori in quanto non vengono riconosciute eventuali sottoreti. Questo problema viene risolto nella versione RIP 2, infatti è presente nel pacchetto un campo chiamato subnet mask che contiene appunto la subnet mask corrispondente alla entry considerata. In aggiunta questa versione fornisce un semplice meccanismo di autenticazione per rendere più sicuri gli updates delle routing table. Un ulteriore differenza fra RIP 1 e RIP 2 riguarda i messaggi di updates; nel primo caso essendo tali messaggi di tipo broadcast si può verificare un sovraccarico nella rete e un tempo di convergenza lento, mentre per quanto riguarda il secondo i messaggi vengono inviati in multicast, interessando così solo certi router, alleggerendo così il numero di informazioni da trasmettere.
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.