Несогласованная доставка пакетов сетевой картой, измерение производительности сетевой карты

StackOverflow https://stackoverflow.com/questions/2111620

Вопрос

У одного из наших клиентов возникла проблема с нашим потоковым приложением (win32).Похоже, что UDP (RTP) пакеты, которые должны быть отправлены приложением с некоторым постоянным интервалом (скажем, 20 мс), на самом деле отправляются с сильно изменяющимися дельтами (скажем, 15 мс - 25 мс - 10 мс - 30 мс).Это единственный клиент, который сталкивается с проблемой, поэтому наша основная подозреваемая - сетевая карта или другая инфраструктура, связанная с операционной системой.

Вопрос в том, какая конфигурация сети может привести к такой проблеме (AV?, QOS?)

И как я могу измерить время между фактическим вызовом функции "отправить" и моментом, когда пакет был фактически доставлен в сеть?Есть ли какой-нибудь доступный инструмент для этого.

Это было полезно?

Решение 3

Ребята, проблема на самом деле заключалась в функциях синхронизации Windows, действительно, оказывается, что Sleep () может иметь разрешение более 15 мс.если только вы программно не установили его равным одному 1 мс.Так что никакого отношения к НИКУ это не имеет.

Другие советы

Я подозреваю Любой проблема с сетью может вызвать эту проблему.

В базовом UDP нет понятия QoS (качество обслуживания) (вплоть до того, что вы можете терять пакеты, иметь дубликаты и т.д.).Ваша сетевая карта должна ставить пакеты в очередь для записи в сеть, и поэтому вы не можете гарантировать доставку, поскольку она ставит в очередь пакеты из разных приложений.

Маршрутизаторы также могут устанавливать приоритеты, и это повлияет на регулярность этих пакетов.

Редактировать:Вы указали на местную сетевую карту, так что вышеизложенное повторяется.маршрутизаторы в данной ситуации неприменимы.

Короче говоря, вообще нет никаких оснований ожидать, что вышесказанное является чем-то иным, кроме приемлемого.

Если вы говорите, что измеряете это непосредственно на сетевой карте компьютера, фактически генерирующего пакеты (т.е.так что можете не учитывать все сетевые влияния) тогда возможной причиной является нагрузка на сам компьютер.

Если на компьютере запущено много приложений, особенно интерактивных и ориентированных на взаимодействие с пользователем (которые, как правило, получают приоритет у большинства планировщиков), то вы можете обнаружить, что вашему приложению, создающему сообщения, просто трудно конкурировать за необходимое ему время.

Даже если на всех компьютерах ваших клиентов загружено одинаковое программное обеспечение, то какие приложения на самом деле на них запущены и что они с ними делают, может оказать влияние.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top