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
| Nome | Formula | Descrizione |
|---|---|---|
| srcaddr | srcaddr | indirizzo sorgente (source address) |
| srcport | srcport | porta sorgente (source port) |
| dstaddr | dstaddr | indirizzo destinazione (destination address) |
| dstport | destport | porta destinazione (destination port) |
| keyid | keyid | identificatore chiave (key identifier) |
Variabili di pacchetto
| Nome | Formula | Descrizione |
|---|---|---|
| leap | leap | indicatore secondo intercalare (leap indicator) |
| version | version | numero versione (version number) |
| mode | mode | modalità (mode) |
| stratum | stratum | strato (stratum) |
| ppoll | ppoll | esponente polling peer (peer poll exponent) |
| rootdelay | delta_r | ritardo radice (root delay) |
| rootdisp | epsilon_r | dispersione radice (root dispersion) |
| refid | refid | ID riferimento (reference ID) |
| reftime | reftime | timestamp riferimento (reference timestamp) |
Variabili di timestamp
| Nome | Formula | Descrizione |
|---|---|---|
| org | T1 | timestamp origine (origin timestamp) |
| rec | T2 | timestamp ricezione (receive timestamp) |
| xmt | T3 | timestamp trasmissione (transmit timestamp) |
| t | t | tempo pacchetto (packet time) |
Variabili statistiche
| Nome | Formula | Descrizione |
|---|---|---|
| offset | theta | offset orologio (clock offset) |
| delay | delta | ritardo andata-ritorno (round-trip delay) |
| disp | epsilon | dispersione (dispersion) |
| jitter | psi | jitter |
| filter | filter | filtro orologio (clock filter) |
| tp | t_p | tempo 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:
- Controllo accessi: Implementare controlli lista di controllo accessi (ACL)
- Validazione formato: Verificare lunghezza campo, allineamento, numero versione e sintassi campo estensione
- Autenticazione: Se l'autenticazione è implementata, deve essere supportato l'algoritmo hash con chiave MD5
- 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à associazione | Modalità pacchetto 1 | Modalità pacchetto 2 | Modalità pacchetto 3 | Modalità pacchetto 4 | Modalità pacchetto 5 |
|---|---|---|---|---|---|
| Nessuna associazione 0 | NEWPS | DSCRD | FXMIT | MANY | NEWBC |
| Simm. Attiva 1 | PROC | PROC | DSCRD | DSCRD | DSCRD |
| Simm. Passiva 2 | PROC | ERR | DSCRD | DSCRD | DSCRD |
| Client 3 | DSCRD | DSCRD | DSCRD | PROC | DSCRD |
| Server 4 | DSCRD | DSCRD | DSCRD | DSCRD | DSCRD |
| Broadcast 5 | DSCRD | DSCRD | DSCRD | DSCRD | DSCRD |
| Client Bcast 6 | DSCRD | DSCRD | DSCRD | DSCRD | PROC |
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:
- Verificare che il timestamp di trasmissione sia diverso da zero
- Verificare che il timestamp di origine corrisponda al timestamp di trasmissione precedentemente inviato
- Rilevare pacchetti duplicati (il timestamp di trasmissione corrisponde al timestamp di origine salvato)
- 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.