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:
- Reconnaître le nombre magique: Détecter les nombres magiques dans la plage 0x184D2A5?
- Lire la taille: Analyser le champ Frame_Size
- Sauter les données: Sauter Frame_Size octets de User_Data
- Continuer le décodage: Continuer le traitement après la trame sautable
Recommandations pour l'encodeur
Les encodeurs peuvent:
- Placement arbitraire: Insérer des trames sautables à n'importe quelle position dans le flux de trames
- Plusieurs trames: Insérer plusieurs trames sautables
- 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é:
- Détection par scan: Scanner le flux d'entrée pour détecter les trames sautables
- Analyse du contenu: Examiner le contenu de User_Data
- Suppression sélective: Supprimer les trames sautables selon les besoins
- 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.