5. Auswahl des Transportprotokolls (Transport Protocol Selection)
Abschnitt 6.1.3.2 von [RFC1123] wird aktualisiert: Alle Allzweck-DNS-Implementierungen MÜSSEN (MUST) sowohl UDP- als auch TCP-Transport unterstützen.
-
Autoritative Serverimplementierungen MÜSSEN (MUST) TCP unterstützen, damit sie die Größe von Antworten nicht auf das beschränken, was in ein einzelnes UDP-Paket passt.
-
Rekursive Server- (oder Forwarder-) Implementierungen MÜSSEN (MUST) TCP unterstützen, damit sie nicht verhindern, dass große Antworten von einem TCP-fähigen Server seine TCP-fähigen Clients erreichen.
-
Stub-Resolver-Implementierungen (z. B. die DNS-Auflösungsbibliothek eines Betriebssystems) MÜSSEN (MUST) TCP unterstützen, da andernfalls die Interoperabilität zwischen ihren eigenen Clients und den Upstream-Servern eingeschränkt würde.
In Bezug auf die Wahl, wann UDP oder TCP verwendet werden soll, sagt Abschnitt 6.1.3.2 von RFC 1123 auch:
... ein DNS-Resolver oder Server, der eine Nicht-Zonentransfer-Abfrage sendet, MUSS (MUST) zuerst eine UDP-Abfrage senden.
Diese Anforderung wird hiermit gelockert. Stub-Resolver und rekursive Resolver KÖNNEN (MAY) abhängig von lokalen betrieblichen Gründen wählen, ob sie TCP- oder UDP-Abfragen senden. TCP KANN (MAY) verwendet werden, bevor UDP-Abfragen gesendet werden. Wenn der Resolver bereits eine offene TCP-Verbindung zum Server hat, SOLLTE (SHOULD) er diese Verbindung wiederverwenden. Im Wesentlichen sollte TCP als eine gültige Transportalternative zu UDP betrachtet werden, nicht nur als eine Wiederholungsoption.
Darüber hinaus wird darauf hingewiesen, dass alle rekursiven und autoritativen Server Antworten unter Verwendung desselben Transports senden MÜSSEN (MUST), auf dem die Abfrage eingetroffen ist. Im Falle von TCP MUSS (MUST) dies auch dieselbe Verbindung sein.