我正在学习 ping 命令。
因为我无法理解带有 -T tsonly 和 tsandaddr 的 ping 命令的输出。
输出是,
$ 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
我在谷歌上被搜索到了。但我没有得到答案。在手册页中我也没有得到答案。
谁能解释一下这两个命令的输出。这两个 ping 命令打印的时间是什么时候?
答案1
来自乒乓人
-T 时间戳选项
设置特殊的 IP 时间戳选项。时间戳选项可以是 tsonly(仅时间戳)、tsandaddr(时间戳和地址)或 tsprespec host1 [host2 [host3 [host4]]](时间戳预先指定的跃点)
IP时间戳选项是一个IP数据包选项字段,用于记录处理数据报(并且支持此选项)的每个设备的时间戳(以世界时间为单位)。RFC781
- 请求
-T tsonly
并仅显示 IP 时间戳字段中记录的时间戳,第一个是绝对时间戳,接下来的似乎是增量时间戳:
(来自 RFC:flag = 0 -- 仅时间戳)
- 请求
-T tsandaddr
并在设备的 IP 地址旁边显示时间戳:
(来自 RFC:flag = 1 -- 每个时间戳前面都有注册实体的互联网 ID)
-T tsprespec
仅针对指定的互联网 IP 地址的请求和显示时间戳:
(来自 RFC:flag = 3——互联网 ID 字段是预先指定的。 IP 模块仅在其自身 ID 与下一个指定的 Internet ID 匹配时才注册其时间戳)
答案2
据我了解,-T 选项将时间戳选项添加到 IP 数据包中。这是 rfchttps://www.rfc-editor.org/rfc/rfc781。 TS:绝对是自午夜以来的毫秒数
但我可以理解接下来的数字。我认为这就是你的主机和其他跃点之间的区别。但并不是所有的路由器都会接受这种类型的数据包
如果你自己 ping 一下,比如 127.0.0.1,你会看到零