Passa al contenuto principale

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

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 datiScopo principaleMomento di aggiornamento
Parametri globaliConfigurazione di base del routerCambio configurazione
Struttura areaConfigurazione area e LSDBAggiornamento LSA
Struttura interfacciaStato interfaccia e gestione viciniProtocollo Hello
Struttura vicinoManutenzione relazione di adiacenzaTransizione stato
LSDBMemorizzazione informazioni topologiaFlooding LSA
Tabella routingDecisione inoltroCalcolo 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

  1. Divisione area: Limitare dimensione di ogni area
  2. Aggregazione rotte: Ridurre numero di LSA
  3. Aree stub: Ridurre informazioni di rotta esterna
  4. Tuning interfaccia: Regolare parametri timer

Riepilogo tecnico (Technical Summary)

Principi di progettazione delle strutture dati

  1. Organizzazione gerarchica

    • Globale → Area → Interfaccia → Vicino
    • Facilita gestione e isolamento guasti
  2. Guidato da macchina a stati

    • Macchina a stati interfaccia
    • Macchina a stati vicino
    • Transizioni di stato chiare
  3. Database distribuito

    • Ogni router mantiene LSDB completo
    • Sincronizzazione tramite flooding
    • Garantisce coerenza routing

Riferimenti (References)


Nota (Note): Questo capitolo fornisce una panoramica. Le definizioni e operazioni dettagliate delle strutture dati saranno spiegate nei capitoli successivi.