Aller au contenu principal

3.1.2. Skippable Frames (Trames sautables)

+==============+============+===========+
|| Magic_Number | Frame_Size | User_Data |
+==============+============+===========+
|| 4 bytes | 4 bytes | n bytes |
+--------------+------------+-----------+

Tableau 19: Trames sautables

Les trames sautables permettent d'insérer des métadonnées définies par l'utilisateur dans un flux de trames concaténées.

Les trames sautables définies dans cette spécification sont compatibles avec les trames sautables dans [LZ4].

Du point de vue d'un décodeur compatible, les trames sautables doivent simplement être sautées, leur contenu ignoré, et le décodage reprend après la trame sautable.

Il convient de noter que les trames sautables peuvent être utilisées pour ajouter un filigrane aux flux de trames concaténés, incorporer tout type d'informations de suivi (même juste un identifiant unique universel (UUID)). Les utilisateurs vigilants à l'égard de telles possibilités devraient scanner les flux de trames concaténés pour tenter de détecter de telles trames pour analyse ou suppression.

Descriptions des champs

Magic_Number (Nombre magique)

Taille: 4 octets, format little-endian
Valeur: 0x184D2A5?, signifiant toute valeur de 0x184D2A50 à 0x184D2A5F

Toutes les 16 valeurs identifient valablement les trames sautables. Cette spécification ne détaille aucune méthode de marquage spécifique pour les trames sautables.

Plage du nombre magique:

  • Valeur minimale: 0x184D2A50
  • Valeur maximale: 0x184D2A5F
  • Total: 16 nombres magiques valides

Frame_Size (Taille de la trame)

Taille: 4 octets, format little-endian, 32 bits non signés
Signification: La taille des User_Data suivantes en octets (n'incluant pas le nombre magique et le champ de taille lui-même)

Cela signifie que User_Data ne peut pas être supérieur à (2^32 - 1) octets.

Taille maximale de User_Data: 4.294.967.295 octets (environ 4 Go)

User_Data (Données utilisateur)

Taille: Variable (spécifiée par Frame_Size)
Contenu: Données arbitraires

Ce champ peut contenir n'importe quoi. Les données seront ignorées par le décodeur.

Scénarios d'utilisation

1. Incorporation de métadonnées

  • Informations de version
  • Horodatages de création
  • Informations sur l'auteur
  • Données de licence

2. Filigrane et suivi

  • Incorporation UUID
  • Suivi de source
  • Identification du canal de distribution

3. Données spécifiques à l'application

  • En-têtes personnalisés
  • Configuration de l'application
  • Informations étendues

Notes de compatibilité

Comportement du décodeur

Un décodeur conforme à la spécification doit:

  1. Reconnaître le nombre magique: Détecter les nombres magiques dans la plage 0x184D2A5?
  2. Lire la taille: Analyser le champ Frame_Size
  3. Sauter les données: Sauter Frame_Size octets de User_Data
  4. Continuer le décodage: Continuer le traitement après la trame sautable

Recommandations pour l'encodeur

Les encodeurs peuvent:

  1. Placement arbitraire: Insérer des trames sautables à n'importe quelle position dans le flux de trames
  2. Plusieurs trames: Insérer plusieurs trames sautables
  3. Marquage personnalisé: Utiliser l'un des 16 nombres magiques pour le marquage interne

Considérations de sécurité

Problèmes de confidentialité

Les trames sautables peuvent être utilisées pour:

  • Suivre le flux de données
  • Incorporer des informations cachées
  • Identifier la source des données

Mesures recommandées

Pour les utilisateurs soucieux de la confidentialité:

  1. Détection par scan: Scanner le flux d'entrée pour détecter les trames sautables
  2. Analyse du contenu: Examiner le contenu de User_Data
  3. Suppression sélective: Supprimer les trames sautables selon les besoins
  4. Journalisation: Enregistrer les trames sautables détectées pour audit

Exemples

Incorporation d'UUID

Magic_Number: 0x184D2A50
Frame_Size: 16 (0x10000000, little-endian)
User_Data: [UUID de 16 octets]

Incorporation d'horodatage

Magic_Number: 0x184D2A51
Frame_Size: 8
User_Data: [Horodatage Unix de 8 octets]

Compatibilité avec LZ4

Le format des trames sautables est compatible avec LZ4, permettant:

  • Interopérabilité des outils entre formats
  • Traitement unifié des métadonnées
  • Implémentation simplifiée du décodeur

Note: Les trames sautables n'affectent pas le contenu des données décompressées, seulement les métadonnées du flux.