#c #delay #packet #iocp #variation
#c #задержка #пакет #iocp
Вопрос:
В настоящее время я внедряю приложение для потоковой передачи видео, целью которого является максимально возможное использование полосы пропускания gigabit Ethernet
- Протокол приложения построен по протоколу tcp / ip
- Сетевая библиотека использует асинхронный механизм iocp
- Требуется только потоковая передача по локальной сети
- Пакетам не нужно проходить через маршрутизаторы
Это упрощает многие вещи. Тем не менее, я испытываю проблемы с изменением задержки пакетов.
Это означает, что видеокадр, который должен поступать, например, каждые 20 мс (видеосигнал 1280 x 720p с частотой 50 Гц), иногда поступает с задержкой в десятки миллисекунд. Еще:
- Сохраняется средняя частота кадров
- Максимальная задержка видеокадра зависит от использования сети
- Чем больше данных в локальной сети, тем выше максимальная задержка видеокадра
Например, при использовании полосы пропускания 800 Мбит / с PDV составляет около 45-50 мс.
На мои вопросы:
- Каковы практические границы снижения этого значения?
- Знаете ли вы об отчете об измерениях, доступном в Интернете, посвященном этому?
Я хочу знать, есть ли какая-то незначительная ошибка в моем приложении (возможно, чрезмерная блокировка) или нет способа улучшить показатели с помощью современных технологий.
Комментарии:
1. пожалуйста, просмотрите мою правку для удобства чтения. Сохранил ли я ваш смысл без изменений?
Ответ №1:
Для потоковой передачи видео я бы рекомендовал использовать UDP вместо TCP, поскольку это требует меньших затрат и подтверждение пакета обычно не требуется, поскольку повторно переданные данные уже устарели бы.