Skip to content

Come fanno i carrier mobili a conoscere la risoluzione video sulle connessioni HTTPS?

Sentiti libero di condividere il nostro spazio e i nostri codici con gli altri, abbiamo bisogno del tuo aiuto per far crescere questa community.

Soluzione:

Si tratta di un'area di ricerca attiva. Mi è capitato di lavorare in quest'area, quindi condividerò quello che posso sull'idea di base (questo lavoro è stato svolto con partner industriali e non posso condividere i dettagli segreti 🙂 ).

Il succo è che spesso è possibile identificare un flusso di traffico criptato come se trasportasse video e spesso è possibile stimare la sua risoluzione, ma è complicato e non sempre accurato. Ci sono molte persone che stanno lavorando a modi per farlo in modo più coerente e accurato.

Il traffico video ha alcune caratteristiche specifiche che lo distinguono da altri tipi di traffico. In questo caso mi riferisco specificamente ai video on demand, non ai video in live streaming. I video su richiesta non hanno spesso i tag di priorità menzionati in questa risposta. Inoltre, mi riferisco specificamente al video adattivo, ovvero il video è diviso in segmenti (ciascuno della durata di circa 2-10 secondi) e ogni segmento di video è codificato a più livelli di qualità (per livello di qualità si intende: bitrate video a lungo termine, codec e risoluzione). Durante la riproduzione del video, il livello di qualità con cui viene scaricato il segmento successivo dipende dalla velocità di trasmissione dei dati che l'applicazione ritiene che la rete possa supportare. (Questo è il protocollo DASH a cui si fa riferimento in questa risposta).

Se il telefono sta riproducendo un video e si osserva la velocità di trasmissione dei dati (media mobile ponderata) del traffico verso il telefono nel corso del tempo, l'aspetto potrebbe essere simile a questo:

Tasso di dati nel tempo

(questo è stato catturato da una sessione di YouTube su Verizon. C'è la media mobile su 15 secondi e anche la media a breve termine).

Ci sono alcune parti diverse di questa sessione:

In primo luogo, l'applicazione video (lettore YouTube) cerca di riempire il buffer fino alla sua capacità. Durante questo periodo, l'applicazione preleva i dati alla velocità che la rete è in grado di supportare. In questa fase, è praticamente indistinguibile da un download di file di grandi dimensioni, a meno che non si possa dedurre che si tratta di traffico video dall'indirizzo remoto (come indicato in questa risposta).

Una volta che il buffer è pieno, si ottengono "raffiche" a intervalli più o meno regolari. Supponiamo che il buffer possa contenere 200 secondi di video. Quando il buffer contiene 200 secondi di video, l'applicazione interrompe il download. Poi, dopo la riproduzione di un segmento di video (ad esempio 5 secondi), c'è di nuovo spazio nel buffer, quindi scarica il segmento successivo e si ferma di nuovo. Questo è ciò che causa lo schema a raffica.

Questo schema è molto caratteristico del video - il traffico di altre applicazioni non presenta questo schema - quindi un fornitore di servizi di rete può individuare abbastanza facilmente i flussi che trasportano traffico video. In alcuni casi, questo schema potrebbe non essere mai osservato, ad esempio se il video è così breve che il l'intera cosa viene caricato nel buffer in una sola volta e poi il client interrompe il download. In queste circostanze, è molto difficile distinguere il traffico video da un download di file (a meno che non si riesca a capire l'indirizzo remoto).

In ogni caso, una volta identificato il flusso come traffico video, sia in base all'indirizzo remoto (non sempre possibile, dato che i principali fornitori di video utilizzano reti di distribuzione dei contenuti che non sono esclusive per i video) sia in base al suo schema di traffico (possibile se la sessione video è lunga, molto più difficile se è così breve che l'intero video viene caricato nel buffer tutto in una volta).

Ora, come ha detto Hector, si può cercare di indovinare la risoluzione dal bitrate osservando la dimensione (in byte) di ogni "burst" di dati:

Dalla dimensione per durata si può fare una stima ragionevole della risoluzione, soprattutto se si tiene una media mobile.

Ma questo può essere difficile. Prendiamo la sessione di YouTube del mio esempio:

  • Non tutti i segmenti hanno la stessa durata: la durata del video richiesto alla volta dipende da diversi fattori (il livello di qualità, lo stato della rete, il tipo di dispositivo su cui viene riprodotto il video e altri). Pertanto, non è possibile esaminare un "burst" e dire: "Ok, questi sono X byte che rappresentano 5 secondi di video, quindi conosco la velocità di trasmissione dei dati video". A volte è possibile capire la probabile durata del segmento, ma altre volte è difficile.
  • Per un dato livello di qualità video e una data durata del segmento, segmenti diversi avranno dimensioni diverse (a seconda di fattori quali la quantità di movimento in quella parte del video).
  • Anche a parità di risoluzione video, la velocità di trasmissione dei dati a lungo termine può variare: un video a 1080p codificato con VP9 non avrà la stessa velocità di trasmissione dei dati a lungo termine di un video codificato con H.264.
  • Il livello di qualità video cambia in base alla qualità percepita della rete (visibile al fornitore di servizi di rete) e allo stato del buffer (che non lo è). Pertanto, è possibile osservare la velocità dei dati a lungo termine per 30 secondi, ma è possibile che il livello di qualità video effettivo sia cambiato più volte nel corso di quei 30 secondi.
  • Durante i periodi in cui il buffer si svuota o si riempie il più velocemente possibile (quando non si hanno questi "burst"), è molto più difficile valutare cosa sta succedendo nel video.
  • Per complicare ulteriormente le cose: a volte un flusso video viene "spogliato" attraverso più flussi di livello inferiore. A volte una parte del video viene recuperata da un indirizzo e poi passa a recuperare il video da un altro indirizzo.

