Passa al contenuto principale

8. Protocol Packet Processing (Elaborazione pacchetti di protocollo)

Questo capitolo descrive in dettaglio come i router OSPF elaborano i pacchetti di protocollo ricevuti. Questa è la parte centrale dell'implementazione OSPF, coprendo la logica di elaborazione di tutti i tipi di pacchetti.

Panoramica del capitolo (Chapter Overview)

OSPF utilizza 5 diversi tipi di pacchetti di protocollo, ciascuno con un flusso di elaborazione specifico:

  • Pacchetti Hello
  • Pacchetti Database Description (DD)
  • Pacchetti Link State Request (LSR)
  • Pacchetti Link State Update (LSU)
  • Pacchetti Link State Acknowledgment (LSAck)

8.1 Ricezione di pacchetti di protocollo (Receiving Protocol Packets)

Elaborazione generale di ricezione (General Reception Processing)

Passo 1: Ricezione livello IP

  • Indirizzo di destinazione: 224.0.0.5 (AllSPFRouters) o 224.0.0.6 (AllDRouters) o unicast
  • Numero di protocollo: 89 (OSPF)
  • IP TTL: Deve essere 1 (tranne collegamenti virtuali)

Passo 2: Validazione intestazione OSPF

Elemento di controlloRequisitoElaborazione in caso di fallimento
Version NumberDeve essere 2Scartare il pacchetto
Packet Type1-5 validoScartare il pacchetto
ChecksumDeve essere correttoScartare il pacchetto
Area IDDeve corrispondereScartare il pacchetto
AuthenticationDeve passareScartare il pacchetto

8.2 Elaborazione pacchetti Hello (Hello Packet Processing)

Ricezione pacchetti Hello

Flusso di elaborazione

Ricevere Hello

Validare parametri Hello

Cercare/Creare vicino

Aggiornare stato vicino

Verificare elezione DR/BDR

Validazione parametri Hello

Parametri che devono corrispondere

ParametroDescrizioneElaborazione in caso di non corrispondenza
Network MaskMaschera di reteScartare il pacchetto
Hello IntervalIntervallo invio HelloScartare il pacchetto
Dead IntervalIntervallo scadenza vicinoScartare il pacchetto
OptionsFlag opzioniScartare il pacchetto

8.3 Elaborazione pacchetti Database Description (DD Packet Processing)

Ricezione pacchetti DD

Prerequisito

  • Lo stato del vicino deve essere >= ExStart
  • Altrimenti scartare il pacchetto

Rami logici di elaborazione

Ramo 1: Stato ExStart

Determinazione Master

if (DD ricevuto contiene flag I, M, MS):
if (Router ID vicino > Router ID locale):
Questo router diventa Slave
Il vicino diventa Master
Accettare il numero di sequenza del vicino
else:
Ignorare questo DD

Ricezione pacchetti LSR

Prerequisito

  • Lo stato del vicino deve essere >= Exchange
  • Altrimenti scartare il pacchetto

Flusso di elaborazione

Ricevere LSR

Attraversare la lista delle richieste

Cercare ogni LSA in LSDB

Trovato: Aggiungere alla risposta LSU
Non trovato: Evento BadLSReq

Inviare pacchetto LSU

Ricezione pacchetti LSU

Complessità dell'elaborazione

  • LSU può contenere più LSA
  • Ogni LSA è elaborato indipendentemente
  • Tipo di pacchetto più complesso

Validazione LSA

Passo 1: Validazione di base

Elemento di controlloRequisito
LS ChecksumDeve essere corretto
LS TypeDeve essere un tipo conosciuto
LS AgeDeve essere <= MaxAge (3600s)

Ricezione pacchetti LSAck

Flusso di elaborazione

Ricevere LSAck

Attraversare lista intestazioni LSA confermate

Cercare in Link State Retransmission List

Trovato e corrisponde: Rimuovere dalla lista ritrasmissione
Non trovato o non corrisponde: Ignorare questa conferma

8.7 Invio di pacchetti di protocollo (Sending Protocol Packets)

Decisione di invio

Pacchetti Hello

  • Invio periodico (Hello Interval)
  • Destinazione: AllSPFRouters (224.0.0.5)

Pacchetti DD

  • Durante la sincronizzazione del database
  • Destinazione: Indirizzo unicast del vicino

Pacchetti LSU

  • Risposta a LSR: Unicast
  • Flooding di nuovi LSA: Multicast o unicast

8.8 Meccanismo di ritrasmissione (Retransmission Mechanism)

Scopo

  • Tracciare LSA non confermati
  • Ogni vicino mantiene una lista indipendente

RxmtInterval

  • Valore predefinito: 5 secondi
  • Configurabile
  • Dovrebbe essere aumentato per collegamenti ad alta latenza

Riepilogo tecnico (Technical Summary)

Principi chiave di elaborazione

  1. Validazione rigorosa

    • Tutti i pacchetti devono passare più livelli di validazione
    • Qualsiasi non corrispondenza porta allo scarto immediato
    • Garantisce la sicurezza del protocollo
  2. Guidato da stato

    • Lo stato del vicino determina la logica di elaborazione
    • Transizioni di stato chiare
    • Evita operazioni non valide
  3. Trasmissione affidabile

    • Meccanismo di conferma
    • Meccanismo di ritrasmissione
    • Rilevamento numero di sequenza

Riferimenti (References)


Nota (Note): L'elaborazione dei pacchetti di protocollo è il nucleo dell'implementazione OSPF. Comprendere il flusso di elaborazione di ogni tipo di pacchetto è essenziale per un'implementazione corretta e la risoluzione dei problemi.