Несогласованная доставка пакетов NIC, измерение производительности NIC - PullRequest
0 голосов
/ 21 января 2010

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

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

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

Ответы [ 3 ]

2 голосов
/ 21 января 2010

Я подозреваю, что любая проблема сети может вызвать эту проблему.

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

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

РЕДАКТИРОВАТЬ: Вы указали местный NIC, так что выше. маршрутизаторы не применяются в этой ситуации.

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

0 голосов
/ 27 июня 2010

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

0 голосов
/ 22 июня 2010

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

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

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

...