6. Considérations de Mise en Œuvre (Implementation Considerations)
Cette section est non normative et se compose uniquement de divers éléments qui peuvent être utiles pour les implémenteurs. Un résolveur récursif peut implémenter son cache de nombreuses manières. La plus évidente est une structure de données arborescente, car elle correspond au modèle de données des noms de domaine. Mais, en pratique, d'autres implémentations sont possibles, ainsi que diverses optimisations (comme un arbre, augmenté d'un index de certains noms de domaine courants).
This section is non-normative and is composed only of various things that may be useful for implementors. A recursive resolver may implement its cache in many ways. The most obvious one is a tree data structure, because it fits the data model of domain names. But, in practice, other implementations are possible, as well as various optimizations (such as a tree, augmented by an index of some common domain names).
Si un résolveur implémente son cache sous forme d'arbre (sans aucune optimisation), une façon de suivre les règles de la Section 2 est la suivante : lors de la réception du NXDOMAIN, élaguer le sous-arbre des entrées de cache positives à ce nœud ou supprimer toutes les entrées de cache individuelles pour les noms situés en dessous de ce nœud. Ensuite, lors de la recherche vers le bas dans son cache, ce résolveur DNS à cache itératif arrêtera la recherche s'il rencontre une non-existence mise en cache.
If a resolver implements its cache as a tree (without any optimization), one way to follow the rules in Section 2 is as follows: when receiving the NXDOMAIN, prune the subtree of positive cache entries at that node or delete all individual cache entries for names below that node. Then, when searching downward in its cache, this iterative caching DNS resolver will stop searching if it encounters a cached nonexistence.
Certains résolveurs peuvent avoir un cache qui n'est PAS organisé comme un arbre (mais, par exemple, comme un dictionnaire) ; par conséquent, ils ont une raison d'ignorer les règles de la Section 2. Ces règles utilisent donc DEVRAIENT (SHOULD) et non DOIVENT (MUST).
Some resolvers may have a cache that is NOT organized as a tree (but, for instance, as a dictionary); therefore, they have a reason to ignore the rules of Section 2. So these rules use SHOULD and not MUST.