Мое приложение должно отправлять видеоданные кадр за кадром с сервера на клиент. Я колеблюсь между использованием TCP или UDP.
Из моего теста я узнал следующие результаты:
TCP: Очень легко реализовать.
UDP: Чтобы отправить кадр (около 50 КБ) клиенту, если я создаю 1 пакет UDP для каждого кадра, то отправка всегда теряет кадры. Поэтому я должен разделить каждый кадр на множество пакетов UDP. Это делает мой алгоритм намного более сложным, потому что протокол UDP может терять пакеты, и пакеты могут быть доставлены не по порядку. Кроме того, если длина данных в каждом пакете UDP велика, они легко теряются.
У меня есть несколько вопросов:
Должен ли я использовать TCP или UDP для этого типа приложений.
Если я хочу использовать UDP для более быстрой передачи, как определить подходящую длину данных в каждом пакете, которая не будет легко потеряна при передаче? (это может относиться к пропускной способности сети)?
Исходя из своего опыта, можете ли вы оценить, на сколько процентов TCP быстрее UDP?
Извините за так много вопросов в сообщении, но мне нужно знать больше деталей, прежде чем решить, использовать ли TCP или UDP в моем приложении.