Possiamo suddividere i più importanti protocolli di routing in tre categorie: Distance Vector, Link-State e Hybrid.
I router che usano protocolli Distance Vector, inviano la propria routing table o una porzione di essa al proprio vicino, chiamato neighbor. Questo, poi, usa le informazioni (l’aggiornamento della routing table) che ha ricevuto per determinare i cambiamenti nella routing table ed eventualmente stabilire se aggiornarla oppure no. Il procedimento di update viene ripetuto periodicamente.
Nei Link-State, invece, i router inviano lo stato delle proprie interfacce (i link, per intenderci) a tutti i router (o a tutti i router in una parte di rete chiamata area) solo quando c’è un cambiamento (link up/down). Ogni router usa le informazioni ricevute per ricalcolare il routing migliore verso ogni rete e salvarle nella propria routing table.
I protocolli definiti Hybrid, prendono alcune caratteristiche sia dai Link-State e sia dai Distance Vector. Infatti i protocolli Hybrid, nei routing updates, inviano solo le informazioni che realmente sono cambiate (caratteristica Link-State) e le inviano solamente ai propri vicini – neighbor -. (caratteristica Distance Vector).
Altra importante suddivisione dei protocolli di routing è quella fra Classful e Classless.
I protocolli di routing Classful non includono la subnet mask negli aggiornamenti e per questo motivo e gran limitazione (assumono che tutti gli altri router della rete usino la SM a default 255.255.255.0), sono costretti a summarizzare al network boundary, ovvero summarizzare una rete che viene annunciata attraverso un’ interfaccia che appartiene ad una rete diversa. Cosa significa? Se per esempio prendiamo questa topologia ed assumiamo che sia routata con un protocollo classful:
10.1.0.0/16 --- rtrA 10.2.0.0/16 --- rtrB --- 172.16.2.0/24 --- rtrC --- 172.16.1.0/24 routing table di rtrA: 10.1.0.0, 10.2.0.0, 172.16.0.0; routing table di rtrB: 10.1.0.0, 10.2.0.0, 172.16.1.0, 172.16.2.0; routing table di rtrC: 10.0.0.0, 172.16.1.0, 172.16.2.0;
rtrC, come possiamo notare, ha nella propria routing table una network summarizzata: 10.0.0.0. Questo dovuto al link fra rtrB e rtrC che ha come rete 172.16.2.0/24, e quindi, essendo diversa da 10.1.0.0 ed 10.2.0.0 implica la summarizzazione delle suddette da parte di rtrB, perchè come dicevamo prima, la subnet mask non viene inclusa nel routing update. Questo processo, viene chiamato autosummarization across the network boundary. Lo stesso concetto si applica a rtrA che in routing table avrà la rete summarizzata 172.16.0.0.
Per quanto riguarda i protocolli di routing Classless, nei pacchetti di aggiornamento inviati dai router viene compresa anche la subnet mask e quindi abbiamo anche il supporto VLSM (variable-length subnet mask). La summarizzazione viene controllata in qualsiasi posizione (bit position) e puo’ anche essere disabilitata (e.g. RIPv2, EIGRP).
Di seguito, una breve classificazione:
Distance Vector: RIPv1, RIPv2, IGRP (non supportato sui Cisco dalla IOS 12.3).
Link-State: OSPF, IS-IS.
Hybrid: EIGRP (Proprietario Cisco).
Path Vector: BGP.