Я написал приложение C++ (работает в Linux), которое обслуживает поток RTP около 400 кбит/с. Для большинства пунктов назначения это работает нормально, но в некоторых местах происходит потеря пакетов. Кажется, что проблемные адресаты имеют более медленное соединение, но для потока, который я отправляю, он должен быть достаточно быстрым.Как отлаживать потерю пакетов?
Поскольку эти адресаты могут получать похожие потоки RTP для других приложений без потери пакетов, мое приложение может быть виновато.
Я уже проверен несколько вещей: - в ТСРйитре, я вижу, все пакеты RTP выходя на отправляющей машине - есть UDP отправить буфер на месте (я попробовал размеры между 64KB и 300KB) - RTP-пакеты в основном остаются ниже 1400 байт, чтобы избежать фрагментации
Что может сделать приложение-отправитель, чтобы свести к минимуму вероятность потери пакетов и что было бы лучшим способом отладить такую ситуацию?
Большая часть точки RTP заключается в использовании семантики UDP; в частности, позволяя потерять пакеты без остановки остальной части потока. – jesup
Упс! Мне плохо, что я не знаю RTP. Я сейчас почитаю об этом. Спасибо за головы! –