2009-05-18 2 views
1

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

Проблема в том, что у меня нет хорошей метрики для измерения этого воздействия. Я думал о следующих из них, но ни один действительно «полные»:

  1. Увеличение среднего времени задержки для пакета
  2. Увеличения потерь пакетов
  3. Увеличения джиттера
  4. Увеличения среднего времени требуется для завершения транзакций tcp (загрузка файлов с использованием http)

Есть ли стандартная метрика? Есть ли у вас какие-либо другие идеи по измерению влияния приложения на сеть?

btw - У меня есть полный контроль над сетью, и я могу выполнить любое измерение, которое я хочу, чтобы вычислить эту метрику.

Спасибо,

Роули

+0

Этот вопрос имеет перекрытие, вы можете попробовать на serverfault, вы, вероятно, найдете там больше сетевых пользователей. – derobert

ответ

0

Различные сети ведут себя по-разному, поскольку вы превышаете их пропускную способность. Большинство из них имеют последовательность вредности вдоль линий:

  1. джиттера начнут стрелять через крышу, как некоторые пакеты должны быть поставлены в очередь или ретранслируется (например, столкновения на полудуплексном Ethernet или беспроводной). Средняя латентность будет немного повышаться.
  2. Поскольку перенасыщение продолжается (или при более высоких уровнях пересыщения), средняя латентность будет проходить через крышу, так как почти все пакеты ставятся в очередь или повторно передаются. Это может быть ограничено, если размеры очереди малы.
  3. Потеря пакетов увеличится по мере переполнения очередей. Чем выше вы используете пропускную способность, тем больше пакетов будет потеряно. В зависимости от аппаратного обеспечения, дрожание и латентность могут возвращаться или не возвращаться вниз.

Если используется некоторая форма QoS, различные потоки пакетов могут видеть эти эффекты независимо. Например, вы можете накачивать 3-кратную полосу пропускания в приложении и видеть относительно небольшое изменение времени пинга. Таким образом, вы должны измерять с помощью пакетов вашего приложения.

(1) и (2) могут не произойти в данной сети. (3) всегда будет иметь место, несмотря ни на что. Все три могут, к сожалению, также встречаться даже тогда, когда вы нигде не приближаетесь к пределу пропускной способности.

0

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

Смежные вопросы