Я хотел бы измерить задержку сети для запроса 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
Согласно руководству, статистика состоит из:
прошедшее реальное время между вызовом и завершением,
пользовательское процессорное время (сумма значений
tms_utime и tms_cutime в структуре tms, возвращенная
times (2)),системное время ЦП (сумма значений
tms_stime и tms_cstime в структуре tms, возвращаемых
times (2)).
Как видите, ни один из этих параметров не позволяет измерить реальное время задержки в сети (за исключением статистики времени выполнения других программ). Есть ли способ сделать это? Может быть, не используя инструмент времени, а скорее некоторые хаки ядра?
Я хотел спросить, прежде чем я начну писать свою собственную программу.
Спасибо Петр
источник
-ttttt
также может быть полезным - вместо отображения микросекунд с момента последнего пакета он показывает микросекунды с начала трассировки.Попробуйте пинговать:
Из руководства по пингу:
источник
Запустите вашу программу и тем временем перехватите сетевой трафик с помощью
tcpdump
илиwireshark
. Проверьте время запроса и ответа и выполните простое вычитание.источник