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字段 (IP Fields)
Addresses (地址)
时间戳消息中的源地址将是时间戳应答消息的目的地址. 要形成时间戳应答消息, 只需交换源地址和目的地址, 将类型代码更改为14, 并重新计算校验和.
ICMP字段 (ICMP Fields)
Type (类型)
- 13 = timestamp message (时间戳消息);
- 14 = timestamp reply message (时间戳应答消息).
Code (代码)
0
Checksum (校验和)
校验和是从ICMP类型开始的ICMP消息的反码和的16位反码. 计算校验和时, 校验和字段应该 (SHOULD) 为零. 该校验和将来可能 (MAY) 被替换.
Identifier (标识符)
如果code = 0, 则为帮助匹配时间戳和应答的标识符, 可以 (MAY) 为零.
Sequence Number (序列号)
如果code = 0, 则为帮助匹配时间戳和应答的序列号, 可以 (MAY) 为零.
描述 (Description)
消息中接收的数据 (时间戳) 与附加时间戳一起在应答中返回. 时间戳是自午夜UT以来的32位毫秒数. Mills [5]描述了这些时间戳的一种用途.
Originate Timestamp (起始时间戳) 是发送方在发送消息前最后一次接触消息的时间, Receive Timestamp (接收时间戳) 是回显方在接收时首次接触消息的时间, Transmit Timestamp (传输时间戳) 是回显方在发送时最后一次接触消息的时间.
如果时间无法以毫秒为单位提供或无法相对于午夜UT提供, 则可以 (CAN) 在时间戳中插入任何时间, 但必须 (MUST) 同时设置时间戳的高位以指示此非标准值.
标识符和序列号可以 (MAY) 被回显发送方用于帮助将应答与请求匹配. 例如, 标识符可能像TCP或UDP中的端口一样用于标识会话, 序列号可能在发送的每个请求上递增. 目的地在应答中返回这些相同的值.
Code 0可以 (MAY) 从网关或主机接收.