Zum Hauptinhalt springen

6. Überlegungen zur Implementierung (Implementation Considerations)

Dieser Abschnitt ist nicht normativ und besteht nur aus verschiedenen Dingen, die für Implementierer nützlich sein können. Ein rekursiver Resolver kann seinen Cache auf viele Arten implementieren. Die offensichtlichste ist eine Baumdatenstruktur, da sie zum Datenmodell von Domainnamen passt. Aber in der Praxis sind andere Implementierungen möglich, sowie verschiedene Optimierungen (wie ein Baum, ergänzt durch einen Index einiger gängiger Domainnamen).

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).

Wenn ein Resolver seinen Cache als Baum implementiert (ohne Optimierung), ist eine Möglichkeit, die Regeln in Abschnitt 2 zu befolgen, wie folgt: Beim Empfang des NXDOMAIN den Teilbaum der positiven Cache-Einträge an diesem Knoten beschneiden oder alle individuellen Cache-Einträge für Namen unterhalb dieses Knotens löschen. Dann, beim Suchen nach unten in seinem Cache, wird dieser iterative caching DNS-Resolver die Suche stoppen, wenn er auf eine zwischengespeicherte Nichtexistenz stößt.

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.

Einige Resolver haben möglicherweise einen Cache, der NICHT als Baum organisiert ist (sondern zum Beispiel als Wörterbuch); daher haben sie einen Grund, die Regeln von Abschnitt 2 zu ignorieren. Daher verwenden diese Regeln SOLLTE (SHOULD) und nicht MUSS (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.