最佳答案
我正在使用 golang 的 go-ping (https://github.com/sparrc/go-ping)库来进行非特权 ICMP ping。
timeout := time.Second*1000
interval := time.Second
count := 5
host := p.ipAddr
pinger, cmdErr := ping.NewPinger(host)
pinger.Count = count
pinger.Interval = interval
pinger.Timeout = timeout
pinger.SetPrivileged(false)
pinger.Run()
stats := pinger.Statistics()
latency = stats.AvgRtt // stats.AvgRtt is time.Duration type
jitter = stats.StdDevRtt// stats.StdDevRtt is time.Duration type
通过运行这个程序,我得到了毫秒级的延迟和微秒级的抖动。我希望两者的单位相同,比如说毫秒,所以当我做 jitter = stats.StdDevRtt/1000
或 jitter = jitter/1000
(将微秒转换为毫秒)时,我得到的是纳秒级的抖动: (。有没有办法同时获得延迟和抖动的单位毫秒。