Мне нужно какое-то предложение здесь. Как вы думаете, UDP - лучший выбор для отправки файлов с одного компьютера на другой или с одного устройства на другое, например, iphone, android и т.д.
рассматривает
В заголовке вопроса указано "потоковое видео", для которого UDP является подходящим выбором. UDP не гарантирует доставку пакетов, но это не имеет особого значения для потоковой передачи видео.
В теле вашего вопроса, однако, говорится "отправка файлов", что не совсем то же самое, что и потоковая передача. Если вы пытаетесь перенести целые файлы с одного устройства на другое (и важно, чтобы весь файл делал успешную передачу), тогда TCP - это путь.
Это трудно понять.
В заголовке вы говорите о "потоковой передаче", но в теле вы говорите "файлы".
Потоковая передача лучше всего использовать с использованием UDP, поскольку TCP всегда передает данные по порядку: если пакет потерян и должен быть повторно отправлен, приложение не получит никаких данных до тех пор, пока TCP не решит его. Для данных в реальном времени это нежелательно.
Файлы лучше отправляются с использованием TCP.
Начните искать UDP, когда вы хотите отправить нескольким получателям, и стоимость броска нескольких ящиков при проблеме становится чрезмерной.
Итак, оцените ситуацию, стоимость разработки транспорта UDP выше, значительно выше, чем TCP, и в какой-то степени вы повторно изобретаете TCP. Преимущество многоадресной передачи очевидно, но какие преимущества существуют для одноадресной рассылки? На современном оборудовании у вас есть ускорение TCP, что означает, что одноадресная рассылка UDP на самом деле является довольно дорогостоящей альтернативой. Аргументы более низкой задержки предназначены для конкретных приложений, то есть для игр и, что более важно, связаны с отсутствием надежности и низкой скоростью передачи данных.
Примечание. Первоначальные различия в производительности между разработчиками см. между TCP и UDP Nagle и медленный запуск TCP, то есть управление перегрузками, что имеет решающее значение для масштабируемости межсетевых сетей. Оба могут быть отключены для внутренних сетевых приложений.