5. Protocol Data Structures (Strutture dati del protocollo)
Questo capitolo presenta brevemente le principali strutture dati utilizzate dal protocollo OSPF. I dettagli saranno sviluppati nei capitoli successivi.
Panoramica del capitolo (Chapter Overview)
Il protocollo OSPF si basa su diverse strutture dati chiave per mantenere la topologia di rete e le informazioni di routing:
- Parametri globali
- Struttura dati area
- Struttura dati interfaccia
- Struttura dati vicino
- Database di stato dei collegamenti
Strutture dati principali (Main Data Structures)
1. Parametri globali (Global Parameters)
Parametri a livello di router
- Router ID: Identificatore unico a 32 bit
- Lista area: Tutte le aree a cui partecipa il router
- Flag router di confine AS: Se ASBR o meno
- Informazioni di rotta esterna: Rotte da altri protocolli
2. Struttura dati area (Area Data Structure)
Ogni area mantiene
- Area ID: Identificatore area
- Autenticazione area: Tipo di autenticazione e chiave
- Database di stato dei collegamenti: Tutti gli LSA di questa area
- Intervalli di indirizzi: Intervalli di indirizzi di rete dell'area
- Tipo di area: Area standard, area stub o NSSA
3. Struttura dati interfaccia (Interface Data Structure)
Ogni interfaccia mantiene
- Tipo di interfaccia: Punto-a-punto, broadcast, NBMA, ecc.
- Stato interfaccia: Down, Loopback, Waiting, DR, Backup, DROther
- Indirizzo IP e maschera
- Area ID: Area a cui appartiene l'interfaccia
- Intervalli Hello e Dead
- Priorità router: Utilizzata per elezione DR
- Lista vicini: Vicini su questa interfaccia
4. Struttura dati vicino (Neighbor Data Structure)
Ogni vicino mantiene
- ID vicino: Router ID del vicino
- Stato vicino: Down, Init, 2-Way, ExStart, Exchange, Loading, Full
- Indirizzo IP vicino
- Priorità vicino
- Router designato e router designato di backup
- Lista richieste di stato dei collegamenti
- Lista riepilogo database
- Lista ritrasmissione stato dei collegamenti
5. Database di stato dei collegamenti (Link State Database)
Struttura LSDB
- Organizzata per tipo: Router-LSA, Network-LSA, Summary-LSA, AS-external-LSA
- Separata per area: Ogni area ha una LSDB indipendente
- Informazioni intestazione LSA: LS Age, LS Type, Link State ID, Advertising Router, LS Sequence Number
Relazioni tra strutture dati (Data Structure Relationships)
Struttura gerarchica
Router
├── Area 1
│ ├── Database di stato dei collegamenti (LSDB)
│ └── Lista interfacce
│ └── Lista vicini
├── Area 2
│ ├── LSDB
│ └── Lista interfacce
└── Tabella di routing (Routing Table)
Scopi delle strutture dati chiave (Data Structure Purposes)
| Struttura dati | Scopo principale | Momento di aggiornamento |
|---|---|---|
| Parametri globali | Configurazione di base del router | Cambio configurazione |
| Struttura area | Configurazione area e LSDB | Aggiornamento LSA |
| Struttura interfaccia | Stato interfaccia e gestione vicini | Protocollo Hello |
| Struttura vicino | Manutenzione relazione di adiacenza | Transizione stato |
| LSDB | Memorizzazione informazioni topologia | Flooding LSA |
| Tabella routing | Decisione inoltro | Calcolo SPF |
Considerazioni su memoria e prestazioni (Memory and Performance)
Stima dell'utilizzo della memoria
Formule di base
- Dimensione LSDB ≈ (numero router × Router-LSA) + (numero reti × Network-LSA) + (rotte inter-area × Summary-LSA)
- Struttura vicini ≈ numero interfacce × numero medio vicini
- Tabella routing ≈ numero di tutte le reti raggiungibili
Raccomandazioni di ottimizzazione
- Divisione area: Limitare dimensione di ogni area
- Aggregazione rotte: Ridurre numero di LSA
- Aree stub: Ridurre informazioni di rotta esterna
- Tuning interfaccia: Regolare parametri timer
Riepilogo tecnico (Technical Summary)
Principi di progettazione delle strutture dati
-
Organizzazione gerarchica
- Globale → Area → Interfaccia → Vicino
- Facilita gestione e isolamento guasti
-
Guidato da macchina a stati
- Macchina a stati interfaccia
- Macchina a stati vicino
- Transizioni di stato chiare
-
Database distribuito
- Ogni router mantiene LSDB completo
- Sincronizzazione tramite flooding
- Garantisce coerenza routing
Riferimenti (References)
- Testo completo: RFC 2328 Section 5
Nota (Note): Questo capitolo fornisce una panoramica. Le definizioni e operazioni dettagliate delle strutture dati saranno spiegate nei capitoli successivi.