-T 选项导致 ping 命令

-T 选项导致 ping 命令

我正在学习该ping命令。

我无法理解带有and的ping命令的输出。-T tsonly-T tsandaddr

输出是:

$ ping -T tsonly 192.168.1.52
PING 192.168.1.52 (192.168.1.52) 56(124) bytes of data.
64 bytes from 192.168.1.52: icmp_req=1 ttl=63 time=0.470 ms

 TS:    43448298 absolute
        1
        31
        0
        -31
        0
$ ping -T tsandaddr 192.168.1.52
PING 192.168.1.52 (192.168.1.52) 56(124) bytes of data.
64 bytes from 192.168.1.52: icmp_req=1 ttl=63 time=0.434 ms

TS: 192.168.2.64    43461227 absolute
    192.168.2.10    0
    192.168.1.52    32
    192.168.1.52    0

我用谷歌搜索。但我没有找到答案。在手册页中我也没有找到答案。

我知道它打印的绝对时间是 24 小时午夜时间戳的毫秒数。
除此之外,剩下的三个时间都是几点?为什么这两个ping输出都打印出来?那有什么用呢?

答案1

-T 选项要求节点(每跳)在收到 ping 后在 IP 数据包中插入时间戳。它通过使用 IP 数据包的 TS 选项来工作,由RFC791

ping -T 需要 tsonly、tsandaddr 或 tsprespec 之一参数。 tsonly 仅返回时间戳。 tsandaddr 返回时间戳和发送数据包的地址。

从手册页:

-T timestamp option
      Set special IP  timestamp  options.   timestamp  option  may  be
      either  tsonly  (only  timestamps),  tsandaddr  (timestamps  and
      addresses) or tsprespec host1 [host2 [host3 [host4]]] (timestamp
      prespecified hops).

例如,当我从 192.168.1.191 在本地网络上 ping 192.168.1.10 时,我收到以下输出:

ping -T tsandaddr 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(124) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=4.32 ms
TS:     192.168.1.191   31636378 absolute
192.168.1.10    6
192.168.1.10    0
192.168.1.191   -1

更新01


当您发出 tsandaddr 标志时,会返回四个时间值。在下面的示例中,我们看到 31636378 绝对值、6、0 和 -1。

ping -T tsandaddr 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(124) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=4.32 ms
TS:     192.168.1.191   31636378 absolute
192.168.1.10    6
192.168.1.10    0
192.168.1.191   -1

大值 (31636378) 是自 UTC 午夜以来的毫秒数,这就是使用 -T 标志时第一个数字继续向上计数的原因。这个大数字是一个参考时间。

第一个值 (6) 是传输 ping 所需的时间(以毫秒为单位)。第二个值 (0) 是目标接收 ping 所需的时间(以毫秒为单位)。第三个值 (-1) 是向发送者传输回复所花费的时间。

我相信 0 和 -1 毫秒值表明我 ping 的目标没有响应,因此我得到了无用的值。

请随意在一些网站上测试此命令,一些网站会回复合法值。

--timestamp 发送ICMP_TIMESTAMP数据包,从而请求目标主机的定时响应。

在成功的情况下,会返回三个时间值。所有内容均应注明自 UTC 午夜以来的毫秒数。其中第一个“icmp_otime”包含发送请求的原始时间。然后是“icmp_rtime”,即目标接收的时间,最后是“icmp_ttime”,即向发起者发送应答的时间。

请参阅此处的--timestamp:https://www.gnu.org/software/inetutils/manual/html_node/Ping-options.html

相关内容