Je viens de rentrer de mon examen de programmation réseau, et une des questions qu'ils nous ont posées était "Si vous voulez diffuser de la vidéo en continu, utiliseriez-vous TCP ou UDP ? Donnez une explication pour la vidéo stockée et les flux vidéo en direct". . À cette question, ils attendaient simplement une réponse courte, à savoir TCP pour la vidéo stockée et UDP pour la vidéo en direct, mais j'ai réfléchi à cette question sur le chemin du retour, et je me suis demandé s'il était nécessairement préférable d'utiliser UDP pour le streaming vidéo en direct ? Je veux dire, si vous avez la bande passante nécessaire et que vous diffusez un match de football ou un concert, avez-vous vraiment besoin d'utiliser UDP ?
Imaginons que pendant que vous diffusez ce concert ou autre en utilisant TCP, vous commencez à perdre des paquets (quelque chose de grave 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 s'interrompt, et une fois la minute écoulée, les paquets recommencent à passer (l'IP a trouvé une nouvelle route pour vous). Le TCP retransmet alors la minute que vous avez perdue et continue à vous envoyer le flux en direct. En supposant que la bande passante est supérieure au débit binaire du flux et que le ping n'est pas trop élevé, la minute que vous avez perdue servira de tampon pour le flux, de sorte que 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éo-conférences, où vous besoin de d'être toujours à la fin du flux, car les retards lors d'un chat vidéo sont tout simplement horribles, mais lors d'un match de football ou d'un concert, quelle importance si vous avez une minute de retard sur le flux ? De plus, vous avez la garantie de recevoir toutes les données et il serait préférable de les sauvegarder pour les visionner plus tard lorsqu'elles arrivent sans erreur.
Ce qui m'amène à ma question. Y a-t-il des inconvénients que je ne connais pas à l'utilisation du protocole TCP pour la diffusion en direct ? Ou bien, si vous avez la bande passante nécessaire, vous devriez opter pour le protocole TCP, car il est plus "gentil" pour le réseau (contrôle de flux) ?
0 votes
Vous ne pouvez pas utiliser TCP sans décalage intégré (c'est une chose sur laquelle tout le monde s'accorde) mais vous pouvez utiliser TCP+UDP pour fournir une bonne qualité si la session est enregistrée.
0 votes
Je ne suis pas du tout d'accord avec l'exemple du match de football. Entendre le but être crié à l'extérieur une minute avant que vous puissiez le voir gâche tout. Surtout lorsque des équipes nationales jouent. C'est pourquoi nous cherchons à réduire le délai de transmission sur IP. En effet, notre solution IPTV actuelle est très en retard par rapport à la réception directe par satellite.