Torna alla pagina di Protocolli avanzati di rete
:: Protocolli avanzati di rete - Appunti del 24 Marzo ::
Reti di base e reti overlay
Nella scorsa lezione abbiamo detto che l' OSPF è un protocollo link state
.
Ora supponiamo di avere una rete di questo tipo:
Rete base
Se A manda un messaggio LSA lo riceve solo B.
Se lo manda B lo ricevono A, C, D.
Se lo manda D lo riceve solo B.
Se lo manda C lo riceve solo B.
Abbiamo quindi una serie di relazioni di vicinato, come avviene nel protocollo RIP. Ovviamente si potranno prevedere delle propagazioni dei messaggi per mettere in comunicazione nodi non adiacenti, ma dovranno sempre passare dal vicinato per raccogliere informazioni sulla rete.
Come cambiare questa situazione?
Rete overlay
Per far si che ogni nodo della rete possa costruirsi una propria tabella di instradamento e mantenerla aggiornata, occorre introdurre il relay (letteralmente, "rilancio"), ossia quel meccanismo grazie al quale se un nodo manda un LSA al vicino questi lo replica a sua volta ai suoi vicini, e così via. Utilizzando questa tecnica riusciamo così a passare da una rete a grafo magliato (di base) ad una a grafo completo, cioè in broadcast. In una rete overlay la matrice di adiacenza diventerà dunque facilissima da costruire per qualsiasi nodo, proprio in virtù del fatto che tutti ricevono i messaggi di tutti (dove ovviamente per "tutti" intendiamo quei router che appartengono allo stesso autonomous system).
La rete di base vista sopra cambia dunque aspetto (figura a destra) e comportamento: quando B riceve qualcosa da A, se il messaggio è più recente di quello che ha già allora lo inoltra a tutti gli altri.
Abbiamo detto che ogni nodo controlla se il messaggio è più recente di un altro che era già in suo possesso, ma perché? Per forza di cose il relay comporta una duplicazione dei messaggi, dunque un'informazione come il timestamp sarà fondamentale per distinguere quelli vecchi (da scartare) da quelli nuovi da tenere in considerazione.
Ultima osservazione: la rete overlay non serve per costruire le matrici di adiacenza della rete overlay stessa, perché dato che è un broadcast sarebbe composta di soli 1. Con la overlay network si costruiscono invece le tabelle di adiacenza della rete di base.
Riassumendo...
Approfondimento OSPF
Abbiamo già ricordato che l' OSPF è un protocollo link state
, in cui tutti i nodi costruiscono la tabella di instradamento (o matrice delle adiacenze) inviandosi la lista dei rispettivi vicini. Va da sé che questa matrice deve essere in costante aggiornamento, perché se diventasse statica smetterebbe di rappresentare la situazione attuale della rete.
Il link state si contrappone ai protocolli RIP (vedi Sistemi) nei quali la tabella di ciascun nodo contiene solo la lista degli hop vicini.
Nell'OSPF La matrice viene costruita come segue:
- ogni hop manda ai vicini un messaggio di LSA per dire che sono disponibili
- ciascun nodo manda la tabella ai vicini
- ad ogni modifica della rete (ad esempio l'aggiunta di un nodo o l'indisponibilità di un altro) o allo scadere di un timestamp, ripartono i messaggi LSA per aggiornarla
Il messaggio LSA contiene una lista dei vicini del mittente, più il round-trip-time medio. Altri protocolli utilizzano altre metriche al posto del round-trip-time, come ad esempio il numero dei pacchetti in coda per arrivare a destinazione. Tali metriche devono però essere indicative della situazione e non troppo sensibili (o ci sarebbe un'alta variabilità dei tragitti).
Se eleviamo ad un certo numero k
la matrice delle adiacenze M
di una rete di base, sapremo quali sono i nodi connessi da cammini di lunghezza k
. Potremo utilizzare quest'informazione per l'instradamento, dato che fornisce indicazioni preziose sul next-hop a distanza minima da scegliere.
Abbiamo già detto che la matrice delle adiacenze deve essere incessantemente aggiornata se vogliamo catturare la situazione reale, almeno una volta ogni 30 secondi. Questo intervallo di tempo è chiamato HELLO time e non dovrebbe essere troppo breve o il flooding (spostamento) del traffico da una rete all'altra avverrebbe in modo troppo drastico con le conseguenti difficoltà di gestione. A ogni modo, proprio il fatto che la matrice deve essere aggiornata ogni tot tempo è la ragione per cui i pacchetti che compongono il messaggio dovranno essere riordinati una volta arrivati a destinazione: la trasmissione di tipo FIFO è garantita solo su rotte costanti, non certo nelle situazioni reali dove c'è grande variabilità delle rotte.
Approfondimento OSPF-TE
Quando utilizziamo il protocollo per motivi di traffic engeneering (OSPF-TE) non è necessario aggiornare frequentemente la matrice, al limite solo per gestire eventuali congestioni o tener conto delle λ occupate. Inoltre non viene utilizzata la metrica del round-trip-time perché siamo su una rete circuit switching, e abbiamo perciò una linea esclusiva dove non si presentano problemi di latenza. A tale metrica campionaria (stocastica) si preferisce qualcosa che sia deterministico, ovvero calcolabile una sola volta e che rimanga fisso, ad esempio il bitrate
. L'unica occasione in cui dovrò ricalcolarlo è in caso di guasto.
L'OSPF-TE viene quindi usato per assegnare cammini e non più per gestire il controllo della congestione che mi permetteva di evitare i tratti trafficati, tanto una volta che ho la linea non ho più varianza del round-trip-time: il tempo di percorrenza rimane fisso al valore L/T
(larghezza canale fratto il tempo?).
Cosa succede se una sorgente eccede la capacità del canale? Avrò bisogno di molto più spazio di banda, ma se la rete non è pronta a darmi un nuovo canale aumenterà il tempo di latenza perché il traffico è improvvisamente aumentato. Non posso dirottare il traffico in eccesso su un canale che in quel momento è libero (idle
)? Attualmente no, l'OSPF-TE non è in grado di reagire in modo dinamico a queste situazioni, cosa che invece riusciva a fare benissimo nell'OSPF classico sulla rete normale. Ci sono però degli studi in atto per implementare questa flessibilità anche per la rete pubblica in futuro.
Ricapitolando, mettiamo a confronto OSPF e OSPF-TE:
- utilizzano lo stesso algoritmo
- non hanno lo stesso HELLO time, che è molto più lungo nell'OSPF-TE (anche di un'ora)
- cambia la metrica: round-trip-time (dinamico) per l'OSPF, metrica statica (ad esempio il bitrate) per l'altro
- l'OSPF reagisce in modo dinamico ai problemi di congestione di traffico
- il loro comportamento su fibra è del tutto identico
Torna alla pagina di Protocolli avanzati di rete