跳到主要内容

回显或回显应答消息 (Echo or Echo 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data ...
+-+-+-+-+-

IP 字段

Addresses (地址)

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

ICMP 字段

Type (类型)

  • 8 = 回显消息 (echo message);
  • 0 = 回显应答消息 (echo reply message).

Code (代码)

0

Checksum (校验和)

校验和是从 ICMP Type 开始的 ICMP 消息的反码和的 16 位反码。计算校验和时, 校验和字段应置零。如果总长度为奇数, 则在计算校验和时, 接收到的数据用一个零字节填充。此校验和将来可能被替换。

Identifier (标识符)

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

Sequence Number (序列号)

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

Data (数据)

可变长度数据。

描述

回显消息中接收到的数据必须在回显应答消息中返回。

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

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