Je viens de renifler du trafic à l’aide de Wireshark et j’ai remarqué que le trafic de YouTube reposait sur TCP. Je pensais qu'ils utilisaient UDP? Mais il semble qu'ils utiliseraient des flux d'octets HTTP. YouTube utilise-t-il vraiment TCP pour les flux ou manque-t-il quelque chose?
Parce qu'ils ont besoin de tout ce que TCP fournit (démarrage lent, transmission, annulation exponentielle, fenêtres de réception, réorganisation, rejet des doublons, etc.), ils devraient soit utiliser TCP, soit essayer de faire toutes ces choses eux-mêmes. Il n’ya aucun moyen de le faire mieux que la mise en œuvre optimisée de TCP de chaque système d’exploitation.
Évidemment, Google expérimente actuellement avec ses propres implémentations de protocole, telles que QUIC ( Connexion Internet UDP rapide ), comme on peut le voir en examinant la réponse HTTP.
HTTP/1.1 200 OK
...
Content-Type: video/mp4
Alternate-Protocol: 80:quic
...
Cependant, actuellement, ils semblent avoir recours au protocole TCP, tout comme David l’a mentionné précédemment.
De http://www.crazyengineers.com/threads/youtube-use-tcp-or-udp.38419/ :
... bien sûr, la page youtube utilise http [qui est sur TCP]. La vraie chose ne se produit pas Via une page http, mais l’objet flash incorporé à cette page. L’objet flash Qui apparaît sur youtube est Video Flash Player. Le lecteur vidéo Agit comme une iframe (terme techniquement incorrect) pour le contenu Qui serait appelé pour la diffusion en continu via un objet flash. Pour stocker le contenu multimédia , Un serveur multimédia a été installé par youtube et son contenu Est appelé lorsque vous appuyez sur le bouton de lecture.
Pour la diffusion multimédia en continu sur le lecteur flash, le protocole RTSP (Real Time Streaming) Est utilisé. Le bouton de lecture de Flash Player agit comme un invocateur RTSP Pour le média appelé et le média est diffusé en continu via des paquets UDP. En fait, vous n'avez pas besoin de migrer de la page car [. ] L'objet incorporé appelle pour la vidéo, pas la page http, mais comme l'objet est incorporé à la page http une fois que vous le fermez, l'objet est également fermé.