La suppression des duplications

Afin de réduire les réponses redondantes sur le réseau et donc de réduire le trafic engendré par celles-ci, il est nécessaire de mettre en place des techniques dites de "duplication suppression", soit en français, suppression des duplications.

Il existe plusieurs mécanismes de suppression que nous allons voir ici :

  • "suppression de réponses connues" : quand un client mDNS envoie une requête dont il connaît plusieurs réponses, il les place dans la partie "Answer Section" du message DNS. Ainsi, si un répondeur mDNS a la réponse à la question, il peut regarder si sa réponse est déjà connue par le demandeur et n'a donc pas besoin de l'envoyer.

  • "paquets multiples de réponses connues" : le principe est le même que précédemment. La seule différence est que le client peut parfois connaître un nombre important de réponses à sa question et ne peut pas les placer dans un seul message DNS. Il doit donc envoyer plusieurs paquets en mettant le bit TC à 1.

  • "suppression de questions dupliquées" : en utilisant le principe du multicast, les différents clients voient les différentes questions envoyées sur le lien local. Ainsi, s'ils repèrent une de leur question, ils n'ont pas besoin de l'envoyer une nouvelle fois puisqu'ils recevront la réponse via le multicast.

  • "suppression de réponses dupliquées" : même principe que pour la suppression de questions dupliquées mais appliqué pour les réponses.

La résolution de conflits

Un conflit apparaît lorsqu'un répondeur mDNS ayant un enregistrement unique dont il a autorité reçoit un paquet réponse mDNS contenant un enregistrement avec le même nom (name), le même type (rrtype) et la même classe (rrclass) mais des données (rdata) différentes. Dans ce cas, le demandeur mDNS doit immédiatement reseter son enregistrement unique en conflit dans un état d'exploration, et relancer les étapes de démarrage.

Il est vraiment important que chaque hôte recevant un enregistrement faisant conflit avec l'un de ses enregistrements mette en place une action corrective.




© Alexandre Cusin-Panit et Nicolas Duthilleul