Pacchetti OSPF
Esistono 5 tipi di pacchetto OSPF. Tutte le 5 tipologie di pacchetto previste
hanno un intestazione di 24 byte suddivisa in:
- Version: attualmente in uso la seconda versione;
- Type: sono previste 5 tipologie di pacchetto:
1. Hello
2. Database Description
3. Link State Request
4. Link State Update
5. Link State Acknowledgment - Packet length: dimensione del pacchetto in byte header incluso;
- Router ID: identificatore del router che genera il pacchetto;
- Area ID: identificatore dell’area a cui appartiene il pacchetto. Ogni pacchetto appartiene ad una sola area;
- Checksum:
Gli annunci OSPF (LSA) sono contenuti in messagi OSPF che vengono trasportati direttamente da IP con un protocollo di livello superiore: il protocollo OSPF deve implementare funzionalità quali il trasferimento affidabile dei messagi e il broadcast dello stato dei collegamenti, controlla che i collegamenti siano operativi (tramite messaggi Hello) e consente ai router OSPF di accedere ai database sullo stato dei collegamenti della rete.
Pacchetto Hello
Il protocollo di Hello è usato per creare e mantenere le relazioni di vicinato. Viene anche usato per l’elezione del Designated Router. All’accensione il router inizializza alcune strutture dati di supporto e aspetta indicazioni dai protocolli di basso livello sulla corretta funzionalità delle sue interfaccie. Appena si è assicurato che le sue interfacce funzionano usa un protocollo di Hello per acquisire informazioni sui nodi vicini: invia pacchetti di Hello e li riceve da questi. Successivamente i pacchetti di Hello sono usati come pacchetti “keep-alive” per verificare i vicini attivi. Sulle reti broadcast (es. LAN) i pacchetti vengono inviati in multicast. Sulle reti non multicast sono necessarie informazioni aggiuntive.Pacchetto Database Description
Una coppia di router adiacenti si scambia pacchetti di Database Description (DD) per descrivere il contenuto del proprio database topoogico. (Link State Database). E’ un meccanismo di sincronizzazione tra i database. Mediante un meccanismo basato sugli ID dei router uno dei due viene eletto master e l’altro slave. Appena un router riceve il primo pacchetto di Hello da un suo vicino, gli invia un pacchetto DD che fornisce la descrizione di ciascuna entry del suo database. Il router, esaminando il DD, invia uno o più link state request per richiedere informazioni relative a tutti i collegamenti citati nel DD. Si usa una procedura di poll-response:
- Il master invia pacchetti DD (poll);
- Lo slave riscontra i pacchetti DD ricevuti inviando a sua volta pacchetti DD (response);
Le risposte sono collegate alle richieste dal numero di sequenza dei pacchetti DD. Il pacchetto DD contiene una lista di LSA. Quando uno dei 2 ha finito continua a inviare DD vuoti finchè non finisce anche l’altro.
Pacchetto Link State Request
Sono usati da un router per richiedere ad un router vicino l’invio di uno o più LSA. Sono scambiati dopo che un router scopre (esaminando i pacchetti DD) che parti del suo database topologico non sono aggiornate.Pacchetto Link State Update
Contiene una lista di LSA che il router invia ai suoi router vicini. Sono usati per rispondere ad un pacchetto di Link State Request, per la diffusione periodica o in seguito a cambiamenti topologici. Sono inviati con la tecnica flooding e richiedono un riscontro da fornire con un messaggio di Link State Acknowledgment.Pacchetto Link State Acknowledgment
Indica l’avvenuta ricenzione di un pacchetto di Link State Update. Eventuali ritrasmissioni sono inviate in maniera DIRETTA al vicino che le ha richieste.