Я пытаюсь измерить одностороннюю задержку между двумя машинами, и я хотел бы использовать 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 мкс и немного больше.
У меня такая же проблема, когда я отправляю прямо на веб-сайт, например google:
ping -I eth0 -c 1000000 -l 1000000 -f -i 0.000001 google.com
Я хочу:
Предпочтительнее делать это с ping
команда и параметры, которые она предоставляет (если их достаточно). У меня есть права администратора.
Обновить
Моя цель - измерить задержку, которую разные кабели вносят в пакеты. Поэтому мне нужна точная генерация и захват пакетов. Что касается оборудования, у меня есть соответствующие инструменты, но я не получаю того, чего ожидаю. Я считаю, что проблема в программном обеспечении.
Проблема для меня в том, что ping не работает должным образом, когда я использую -i
вариант. Когда я использую -f -l 1000000
захваты отправляются каждые 3us на 5us. Когда я указываю -f
или ни один из этих двух, пакеты генерируются каждые 12 мс.
Обычно я думаю, что не могу контролировать расстояние между пакетами широковещательного пинга.
ping -f
воля не дождитесь ответа удаленной стороны.
Однако задержка в 1 мкс между последовательными пакетами может быть слишком большой, чтобы требовать от вашего оборудования (ЦП) и программного обеспечения (стек IP).
Чтобы максимизировать производительность (и минимизировать задержку отправки) попробуйте отключить любую функцию управления питанием или, по крайней мере, используйте performance
Губернатор ЦП.
Возможно, вы путаете задержку и пропускную способность. Достаточно отправить 1 пакет и измерить его задержку, чтобы определить задержку. Все, что вам нужно, это механизм для точного измерения времени. Один из способов - PTP (протокол точного времени), то есть отправитель прикрепляет метку времени к отправляемому пакету. Пропускная способность WRT, размер пакетов имеет решающее значение - по умолчанию ping будет иметь длину 64 байта.