20) In
cosa consistono in dettaglio gli algoritmi Vector Distance?
Ogni gateway contiene delle tabelle di routing che non indicano
i cammini completi, bensì il numero di passi (o la distanza secondo la
metrica scelta) ed il primo gateway da attraversare per raggiungere una certa
destinazione.
Le tabelle si propagano ad ogni vicino: chi
riceve un’offerta aggiorna opportunamente la tabella se la proposta è
conveniente in base alla metrica.
Problemi e varianti:
- Count-to-infinity: in questo tipo di algoritmo le
buone notizie si propagano velocemente (ci vogliono N scambi di tabelle per
far conoscere ad un gateway distante N salti che una certa destinazione è
raggiungibile in N passi), mentre le cattive notizie si propagano lentamente.
In particolare, se una connessione salta, ci vogliono parecchi scambi prima
che tutti i gateway facciano raggiungere un valore alto, convenzionalmente
inteso come infinito, alla metrica per raggiungere un gateway isolato. Il
problema deriva dal fatto che se un gateway che poteva raggiungere in M passi
il gateway isolato non lo raggiunge più, utilizza come nuovo percorso
quello indicato dal vicino, anche (e questo è il punto focale) se è
lo stesso percorso che ripassa su di lui, ovviamente con il valore della metrica
incrementato di uno. Questo determina un lento crescere delle metriche fino
all’infinito convenzionale.
- Split-horizon: questo algoritmo vuole risolvere il
problema del count-to-infinity. Corregge il punto focale segnalato prima:
se la distanza da comunicare ad un vicino coincide con un persorso che passa
sul vicino stesso, al vicino si comunica "infinito". Questo permette
di far propagare anche le cattive notizie un passo alla volte. Putroppo, per
configurazioni triangolari si ricade nuovamente nel count-to-infinity.
- Split-horizon con poisoned reverse: per risolvere
configurazioni circolari si tiene conto se un’informazione viene non solo
dal vicino, ma anche da alcuni nodi precedenti. (ad esempio, la comunicazione
che E riceve da D —proveniente da C— viene ignorata, in quanto E ha già
ricevuto un’altra comunicazione da C). Ovviamente questo comporta un maggior
numero di informazioni da trasmettere, cioè le sorgenti delle varie
segnalazioni.
- Split horizon con triggered broadcast: per diffondere
in fretta una cattiva notizia viene fatto un broadcast.