Zum Hauptinhalt springen

5. Protocol Data Structures (Protokolldatenstrukturen)

Dieses Kapitel stellt kurz die wichtigsten Datenstrukturen vor, die vom OSPF-Protokoll verwendet werden. Details werden in den folgenden Kapiteln ausgeführt.

Kapitelübersicht (Chapter Overview)

Das OSPF-Protokoll stützt sich auf mehrere wichtige Datenstrukturen zur Aufrechterhaltung der Netzwerktopologie und Routing-Informationen:

  • Globale Parameter
  • Area-Datenstruktur
  • Interface-Datenstruktur
  • Neighbor-Datenstruktur
  • Link-State-Datenbank

Hauptdatenstrukturen (Main Data Structures)

1. Globale Parameter (Global Parameters)

Router-Level-Parameter

  • Router ID: 32-Bit-eindeutige Kennung
  • Area-Liste: Alle Areas, an denen der Router teilnimmt
  • AS-Grenzrouter-Flag: Ob ASBR oder nicht
  • Externe Routing-Informationen: Routen von anderen Protokollen

2. Area-Datenstruktur (Area Data Structure)

Jede Area pflegt

  • Area ID: Area-Kennung
  • Area-Authentifizierung: Authentifizierungstyp und Schlüssel
  • Link-State-Datenbank: Alle LSAs dieser Area
  • Adressbereiche: Netzwerkadressbereiche der Area
  • Area-Typ: Standard-Area, Stub-Area oder NSSA

3. Interface-Datenstruktur (Interface Data Structure)

Jedes Interface pflegt

  • Interface-Typ: Punkt-zu-Punkt, Broadcast, NBMA usw.
  • Interface-Status: Down, Loopback, Waiting, DR, Backup, DROther
  • IP-Adresse und Maske
  • Area ID: Area, zu der das Interface gehört
  • Hello-Intervall und Dead-Intervall
  • Router-Priorität: Verwendet für DR-Wahl
  • Neighbor-Liste: Neighbors auf diesem Interface

4. Neighbor-Datenstruktur (Neighbor Data Structure)

Jeder Neighbor pflegt

  • Neighbor ID: Router ID des Neighbors
  • Neighbor-Status: Down, Init, 2-Way, ExStart, Exchange, Loading, Full
  • Neighbor-IP-Adresse
  • Neighbor-Priorität
  • Designated Router und Backup Designated Router
  • Link-State-Anforderungsliste
  • Datenbank-Zusammenfassungsliste
  • Link-State-Übertragungsliste

LSDB-Struktur

  • Nach Typ organisiert: Router-LSA, Network-LSA, Summary-LSA, AS-external-LSA
  • Nach Area getrennt: Jede Area hat eine unabhängige LSDB
  • LSA-Header-Informationen: LS Age, LS Type, Link State ID, Advertising Router, LS Sequence Number

Datenstrukturbeziehungen (Data Structure Relationships)

Hierarchische Struktur

Router
├── Area 1
│ ├── Link-State-Datenbank (LSDB)
│ └── Interface-Liste
│ └── Neighbor-Liste
├── Area 2
│ ├── LSDB
│ └── Interface-Liste
└── Routing-Tabelle (Routing Table)

Zweck der wichtigsten Datenstrukturen (Data Structure Purposes)

DatenstrukturHauptzweckAktualisierungszeitpunkt
Globale ParameterRouter-BasiskonfigurationKonfigurationsänderung
Area-StrukturArea-Konfiguration und LSDBLSA-Aktualisierung
Interface-StrukturInterface-Status und Neighbor-VerwaltungHello-Protokoll
Neighbor-StrukturAdjacency-WartungState-Machine-Übergang
LSDBTopologieinformationsspeicherungLSA-Flooding
Routing-TabelleWeiterleitungsentscheidungSPF-Berechnung

Speicher- und Leistungsüberlegungen (Memory and Performance)

Speichernutzungsschätzung

Grundformeln

  • LSDB-Größe ≈ (Anzahl Router × Router-LSA) + (Anzahl Netzwerke × Network-LSA) + (Inter-Area-Routen × Summary-LSA)
  • Neighbor-Struktur ≈ Anzahl Interfaces × durchschnittliche Neighbor-Anzahl
  • Routing-Tabelle ≈ Anzahl aller erreichbaren Netzwerke

Optimierungsempfehlungen

  1. Area-Aufteilung: Größe jeder Area begrenzen
  2. Routen-Aggregation: LSA-Anzahl reduzieren
  3. Stub-Areas: Externe Routing-Informationen reduzieren
  4. Interface-Tuning: Timer-Parameter anpassen

Technische Zusammenfassung (Technical Summary)

Datenstruktur-Designprinzipien

  1. Hierarchische Organisation

    • Global → Area → Interface → Neighbor
    • Erleichtert Verwaltung und Fehlerisolierung
  2. State-Machine-gesteuert

    • Interface-State-Machine
    • Neighbor-State-Machine
    • Klare Zustandsübergänge
  3. Verteilte Datenbank

    • Jeder Router pflegt vollständige LSDB
    • Synchronisation durch Flooding
    • Gewährleistet Routing-Konsistenz

Referenzen (References)


Hinweis (Note): Dieses Kapitel bietet einen Überblick. Detaillierte Datenstrukturdefinitionen und -operationen werden in den folgenden Kapiteln ausführlich erklärt.