跳到主要内容

时间戳或时间戳应答消息 (Timestamp or Timestamp Reply Message)

    0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Code | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Originate Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receive Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transmit Timestamp |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

IP 字段

Addresses (地址)

时间戳消息中源地址将成为时间戳应答消息的目的地址。要构成时间戳应答消息, 只需将源地址和目的地址互换, 将类型代码改为 14, 并重新计算校验和。

ICMP 字段

Type (类型)

  • 13 = 时间戳消息 (timestamp message);
  • 14 = 时间戳应答消息 (timestamp reply message).

Code (代码)

0

Checksum (校验和)

校验和是从 ICMP Type 开始的 ICMP 消息的反码和的 16 位反码。计算校验和时, 校验和字段应置零。此校验和将来可能被替换。

Identifier (标识符)

如果 code = 0, 用于辅助匹配时间戳和应答的标识符, 可以为零。

Sequence Number (序列号)

如果 code = 0, 用于辅助匹配时间戳和应答的序列号, 可以为零。

描述

消息中接收到的数据 (时间戳) 连同一个附加时间戳一起在应答中返回。时间戳是自午夜 UT (世界时) 以来的 32 位毫秒数。Mills [5] 描述了这些时间戳的一种用途。

Originate Timestamp (发起时间戳) 是发送方最后一次触碰消息后发送的时间, Receive Timestamp (接收时间戳) 是回显方收到消息时第一次触碰它的时间, Transmit Timestamp (发送时间戳) 是回显方发送消息时最后一次触碰消息的时间。

如果时间不能以毫秒为单位提供, 或者无法相对于午夜 UT 提供, 则可以在时间戳中插入任意时间, 但时间戳的最高位也应设置为 1, 以表示这是非标准值。

标识符和序列号可由回显发送方用于辅助将应答与请求匹配。例如, 标识符可以像 TCP 或 UDP 中的端口一样用于标识会话, 序列号可以在每次发送请求时递增。目的地在应答中返回相同的值。

代码 0 可能从网关或主机收到。