Aller au contenu principal

15. Fiabilite des echanges de messages inities par le client

Cette section conserve le texte de la RFC relatif a DHCPv6, notamment les echanges de messages, le comportement des relais, les DUID, IA_NA, IA_TA, IA_PD, les options DHCP, l'authentification RKAP, les registres IANA, les exigences normatives et les matrices d'apparition des options en annexe.

Texte original de la RFC​

15.  Fiabilite des echanges de messages inities par le client

   Les clients DHCP sont responsables de la livraison fiable des messages
   dans les echanges de messages inities par le client decrits dans la
   Section 18.  Si un client DHCP ne recoit pas une reponse attendue d'un
   serveur, le client doit retransmettre son message selon la strategie
   de retransmission decrite ci-dessous.

   Noter que la procedure decrite dans cette section est legerement
   modifiee lorsqu'elle est utilisee avec le message Solicit.  La
   procedure modifiee est decrite dans la Section 18.2.1.

   Le client commence l'echange de messages en transmettant un message au
   serveur.  L'echange de messages se termine lorsque soit (1) le client
   recoit avec succes la ou les reponses appropriees d'un ou de plusieurs
   serveurs, soit (2) l'echange de messages est considere comme ayant
   echoue selon le mecanisme de retransmission decrit ci-dessous.

   Le client MUST mettre a jour une valeur "elapsed-time" dans une option
   Elapsed Time (voir Section 21.9) dans le message retransmis.  Dans
   certains cas, le client peut egalement devoir modifier des valeurs dans
   les options IA Address (voir Section 21.6) ou IA Prefix (voir
   Section 21.22) si une valid lifetime de l'un des baux du client expire
   avant la retransmission.  Ainsi, chaque fois que ce document fait
   reference a une "retransmission" d'un message du client, cela designe
   a la fois la modification du message original et l'envoi de cette
   nouvelle instance de message au serveur.

   Le comportement de retransmission du client est controle et decrit par
   les variables suivantes:

   RT:    Retransmission timeout

   IRT:   Initial retransmission time

   MRC:   Maximum retransmission count

   MRT:   Maximum retransmission time

   MRD:   Maximum retransmission duration

   RAND:  Randomization factor

   Les valeurs specifiques de chacun de ces parametres pertinents pour
   les differents messages sont donnees dans les sous-sections de la
   Section 18.2, en utilisant les valeurs definies dans la Table 1 de la
   Section 7.6.  L'algorithme pour RAND est commun a toutes les
   transmissions de messages.

   A chaque transmission ou retransmission de message, le client definit
   RT selon les regles donnees ci-dessous.  Si RT expire avant la fin de
   l'echange de messages, le client recalcule RT et retransmet le message.

   Chacun des calculs d'un nouveau RT inclut un facteur de randomisation
   (RAND), qui est un nombre aleatoire choisi selon une distribution
   uniforme entre -0.1 et +0.1.  Le facteur de randomisation est inclus
   pour minimiser la synchronisation des messages transmis par les clients
   DHCP.

   L'algorithme de choix d'un nombre aleatoire n'a pas besoin d'etre
   cryptographiquement robuste.  L'algorithme SHOULD produire une
   sequence differente de nombres aleatoires a chaque invocation du
   client DHCP.

   Le RT pour la premiere transmission de message est fonde sur IRT:

      RT = IRT + RAND*IRT

   Le RT de chaque transmission de message suivante est fonde sur la
   valeur precedente de RT:

      RT = 2*RTprev + RAND*RTprev

   MRT specifie une borne superieure pour la valeur de RT (sans tenir
   compte de la randomisation ajoutee par l'utilisation de RAND).  Si MRT
   vaut 0, il n'existe pas de limite superieure pour la valeur de RT.
   Sinon:

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

   MRC specifie une borne superieure au nombre de fois ou un client peut
   retransmettre un message.  Sauf si MRC vaut zero, l'echange de
   messages echoue des que le client a transmis le message MRC fois.

   MRD specifie une borne superieure a la duree pendant laquelle un
   client peut retransmettre un message.  Sauf si MRD vaut zero, l'echange
   de messages echoue des que MRD secondes se sont ecoulees depuis la
   premiere transmission du message par le client.

   Si MRC et MRD sont tous deux non nuls, l'echange de messages echoue
   des que l'une des conditions specifiees dans les deux paragraphes
   precedents est remplie.

   Si MRC et MRD valent tous deux zero, le client continue de transmettre
   le message jusqu'a ce qu'il recoive une reponse.

   Il n'est pas attendu qu'un client ecoute une reponse pendant toute la
   periode RT, et il peut desactiver ses capacites d'ecoute apres avoir
   attendu au moins la plus courte des durees entre RT et MAX_WAIT_TIME,
   pour economiser l'energie ou pour d'autres raisons.  Bien entendu, un
   client MUST ecouter les messages Reconfigure s'il en a negocie
   l'utilisation avec le serveur.