Passa al contenuto principale

15. Affidabilita degli scambi di messaggi iniziati dal client

Questa sezione conserva il testo della RFC su DHCPv6, inclusi scambi di messaggi, comportamento dei relay, DUID, IA_NA, IA_TA, IA_PD, opzioni DHCP, autenticazione RKAP, registri IANA, requisiti normativi e matrici in appendice sull'apparizione delle opzioni.

Testo originale della RFC

15.  Affidabilita degli scambi di messaggi iniziati dal client

I client DHCP sono responsabili della consegna affidabile dei messaggi
negli scambi di messaggi iniziati dal client descritti nella
Section 18. Se un client DHCP non riceve una risposta attesa da un
server, il client deve ritrasmettere il proprio messaggio secondo la
strategia di ritrasmissione descritta di seguito.

Si noti che la procedura descritta in questa sezione e leggermente
modificata quando viene usata con il messaggio Solicit. La procedura
modificata e descritta nella Section 18.2.1.

Il client inizia lo scambio di messaggi trasmettendo un messaggio al
server. Lo scambio di messaggi termina quando (1) il client riceve
con successo la risposta o le risposte appropriate da uno o piu server
oppure (2) lo scambio di messaggi e considerato fallito secondo il
meccanismo di ritrasmissione descritto di seguito.

Il client MUST aggiornare un valore "elapsed-time" all'interno di
un'opzione Elapsed Time (vedere Section 21.9) nel messaggio
ritrasmesso. In alcuni casi, il client puo anche dover modificare
valori nelle opzioni IA Address (vedere Section 21.6) o IA Prefix
(vedere Section 21.22) se un valid lifetime per una qualsiasi delle
lease del client scade prima della ritrasmissione. Pertanto, ogni
volta che questo documento fa riferimento a una "retransmission" di un
messaggio del client, si riferisce sia alla modifica del messaggio
originale sia all'invio di questa nuova istanza di messaggio al server.

Il comportamento di ritrasmissione del client e controllato e
descritto dalle seguenti variabili:

RT: Retransmission timeout

IRT: Initial retransmission time

MRC: Maximum retransmission count

MRT: Maximum retransmission time

MRD: Maximum retransmission duration

RAND: Randomization factor

Valori specifici per ciascuno di questi parametri rilevanti per i vari
messaggi sono forniti nelle sottosezioni della Section 18.2, usando i
valori definiti nella Table 1 della Section 7.6. L'algoritmo per RAND
e comune a tutte le trasmissioni di messaggi.

A ogni trasmissione o ritrasmissione di messaggio, il client imposta
RT secondo le regole indicate di seguito. Se RT scade prima che lo
scambio di messaggi termini, il client ricalcola RT e ritrasmette il
messaggio.

Ciascun calcolo di un nuovo RT include un fattore di randomizzazione
(RAND), che e un numero casuale scelto con distribuzione uniforme tra
-0.1 e +0.1. Il fattore di randomizzazione e incluso per minimizzare
la sincronizzazione dei messaggi trasmessi dai client DHCP.

L'algoritmo per scegliere un numero casuale non deve essere
crittograficamente robusto. L'algoritmo SHOULD produrre una sequenza
diversa di numeri casuali a ogni invocazione del client DHCP.

RT per la prima trasmissione del messaggio e basato su IRT:

RT = IRT + RAND*IRT

RT per ciascuna trasmissione successiva del messaggio e basato sul
valore precedente di RT:

RT = 2*RTprev + RAND*RTprev

MRT specifica un limite superiore al valore di RT (trascurando la
randomizzazione aggiunta dall'uso di RAND). Se MRT ha valore 0, non
esiste limite superiore al valore di RT. Altrimenti:

if (RT > MRT)
RT = MRT + RAND*MRT

MRC specifica un limite superiore al numero di volte in cui un client
puo ritrasmettere un messaggio. A meno che MRC sia zero, lo scambio
di messaggi fallisce una volta che il client ha trasmesso il messaggio
MRC volte.

MRD specifica un limite superiore alla durata per cui un client puo
ritrasmettere un messaggio. A meno che MRD sia zero, lo scambio di
messaggi fallisce una volta che sono trascorsi MRD secondi da quando il
client ha trasmesso il messaggio per la prima volta.

Se sia MRC sia MRD sono diversi da zero, lo scambio di messaggi
fallisce ogni volta che una delle condizioni specificate nei due
paragrafi precedenti e soddisfatta.

Se sia MRC sia MRD sono zero, il client continua a trasmettere il
messaggio finche non riceve una risposta.

Non ci si aspetta che un client ascolti una risposta durante l'intero
periodo RT e puo disattivare le capacita di ascolto dopo aver atteso
almeno il piu breve tra RT e MAX_WAIT_TIME per risparmio energetico o
per altri motivi. Naturalmente, un client MUST ascoltare un
Reconfigure se ne ha negoziato l'uso con il server.