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字段 (IP Fields)
Addresses (地址)
回显消息中的源地址将是回显应答消息的目的地址. 要形成回显应答消息, 只需交换源地址和目的地址, 将类型代码更改为0, 并重新计算校验和.
ICMP字段 (ICMP Fields)
Type (类型)
- 8 = echo message (回显消息);
- 0 = echo reply message (回显应答消息).
Code (代码)
0
Checksum (校验和)
校验和是从ICMP类型开始的ICMP消息的反码和的16位反码. 计算校验和时, 校验和字段应该 (SHOULD) 为零. 如果总长度为奇数, 则接收的数据用一个八位组的零填充以计算校验和. 该校验和将来可能 (MAY) 被替换.
Identifier (标识符)
如果code = 0, 则为帮助匹配回显和应答的标识符, 可以 (MAY) 为零.
Sequence Number (序列号)
如果code = 0, 则为帮助匹配回显和应答的序列号, 可以 (MAY) 为零.
Data (数据)
可变长度的数据.
描述 (Description)
在回显消息中接收的数据必须 (MUST) 在回显应答消息中返回.
标识符和序列号可以 (MAY) 被回显发送方用于帮助将应答与回显请求匹配. 例如, 标识符可能像TCP或UDP中的端口一样用于标识会话, 序列号可能在发送的每个回显请求上递增. 回显响应者在回显应答中返回这些相同的值.
Code 0可以 (MAY) 从网关或主机接收.