Perché Netflix usa TCP e non UDP per il suo streaming video?
Non lavoro per Netflix né conosco molti dettagli sull'architettura del loro servizio di streaming. La mia risposta si basa sul fatto che sono abbonato da molto tempo.
Netflix è un servizio VoD, cioè, ogni consumatore sceglie un video e lo trasmette al proprio ritmo, lo mette in pausa e continua in momenti casuali. Ogni utente lo fa in modo indipendente. Quindi non c'è bisogno di usare UDP, che è molto più adatto a trasmettere simultaneamente un singolo flusso video a più utenti.
Con TCP, è molto più difficile spiare un flusso intercettandone una copia perché il client deve inviare i giusti riconoscimenti per ogni segmento ricevuto. Poiché è orientato alla connessione, Netflix può fare meglio l'autenticazione e la convalida dei clienti.
Netflix usa una certa crittografia per prevenire il furto di video. È più facile farlo per il flusso TCP a causa della ricezione garantita dei segmenti, e nell'ordine corretto. Con UDP, sospetto che sia molto più difficile farlo, poiché il set di dati è limitato ad ogni datagramma. Con la connessione TCP, è probabilmente più facile segnalare i cambiamenti della chiave di crittografia a intervalli approssimativamente fissi per garantire una migliore sicurezza.
La ragione più forte per me per usare TCP è che è abbastanza facile monitorare la larghezza di banda tra la fonte e il ricevitore, e adattare la qualità dell'immagine in base a questo, dal momento che possiedono entrambe le applicazioni finali. Netflix non permette a un lettore di terze parti di riprodurre il loro flusso; funziona solo con la loro applicazione proprietaria.
Non riesco a immaginare uno schema che supporti il simulcast usando UDP che possa raggiungere una qualità di riproduzione dinamica per ricevitore.
A un livello di rete più ampio il TCP è migliore per la larghezza di banda variabile che si verifica su Internet perché ha un meccanismo di auto-calcolo, guidato dagli ACK, per adattarsi alla larghezza di banda disponibile. I router moderni implementano tutti l'evitamento della congestione utilizzando l'algoritmo RED/WRED che funziona davvero bene con il TCP per distribuire uniformemente l'onere della larghezza di banda ridotta a causa della congestione tra le migliaia di flussi in corso in modo che un singolo flusso non veda troppo degrado. RED e UDP non funzionano bene, per quanto ne so.
Sono sicuro che c'è molto di più, ma potrebbero essere tutti segreti commerciali della società che è il motivo per cui è stata così dominante.
Chiunque abbia qualche conoscenza interna vuole confermare o confutare, è il benvenuto, e sarà molto apprezzato.
Articoli simili
- Qual è la ragione per cui Youtube usa TCP e non UDP?
- Quale API di streaming video in tempo reale è la migliore per lo sviluppo di streaming video Android (RTMP Streaming)?
- C'è qualche applicazione per telefoni Android che può inviare dati GPS a un server tramite UDP?
- I trucchi internet gratuiti (VPN e UDP) funzionano davvero?