Passa al contenuto principale

9. Peer Process (Processo peer)

Il processo peer viene chiamato all'arrivo di un pacchetto server o peer. Esegue il protocollo su cavo per determinare l'offset dell'orologio e il ritardo di andata e ritorno e calcola le statistiche utilizzate dai processi di sistema e di polling. Le variabili peer vengono istanziate nella struttura dati di associazione quando la struttura viene inizializzata e aggiornate dai pacchetti in arrivo. C'è un processo peer, un processo di polling e un processo di associazione per ogni server.

9.1. Peer Process Variables (Variabili del processo peer)

Le seguenti sono le principali categorie di variabili utilizzate dal processo peer:

Variabili di configurazione

NomeFormulaDescrizione
srcaddrsrcaddrindirizzo sorgente (source address)
srcportsrcportporta sorgente (source port)
dstaddrdstaddrindirizzo destinazione (destination address)
dstportdestportporta destinazione (destination port)
keyidkeyididentificatore chiave (key identifier)

Variabili di pacchetto

NomeFormulaDescrizione
leapleapindicatore secondo intercalare (leap indicator)
versionversionnumero versione (version number)
modemodemodalità (mode)
stratumstratumstrato (stratum)
ppollppollesponente polling peer (peer poll exponent)
rootdelaydelta_rritardo radice (root delay)
rootdispepsilon_rdispersione radice (root dispersion)
refidrefidID riferimento (reference ID)
reftimereftimetimestamp riferimento (reference timestamp)

Variabili di timestamp

NomeFormulaDescrizione
orgT1timestamp origine (origin timestamp)
recT2timestamp ricezione (receive timestamp)
xmtT3timestamp trasmissione (transmit timestamp)
tttempo pacchetto (packet time)

Variabili statistiche

NomeFormulaDescrizione
offsetthetaoffset orologio (clock offset)
delaydeltaritardo andata-ritorno (round-trip delay)
dispepsilondispersione (dispersion)
jitterpsijitter
filterfilterfiltro orologio (clock filter)
tpt_ptempo filtro (filter time)

9.2. Peer Process Operations (Operazioni del processo peer)

Flusso di ricezione pacchetti

La routine di ricezione definisce il flusso del processo all'arrivo di un pacchetto. I passaggi principali includono:

  1. Controllo accessi: Implementare controlli lista di controllo accessi (ACL)
  2. Validazione formato: Verificare lunghezza campo, allineamento, numero versione e sintassi campo estensione
  3. Autenticazione: Se l'autenticazione è implementata, deve essere supportato l'algoritmo hash con chiave MD5
  4. Ricerca associazione: Cercare nella tabella associazioni l'indirizzo sorgente e la porta corrispondenti

Tabella di dispatching peer

In base alla combinazione di modalità di associazione e modalità di pacchetto, il sistema distribuisce l'elaborazione a diversi passaggi:

Modalità associazioneModalità pacchetto 1Modalità pacchetto 2Modalità pacchetto 3Modalità pacchetto 4Modalità pacchetto 5
Nessuna associazione 0NEWPSDSCRDFXMITMANYNEWBC
Simm. Attiva 1PROCPROCDSCRDDSCRDDSCRD
Simm. Passiva 2PROCERRDSCRDDSCRDDSCRD
Client 3DSCRDDSCRDDSCRDPROCDSCRD
Server 4DSCRDDSCRDDSCRDDSCRDDSCRD
Broadcast 5DSCRDDSCRDDSCRDDSCRDDSCRD
Client Bcast 6DSCRDDSCRDDSCRDDSCRDPROC

Azioni di elaborazione:

  • DSCRD: Scartare pacchetto (violazione protocollo non fatale)
  • ERR: Scartare pacchetto e smobilitare associazione simmetrica passiva (violazione protocollo fatale)
  • FXMIT: Trasmissione rapida (risposta server senza stato)
  • MANY: Risposta server manycast
  • NEWBC: Nuova associazione broadcast
  • NEWPS: Nuova associazione simmetrica passiva
  • PROC: Elaborare associazione corrispondente

Validazione pacchetti

Per l'elaborazione PROC, il sistema esegue controlli rigorosi dei timestamp per evitare pacchetti non validi, duplicati o falsi. Le validazioni principali includono:

  1. Verificare che il timestamp di trasmissione sia diverso da zero
  2. Verificare che il timestamp di origine corrisponda al timestamp di trasmissione precedentemente inviato
  3. Rilevare pacchetti duplicati (il timestamp di trasmissione corrisponde al timestamp di origine salvato)
  4. Verificare che il timestamp di destinazione sia successivo al timestamp di origine

Dopo aver superato questi controlli, il sistema calcola offset e ritardo, aggiorna il filtro orologio e prepara le statistiche per il processo di sistema.