Измерение задержки сети (Linux)

Я хотел бы измерить задержку сети для SNMP GET запроса.
Существует бесплатный инструмент командной строки time, который может быть использован для поиска статистики синхронизации для различных команд. Например, его можно использовать с snmpget следующим образом:

$ time snmpget -v 2c -c public 192.168.1.3 .1.3.6.1.2.1.2.2.1.10.2
IF-MIB::ifInOctets.2 = Counter32: 112857973

real    0m0.162s
user    0m0.069s
sys 0m0.005s

По словам руководства, статистика описание:

  • прошедшее Реальное время между
    вызов и прекращение действия,

  • время процессора пользователя (сумма the


    значения tms_utime и tms_cutime в a
    struct TMS возвращается


    times (2)),

  • системное время ЦП (сумма


    значения tms_stime и tms_cstime в a
    struct TMS возвращается


    times(2)).

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

Я хотел спросить, прежде чем я начну писать свои собственные программы.

спасибо,
Петр

24
задан Piotr De
31.01.2023 1:03 Количество просмотров материала 3532
Распечатать страницу

3 ответа

на tcpdump(8) программы -ttt флаг может быть только то, что вам нужно:

00:00:00.000031 IP haig.mdns > 224.0.0.251.mdns: 0 PTR (QM)? 1.0.168.192.in-addr.arpa. (42)
00:00:01.897031 IP haig.45240 > stackoverflow.com.www: Flags [F.], seq 866615166, ack 62506321, win 123, options [nop,nop,TS val 6026371 ecr 419296939], length 0
00:00:00.000030 IP haig.45242 > stackoverflow.com.www: Flags [F.], seq 853537650, ack 61102072, win 123, options [nop,nop,TS val 6026371 ecr 419296939], length 0
00:00:00.000019 IP haig.45243 > stackoverflow.com.www: Flags [F.], seq 863535366, ack 62086489, win 123, options [nop,nop,TS val 6026371 ecr 419296939], length 0

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

Я просто показаны случайные mDNS и веб-трафика, потому что это легко найти в системе, можно легко фильтровать трафик SNMP с помощью tcpdump(8) получить только те пакеты, которые вас интересуют. (Что было бы хорошей идеей, так как сброс всего трафика из занятых систем может генерировать огромный загрузить.)

6
отвечен sarnold 2023-02-01 08:51

запустить программу и тем временем захватить сетевой трафик с tcpdump или wireshark. Проверьте время запроса и ответа и сделайте простое вычитание.

5
отвечен Karoly Horvath 2023-02-01 11:08

пинг:

$ ping -U 192.168.1.3

из руководства по ping:

-U печать полный пользователь-пользователь задержка (старое поведение). Нормально пинг печатает время отключения сети Круглое, которое может быть различным f.e. из-за сбоев DNS.

3
отвечен Francisco R 2023-02-01 13:25

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх