Recherche · Encodage pour réseaux contraints

EXI et gzip sur les messages courts : pourquoi la compression généraliste échoue sur le trafic tactique

Sur nos messages d’essai, gzip a ramené 328 octets à 202. L’Efficient XML Interchange (EXI) guidé par le schéma les a ramenés à 19. La différence tient à ce que chaque méthode sait avant de voir le message.

Le problème

Le langage de balisage extensible (XML) se répète. Chaque valeur est placée dans un élément nommé, et les noms voyagent avec elle. C’est un prix acceptable sur une fibre optique, et un prix lourd en radio haute fréquence (HF), où chaque octet coûte du temps d’antenne. Le MTF-XML donne aux partenaires de coalition un format commun et vérifiable. Le faire passer sur une liaison étroite est un autre problème.

Pourquoi gzip peine sur les messages courts

gzip repère les chaînes qui se répètent dans les données qu’il compresse et dépense moins de bits pour les symboles les plus fréquents. Un message court lui laisse peu de matière. Chaque nom d’élément n’apparaît que quelques fois, et la première occurrence de chaque chose se paie plein tarif. De plus, un fichier gzip comporte un en-tête et une fin de taille fixe, qui pèsent lourd sur un message aussi court. Dans notre évaluation, gzip a ramené la taille moyenne de 328 à 202 octets.

Ce que fait l’EXI autrement

L’EXI est une norme du W3C qui lit le XML comme un flux d’événements (un élément commence, une valeur apparaît, un élément se termine) et encode chaque événement par un code court tiré d’une grammaire. Les valeurs sont stockées selon leur type réel : un nombre est un nombre, et non une suite de caractères.

Sans schéma, la grammaire s’apprend au fil de la lecture du document, et le résultat est modeste. Avec un schéma, en mode guidé par le schéma, la grammaire est construite d’avance à partir du schéma que détiennent l’émetteur et le récepteur. Si le schéma dit qu’une référence de quadrillage suit toujours un indicatif, le code qui signifie « l’élément suivant est la référence de quadrillage » tient en quelques bits, et le nom de l’élément n’est jamais envoyé. Le récepteur le reconstruit à partir du schéma commun.

Taille moyenne d’un message lors de l’évaluation en laboratoire
EncodageOctets
XML texte brut328
gzip202
EXI sans le schéma190
EXI guidé par le schéma19
Moyennes sur le jeu de test décrit sur la page des résultats. Chaque message varie. Chaque message EXI a été décodé sans perte.

L’essentiel du gain vient donc du schéma et non de l’EXI seul : l’EXI sans schéma, à 190 octets, se rapproche de gzip. La page DDIL traite de ce que la taille change sur une liaison étroite.

Points d’attention

  • Les deux extrémités doivent détenir la même version du schéma. Sans lui, le message encodé n’a aucun sens. Un écart de version est un risque opérationnel, et il faut un processus de distribution et de confirmation des schémas, pas seulement du code.
  • Le texte libre se compresse mal. Les noms d’éléments et les valeurs typées rétrécissent beaucoup. Les remarques en langage courant, non. Un message comportant un long champ de texte libre affichera un gain moindre que les nôtres.
  • L’EXI n’est pas du chiffrement. Le schéma n’est pas secret : quiconque le détient peut décoder le message. Il faut protéger la liaison séparément.

Limites de cette mesure

Les schémas sont des substituts pour trois types de messages fondés sur des formats publics, et non des définitions de l’APP-11, et les messages sont synthétiques. La surcharge du modem n’est pas comptée. Nous n’avons encore rien envoyé sur une liaison radio. Attendez-vous à ce que le rapport change sur de vrais schémas.

Sources

Le format est spécifié dans la recommandation EXI du W3C, avec une introduction lisible dans l’EXI Primer. Nous avons utilisé EXIficient, une mise en œuvre libre, compilée à partir des sources à des versions fixes.

Dernière révision 29 septembre 2026