Je viens de rentrer de mon examen de programmation réseau et l'une des questions qu'ils nous ont posées était "Si vous voulez diffuser de la vidéo, utiliseriez-vous TCP ou UDP? Expliquez à la fois la vidéo stockée et les flux vidéo en direct" . À cette question, ils s'attendaient simplement à une réponse courte de TCP pour la vidéo stockée et UDP pour la vidéo en direct, mais j'y ai pensé en rentrant chez moi, et est-il nécessairement préférable d'utiliser UDP pour diffuser de la vidéo en direct? Je veux dire, si vous avez la bande passante pour cela, et que vous dites que vous diffusez un match de football, ou un concert d'ailleurs, avez-vous vraiment besoin d'utiliser UDP?
Disons que pendant que vous diffusez ce concert ou quoi que ce soit en utilisant TCP, vous commencez à perdre des paquets (quelque chose de mauvais s'est produit dans un réseau entre vous et l'expéditeur), et pendant une minute entière, vous ne recevez aucun paquet. Le flux vidéo se mettra en pause et une fois la minute écoulée, les paquets recommenceront à passer (IP a trouvé une nouvelle route pour vous). Ce qui se passerait alors, c'est que TCP retransmettrait la minute perdue et continuerait à vous envoyer le flux en direct. En supposant que la bande passante est plus élevée que le débit binaire sur le flux, et le ping n'est pas trop élevé, donc dans un court laps de temps, la minute que vous avez perdue servira de tampon pour le flux pour vous, de cette façon , si la perte de paquets se reproduit, vous ne le remarquerez pas.
Maintenant, je peux penser à certains appareils où ce ne serait pas une bonne idée, comme par exemple les vidéoconférences, où vous devez toujours être à la fin du flux, car le retard lors d'un chat vidéo est tout simplement horrible, mais pendant un match de football ou un concert, qu'importe si vous êtes à une minute derrière le flux? De plus, vous avez la garantie d'obtenir toutes les données et il serait préférable de les enregistrer pour une visualisation ultérieure lorsqu'elles arrivent sans aucune erreur.
Cela m'amène donc à ma question. Y a-t-il des inconvénients que je ne connais pas à propos de l'utilisation de TCP pour la diffusion en direct? Ou devrait-il vraiment être, que si vous avez la bande passante pour cela, vous devriez opter pour TCP étant donné qu'il est "plus agréable" pour le réseau (contrôle de flux)?