Passa al contenuto principale

3.1.2. Skippable Frames (Frame saltabili)

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

Tabella 19: Frame saltabili

I frame saltabili consentono di inserire metadati definiti dall'utente in un flusso di frame concatenati.

I frame saltabili definiti in questa specifica sono compatibili con i frame saltabili in [LZ4].

Dal punto di vista di un decodificatore compatibile, i frame saltabili devono semplicemente essere saltati, il loro contenuto ignorato, e la decodifica riprende dopo il frame saltabile.

Va notato che i frame saltabili possono essere utilizzati per aggiungere filigrane ai flussi di frame concatenati, incorporare qualsiasi tipo di informazione di tracciamento (anche solo un identificatore univoco universale (UUID)). Gli utenti vigili su tali possibilità dovrebbero scansionare i flussi di frame concatenati per tentare di rilevare tali frame per analisi o rimozione.

Descrizioni dei campi

Magic_Number (Numero magico)

Dimensione: 4 byte, formato little-endian
Valore: 0x184D2A5?, che significa qualsiasi valore da 0x184D2A50 a 0x184D2A5F

Tutti i 16 valori identificano validamente i frame saltabili. Questa specifica non dettaglia alcun metodo di marcatura specifico per i frame saltabili.

Intervallo del numero magico:

  • Valore minimo: 0x184D2A50
  • Valore massimo: 0x184D2A5F
  • Totale: 16 numeri magici validi

Frame_Size (Dimensione frame)

Dimensione: 4 byte, formato little-endian, 32 bit senza segno
Significato: La dimensione dei User_Data successivi in byte (non include il numero magico e il campo dimensione stesso)

Ciò significa che User_Data non può essere maggiore di (2^32 - 1) byte.

Dimensione massima User_Data: 4.294.967.295 byte (circa 4 GB)

User_Data (Dati utente)

Dimensione: Variabile (specificata da Frame_Size)
Contenuto: Dati arbitrari

Questo campo può contenere qualsiasi cosa. I dati verranno saltati dal decodificatore.

Scenari di utilizzo

1. Incorporazione di metadati

  • Informazioni sulla versione
  • Timestamp di creazione
  • Informazioni sull'autore
  • Dati di licenza

2. Filigrana e tracciamento

  • Incorporazione UUID
  • Tracciamento della fonte
  • Identificazione del canale di distribuzione

3. Dati specifici dell'applicazione

  • Intestazioni personalizzate
  • Configurazione dell'applicazione
  • Informazioni estese

Note di compatibilità

Comportamento del decodificatore

Un decodificatore conforme alla specifica deve:

  1. Riconoscere il numero magico: Rilevare numeri magici nell'intervallo 0x184D2A5?
  2. Leggere la dimensione: Analizzare il campo Frame_Size
  3. Saltare i dati: Saltare Frame_Size byte di User_Data
  4. Continuare la decodifica: Continuare l'elaborazione dopo il frame saltabile

Raccomandazioni per il codificatore

I codificatori possono:

  1. Posizionamento arbitrario: Inserire frame saltabili in qualsiasi posizione nel flusso di frame
  2. Frame multipli: Inserire più frame saltabili
  3. Marcatura personalizzata: Utilizzare uno qualsiasi dei 16 numeri magici per la marcatura interna

Considerazioni sulla sicurezza

Problemi di privacy

I frame saltabili possono essere utilizzati per:

  • Tracciare il flusso di dati
  • Incorporare informazioni nascoste
  • Identificare la fonte dei dati

Misure raccomandate

Per gli utenti attenti alla privacy:

  1. Rilevamento tramite scansione: Scansionare il flusso di input per rilevare frame saltabili
  2. Analisi del contenuto: Esaminare il contenuto di User_Data
  3. Rimozione selettiva: Rimuovere i frame saltabili secondo necessità
  4. Registrazione: Registrare i frame saltabili rilevati per audit

Esempi

Incorporare UUID

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

Incorporare timestamp

Magic_Number: 0x184D2A51
Frame_Size: 8
User_Data: [Timestamp Unix di 8 byte]

Compatibilità con LZ4

Il formato dei frame saltabili è compatibile con LZ4, consentendo:

  • Interoperabilità degli strumenti tra formati
  • Gestione uniforme dei metadati
  • Implementazione semplificata del decodificatore

Nota: I frame saltabili non influenzano il contenuto dei dati decompressi, solo i metadati del flusso.