Я только что вернулся с экзамена по сетевому программированию, и один из вопросов, которые нам задали, был «Если вы собираетесь передавать потоковое видео, будете ли вы использовать TCP или UDP? Дайте объяснение обоим сохраненным видео». и живые видео-потоки ". На этот вопрос они просто ожидали краткого ответа TCP для сохраненного видео и UDP для живого видео, но я думал об этом по пути домой, и обязательно ли лучше использовать UDP для потокового видео в реальном времени? Я имею в виду, если у вас есть пропускная способность для этого и говорят, что вы транслируете футбольный матч или концерт в этом отношении, вам действительно нужно использовать UDP?
Допустим, что во время потоковой передачи этого концерта или чего-либо еще с использованием TCP вы начинаете терять пакеты (что-то плохое произошло в какой-то сети между вами и отправителем), и в течение целой минуты вы не получаете никаких пакетов. Видеопоток приостановится, и через минуту пакеты снова начнут проходить (IP нашел для вас новый маршрут). Затем произойдет то, что TCP будет ретранслировать потерянную минуту и продолжать отправлять вам прямой эфир. Предполагается, что полоса пропускания выше, чем скорость потока в потоке, и пинг не слишком высок, поэтому в течение короткого промежутка времени потерянная минута станет для вас буфером для потока. , если потеря пакета произойдет снова, вы не заметите.
Теперь я могу подумать о некоторых устройствах, для которых это было бы не очень хорошей идеей, например, о видеоконференциях, где вам нужно , чтобы всегда быть в конце потока, потому что задержка во время видео-чат просто ужасен, но во время футбольного матча или концерта какое это имеет значение, если вы находитесь в минуте от потока? Кроме того, вам гарантировано, что вы получите все данные, и было бы лучше сохранить их для последующего просмотра, когда они поступят без ошибок.
Так что это подводит меня к моему вопросу. Есть ли какие-либо недостатки, которые я не знаю об использовании TCP для прямой трансляции? Или это действительно так, что если у вас есть пропускная способность для этого, вы должны пойти на TCP, учитывая, что это «лучше» для сети (управление потоком)?