10. Costanti del Protocollo (Protocol Constants)
Questa sezione definisce le costanti di protocollo utilizzate da Neighbor Discovery. Queste costanti specificano valori di temporizzazione, limiti di ritrasmissione e altri parametri che governano il comportamento del protocollo. Le implementazioni DEVONO (MUST) utilizzare questi valori a meno che non sia esplicitamente specificato diversamente nella specifica del protocollo.
10.1. Costanti Host (Host Constants)
Le seguenti costanti sono utilizzate dagli host durante la scoperta del router e la configurazione dell'indirizzo:
| Costante | Valore | Descrizione |
|---|---|---|
| MAX_RTR_SOLICITATION_DELAY | 1 secondo | Ritardo massimo prima di trasmettere il primo messaggio Router Solicitation. Utilizzato per prevenire la sincronizzazione quando più host si avviano simultaneamente. |
| RTR_SOLICITATION_INTERVAL | 4 secondi | Intervallo di tempo tra le ritrasmissioni dei messaggi Router Solicitation. |
| MAX_RTR_SOLICITATIONS | 3 trasmissioni | Numero massimo di messaggi Router Solicitation che un host invia prima di accettare che non ci sono router presenti. |
Note d'Uso (Usage Notes)
-
MAX_RTR_SOLICITATION_DELAY: Quando un'interfaccia host diventa abilitata, DOVREBBE (SHOULD) attendere un tempo casuale tra 0 e MAX_RTR_SOLICITATION_DELAY prima di inviare la prima Router Solicitation. Questo previene la congestione della rete quando molti host vengono accesi simultaneamente.
-
RTR_SOLICITATION_INTERVAL: Se un host non riceve un Router Advertisement in risposta alla sua Router Solicitation, ritrasmette dopo questo intervallo.
-
MAX_RTR_SOLICITATIONS: Dopo aver inviato questo numero di sollecitazioni senza ricevere risposta, un host conclude che non ci sono router disponibili sul link e può procedere con altri meccanismi di configurazione dell'indirizzo (come DHCPv6).
10.2. Costanti Router (Router Constants)
Le seguenti costanti governano il comportamento del router durante l'invio di Router Advertisement:
| Costante | Valore | Descrizione |
|---|---|---|
| MAX_INITIAL_RTR_ADVERT_INTERVAL | 16 secondi | Intervallo di tempo massimo tra i Router Advertisement non sollecitati iniziali inviati da un'interfaccia quando diventa un'interfaccia pubblicitaria. |
| MAX_INITIAL_RTR_ADVERTISEMENTS | 3 trasmissioni | Numero di Router Advertisement non sollecitati iniziali inviati quando un'interfaccia router diventa un'interfaccia pubblicitaria. |
| MAX_FINAL_RTR_ADVERTISEMENTS | 3 trasmissioni | Numero di Router Advertisement finali inviati quando un'interfaccia router cessa di essere un'interfaccia pubblicitaria. |
| MIN_DELAY_BETWEEN_RAS | 3 secondi | Intervallo di tempo minimo tra l'invio di Router Advertisement multicast non sollecitati da un'interfaccia. |
| MAX_RA_DELAY_TIME | 0,5 secondi | Ritardo massimo prima di rispondere a una Router Solicitation con un Router Advertisement. |
Note d'Uso (Usage Notes)
-
MAX_INITIAL_RTR_ADVERT_INTERVAL: Quando un router inizia a fare pubblicità su un'interfaccia, invia diversi annunci iniziali a una frequenza più alta per informare rapidamente gli host della sua presenza.
-
MAX_INITIAL_RTR_ADVERTISEMENTS: Questa pubblicità iniziale rapida aiuta gli host appena connessi a configurarsi rapidamente.
-
MAX_FINAL_RTR_ADVERTISEMENTS: Quando un router sta per smettere di fare pubblicità (ad esempio, spegnimento graduale), invia annunci finali con una Router Lifetime di zero per informare gli host che non dovrebbero più utilizzare questo router.
-
MIN_DELAY_BETWEEN_RAS: Questo previene che i router inondino il link con Router Advertisement, anche se sollecitati da più host simultaneamente.
-
MAX_RA_DELAY_TIME: Quando risponde a una Router Solicitation, un router ritarda la sua risposta di un ammontare casuale fino a questo valore per evitare risposte sincronizzate da più router.
10.3. Costanti Nodo (Node Constants)
Le seguenti costanti si applicano a tutti i nodi IPv6 (sia host che router) per la risoluzione degli indirizzi e il rilevamento dell'irraggiungibilità dei vicini:
| Costante | Valore | Descrizione |
|---|---|---|
| MAX_MULTICAST_SOLICIT | 3 trasmissioni | Numero massimo di messaggi Neighbor Solicitation multicast inviati per la risoluzione degli indirizzi o la conferma della raggiungibilità. |
| MAX_UNICAST_SOLICIT | 3 trasmissioni | Numero massimo di messaggi Neighbor Solicitation unicast inviati per sondare la raggiungibilità di un vicino. |
| MAX_ANYCAST_DELAY_TIME | 1 secondo | Ritardo massimo prima di rispondere a una Neighbor Solicitation per un indirizzo anycast. |
| MAX_NEIGHBOR_ADVERTISEMENT | 3 trasmissioni | Numero massimo di messaggi Neighbor Advertisement non sollecitati inviati quando l'indirizzo link-layer di un nodo cambia. |
| REACHABLE_TIME | 30.000 millisecondi | Valore base utilizzato per calcolare il ReachableTime casuale. Tipicamente sovrascritto dai valori ricevuti nei Router Advertisement. |
| RETRANS_TIMER | 1.000 millisecondi | Valore base per il tempo tra le ritrasmissioni dei messaggi Neighbor Solicitation. Tipicamente sovrascritto dai valori ricevuti nei Router Advertisement. |
| DELAY_FIRST_PROBE_TIME | 5 secondi | Ritardo prima di inviare la prima sonda Neighbor Solicitation unicast quando un vicino diventa sospetto. |
| MIN_RANDOM_FACTOR | 0,5 | Valore minimo per il fattore casuale utilizzato nel calcolo di RandomReachableTime. |
| MAX_RANDOM_FACTOR | 1,5 | Valore massimo per il fattore casuale utilizzato nel calcolo di RandomReachableTime. |
Note d'Uso (Usage Notes)
-
MAX_MULTICAST_SOLICIT: Utilizzato durante la risoluzione degli indirizzi quando un nodo deve determinare l'indirizzo link-layer di un vicino. Dopo questo numero di tentativi, il nodo conclude che il vicino è irraggiungibile.
-
MAX_UNICAST_SOLICIT: Utilizzato durante il rilevamento dell'irraggiungibilità dei vicini per sondare un vicino diventato sospetto.
-
MAX_ANYCAST_DELAY_TIME: Quando più nodi condividono un indirizzo anycast, rispondono alle Neighbor Solicitation con un ritardo casuale per ridurre le collisioni. Il nodo con il ritardo più breve risponde, e gli altri sopprimono le loro risposte.
-
MAX_NEIGHBOR_ADVERTISEMENT: Quando l'indirizzo link-layer di un nodo cambia, invia in multicast Neighbor Advertisement non sollecitati per aggiornare le cache di tutti i vicini.
-
REACHABLE_TIME e RETRANS_TIMER: Questi forniscono valori predefiniti, ma i nodi DOVREBBERO (SHOULD) utilizzare i valori pubblicizzati dai router quando disponibili.
-
DELAY_FIRST_PROBE_TIME: Quando viene rilevato un progresso in avanti per un vicino nello stato DELAY, il nodo attende questo tempo prima di sondare per confermare la raggiungibilità.
-
MIN_RANDOM_FACTOR e MAX_RANDOM_FACTOR: Utilizzati per calcolare un valore ReachableTime casuale per evitare attività di Neighbor Unreachability Detection sincronizzata su più nodi.
10.4. Considerazioni sull'Implementazione (Implementation Considerations)
Durante l'implementazione di queste costanti:
-
Ottimizzazione (Tuning): Sebbene questi valori siano stati scelti con cura per l'uso generale su Internet, gli amministratori di rete POSSONO (MAY) aver bisogno di regolarli per ambienti specifici (ad esempio, reti wireless con alti tassi di perdita).
-
Sovrascrittura da Router Advertisement (Router Advertisement Override): Diverse costanti di nodo (REACHABLE_TIME, RETRANS_TIMER) possono essere sovrascritte dai valori ricevuti nei Router Advertisement. Le implementazioni DEVONO (MUST) rispettare questi valori ricevuti.
-
Randomizzazione (Randomization): Diverse operazioni richiedono randomizzazione (ad esempio, MAX_RTR_SOLICITATION_DELAY, MAX_RA_DELAY_TIME) per prevenire la sincronizzazione. Le implementazioni DOVREBBERO (SHOULD) utilizzare un generatore di numeri casuali di qualità.
-
Caratteristiche della Rete (Network Characteristics): Per le reti con caratteristiche insolite (latenza molto alta, alta perdita di pacchetti o numero molto grande di nodi), queste costanti potrebbero richiedere una regolazione. Qualsiasi regolazione di questo tipo DOVREBBE (SHOULD) essere documentata e basata su un'attenta analisi.