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.