Я пытаюсь измерить одностороннюю задержку между двумя машинами, и я хотел бы использовать ping
для отправки ICMP
пакетов с одного компьютера на другой. Интервал между пакетами должен составлять 1 микросекунду (1 мкс), и я хочу отправить 1 миллион пакетов (10 ^ 6), поэтому для отправки пакетов потребуется 1 секунда.
Кроме того, меня не волнует ответ другой машины (я буду только захватывать пакеты на второй машине и анализировать их).
Прямо сейчас я попробовал:
ping -I eth0 -c 1000000 -l 1000000 -f -i 0.000001 -b 255.255.255.255
Я также экспериментировал, отключив -l
и параметры -f
. Когда я использую большое значение для -l
, я получаю предупреждение о том, что rcvbuf недостаточно для удержания предварительной загрузки.
Я использую tcpdump для захвата исходящих пакетов с моей машины, а также для входящих пакетов на другую машину.
Проблема в том, что интервал между пакетами составляет от 5 мкс до 15 мкс. s в большинстве случаев и немного больше.
У меня такая же проблема, когда я отправляю прямо на веб-сайт, например google:
ping -I eth0 -c 1000000 -l 1000000 -f -i 0.000001 google.com
Я хочу:
. Желательно сделать это с помощью команды ping
и опций, которые она предоставляет (если их достаточно). У меня есть права администратора.
Обновление
Моя цель - измерить задержку, которую разные кабели вносят в пакеты. Поэтому мне нужна точная генерация и захват пакетов. Что касается оборудования, у меня есть подходящие инструменты, но я не получаю того, чего ожидаю. Я считаю, что проблема в программном обеспечении.
Проблема для меня в том, что ping не работает должным образом, когда я использую параметр -i
. Когда я использую -f -l 1000000
, захваты отправляются каждые 3 мкс на 5 мкс. Когда я указываю -f
или ни один из этих двух, пакеты генерируются каждые 12 мс.
Обычно я считаю, что не могу контролировать расстояние между пакетами широковещательного эхо-запроса.
ping -f
будет не ждать ответа удаленной стороны.
Однако задержка в 1 мкс между последовательные пакеты могут быть слишком большими, чтобы их можно было запросить у вашего оборудования (ЦП) и программного обеспечения (стек IP).
Чтобы максимизировать производительность (и минимизировать задержку отправки), попробуйте отключить любую функцию управления питанием или, по крайней мере, используйте производительность
регулятор ЦП.
Вероятно, вы путаете задержку и пропускную способность. Достаточно отправить 1 пакет и измерить его задержку, чтобы определить задержку. Все, что вам нужно, это механизм для точного измерения времени. Одним из способов является PTP (протокол точного времени), то есть отправитель прикрепляет метку времени к отправляемому пакету. Пропускная способность WRT, размер пакетов имеет решающее значение - по умолчанию ping будет иметь длину 64 байта.