Aller au contenu principal

5. Sélection du Protocole de Transport (Transport Protocol Selection)

La section 6.1.3.2 de la [RFC1123] est mise à jour : Toutes les implémentations DNS à usage général DOIVENT (MUST) prendre en charge les transports UDP et TCP.

  • Les implémentations de serveurs faisant autorité DOIVENT (MUST) prendre en charge TCP afin de ne pas limiter la taille des réponses à ce qui tient dans un seul paquet UDP.

  • Les implémentations de serveurs récursifs (ou forwarders) DOIVENT (MUST) prendre en charge TCP afin de ne pas empêcher les grandes réponses d'un serveur compatible TCP d'atteindre ses clients compatibles TCP.

  • Les implémentations de résolveurs stub (par exemple, la bibliothèque de résolution DNS d'un système d'exploitation) DOIVENT (MUST) prendre en charge TCP car faire autrement limiterait l'interopérabilité entre leurs propres clients et les serveurs en amont.

En ce qui concerne le choix du moment d'utiliser UDP ou TCP, la section 6.1.3.2 de la RFC 1123 stipule également :

... un résolveur DNS ou un serveur qui envoie une requête de non-transfert de zone DOIT (MUST) envoyer une requête UDP en premier.

Cette exigence est par la présente assouplie. Les résolveurs stub et les résolveurs récursifs PEUVENT (MAY) choisir d'envoyer des requêtes TCP ou UDP en fonction de raisons opérationnelles locales. TCP PEUT (MAY) être utilisé avant l'envoi de toute requête UDP. Si le résolveur a déjà une connexion TCP ouverte vers le serveur, il DEVRAIT (SHOULD) réutiliser cette connexion. En substance, TCP devrait être considéré comme une alternative de transport valide à UDP, et pas purement comme une option de réessai.

De plus, il est noté que tous les serveurs récursifs et faisant autorité DOIVENT (MUST) envoyer des réponses en utilisant le même transport que celui sur lequel la requête est arrivée. Dans le cas de TCP, cela DOIT (MUST) également être la même connexion.