Il grafico della velocità dei dati che vi ho mostrato poco sopra? Ecco qual è stata la risoluzione del video in quell'intervallo di tempo:

risoluzione video

Qui il colore indica la risoluzione video. Quindi.è possibile più o meno stimare cosa sta succedendo solo dai modelli di traffico. Ma è un problema difficile! Ci sono altri indicatori nel traffico che si possono osservare. Non posso dire con certezza come un fornitore di servizi lo stia facendo. Ma almeno per quanto riguarda lo stato dell'arte accademico, non c'è modo di farlo con perfetta precisione, sempre (a meno che non si abbia la collaborazione dei fornitori di video.).

Se siete interessati a saperne di più sulle tecniche utilizzate per questo tipo di problema, c'è molta letteratura accademica in giro - vedete per esempio BUFFEST: Predicting Buffer Conditions and Real-time Requirements of HTTP(S) Adaptive Streaming Clients come punto di partenza. (Non è un mio articolo, ma solo uno che ho letto di recente).

Nulla esaurisce la larghezza di banda a un ritmo costante se non lo streaming video.

Inoltre, per assicurarsi che il flusso sia gestito con priorità (e non come un download di un file di grandi dimensioni, per esempio) le fonti di streaming etichettano i pacchetti in modo da indicare ai vettori che si tratta di video in streaming. Il resto del pacchetto è criptato, ma i metadati che indicano all'ISP come instradarlo possono vedere questa parte. Se non lo facessero, ci sarebbe un'alta probabilità che lo streaming venga interrotto o degradato perché l'ISP cerca di bilanciare tutte le esigenze del traffico di rete in quel momento.

Ecco come Verizon ha dichiarato che lo farà:

A quanto pare Verizon non convertirà i video a risoluzioni più basse
risoluzione inferiore. Invece, fisserà un limite di larghezza di banda che le applicazioni video
dovranno adeguarsi. "Gestiamo il throughput dei video HD impostando
velocità a non più di 10Mbps
che fornisce video HD fino a 1080p
video", ha dichiarato Verizon ad Ars. I Mbps saranno presumibilmente più bassi
nei casi in cui Verizon limiti i video a 480p o 720p.

Ciò significa che sia l'abbonato che il fatto che il traffico sia modellato un certo modo perché si tratta di un certo tipo di video, significa che è etichettato.

Come? Verizon ha un sistema di ottimizzazione dei video che ha dimostrato di limitare Netflix e YouTube a 10 Mbps anche prima dell'annuncio dei nuovi limiti di agosto 2017.

Verizon ha ammesso di aver utilizzato un nuovo sistema di ottimizzazione video ma ha detto che
fa parte di un test temporaneo e che non ha influenzato l'effettiva
qualità del video. L'ottimizzazione video sembra essere applicata sia ai
piani mobili illimitati e limitati.

Ma alcuni utenti di YouTube segnalano video degradati, affermando che l'uso di
un servizio VPN per aggirare il blocco di Verizon.

Ciò indica la capacità di Verizon di identificare i flussi video e di limitare la larghezza di banda di conseguenza, anche se il contenuto viene fornito tramite HTTPS (ma non VPN).

Schroeder ha quasi certamente ragione, in quanto si tratta solo di un modo di marketing per dire che limitano la larghezza di banda a determinati indirizzi IP di siti o cercano marcatori di priorità sui pacchetti.

Vale la pena notare, tuttavia, che teoricamente ci sono modi per far funzionare meglio questo sistema se l'unico scopo è quello di costringere gli utenti a una certa risoluzione durante lo streaming video e nient'altro.

Gran parte dello streaming su Internet utilizza oggi un processo chiamato DASH (Dynamic Adaptive Streaming over HTTP). Il modo in cui funziona è quello di richiedere una piccola porzione di video, misurare la larghezza di banda durante il download e selezionare la porzione di video successiva a una risoluzione/schema di compressione che consenta di riceverla in tempo per la fine della riproduzione della prima porzione.

Ciò significa che le richieste contengono indizi su ciò che l'utente sta facendo. Se il dispositivo invia una richiesta a un sito web ogni 3 secondi, richiedendo un file che impiega poco meno di 3 secondi per essere scaricato, è molto probabile che il sito sia un video in streaming. Dalle dimensioni per durata si può fare una stima ragionevole della risoluzione, soprattutto se si tiene una media mobile. È quindi possibile limitare la larghezza di banda a quell'indirizzo IP.

Utilizzando indirizzi IP noti per i principali fornitori di video (googlevideo (youtube), Netflix ecc.) nella ponderazione delle decisioni si potrebbe rendere l'algoritmo più aggressivo senza troppi falsi positivi.

Se hai qualche sfiducia o capacità di migliorare la nostra affermazione, ti invitiamo a scrivere una recensione e saremo lieti di dargli un'occhiata.



Utilizzate il nostro motore di ricerca

Ricerca
Generic filters

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.