互联网控制 消息 协议
此條 |
互联网控
ICMP [1]
技術 細 節
编辑
ICMP
虽然ICMP
很多
ICMP报文結構
编辑
報 頭
编辑
ICMP
Bits | 160-167 | 168-175 | 176-183 | 184-191 |
---|---|---|---|---|
160 | Type | Code | ||
192 | Rest of Header |
- Type - ICMP
的 類型 ,标识生成 的 错误报文; - Code -
進一 步 劃分ICMP的 類型 ,该字段 用 来 查找产生错误的 原因 .;例 如,ICMP的 目標 不可 達 類型 可 以把這個位 設 為 1至 15等 來 表示 不同 的 意思 。 - Checksum - Internet
校 驗 和 (RFC 1071),用 於進行 錯誤 檢 查,該校驗 和 是 從 ICMP頭 和 以該字 段 替 換 為 0的 數 據 計算 得 出 的 。 - Rest of Header -
報 頭 的 其餘部分 ,四 字 節 字 段 ,內容根據 ICMP類型 和代 碼而有 所 不同 。
填 充 數 據
编辑
报文类型
编辑类型 | 描述 | 查询 | |||
---|---|---|---|---|---|
0 - 响应 |
0 | Echo响应 ( |
● | ||
1 and 2 | ● | ||||
3 - |
0 | ● | |||
1 | ● | ||||
2 | ● | ||||
3 | ● | ||||
4 | ● | ||||
5 | ● | ||||
6 | ● | ||||
7 | ● | ||||
8 | ● | ||||
9 | ● | ||||
10 | ● | ||||
11 | 对 |
● | |||
12 | 对 |
● | |||
13 | ● | ||||
14 | ● | ||||
15 | 优先权终 |
● | |||
4 - |
0 | 弃用 | ● | ||
5 - |
0 | ● | |||
1 | ● | ||||
2 | ● | ||||
3 | ● | ||||
6 | 弃用 | 备用 |
|||
7 | |||||
8 - 请求 |
0 | Echo请求 | ● | ||
9 - |
0 | ● | |||
10 - |
0 | ● | |||
11 - ICMP |
0 | TTL |
● | ||
1 | ● | ||||
12 - |
0 | IP 报首 |
● | ||
1 | 丢失 |
● | |||
2 | |||||
13 - 时间戳请 |
0 | 时间戳请 |
● | ||
14 - 时间戳应 |
0 | 时间戳应 |
● | ||
15 - |
0 | 弃用 | ● | ||
16 - |
0 | 弃用 | ● | ||
17 - |
0 | 弃用 | ● | ||
18 - |
0 | 弃用 | ● | ||
19 | |||||
20 |
Reserved for robustness experiment | ||||
30 - Traceroute | 0 | 弃用 | |||
31 | 弃用 | ||||
32 | 弃用 | ||||
33 | 弃用 | Where-Are-You(originally meant for IPv6) | |||
34 | 弃用 | Here-I-Am(originally meant for IPv6) | |||
35 | 弃用 | Mobile Registration Request | |||
36 | 弃用 | Mobile Registration Reply | |||
37 | 弃用 | Domain Name Request | |||
38 | 弃用 | Domain Name Reply | |||
39 | 弃用 | SKIP Algorithm Discovery Protocol, Simple Key-Management for Internet Protocol | |||
40 | Photuris, Security failures | ||||
41 | 实验 |
ICMP for experimental mobility protocols such as Seamoby [RFC4065] | |||
42 |
|||||
235 | 实验 |
RFC3692( RFC 4727) | |||
254 | 实验 |
RFC3692( RFC 4727) | |||
255 |
源 站抑制
编辑
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
类型(Type) = 4 | 检验 | ||||||||||||||||||||||||||||||
IP |
其中:
- 类型(Type) 必须设置为4
代 码(Code) 必须设置为0- IP
数 据 报头部 和 其附加 的 数 据 用 于发送端 根 据 回 应报文 匹 配 对应的 请求报文
重定 向
编辑
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
类型(Type) = 5 | 检验 | ||||||||||||||||||||||||||||||
其中:
- 类型(Type) 必须设置为 5.
代 码(Code)指定 重定 向 的 原因 ,见下表
代 码(Code)描述 0 针对网络 的 重定 向 报文1 针对 主 机 的 重定 向 报文2 针对网络 和服 务类型 的 重定 向 报文3 针对 主 机 和服 务类型 的 重定 向 报文
路 由 器 的 IP地 址 (IP address)是 一 个32位 的 网关IP地 址 ,该地址 指 明 了 该数据 报应该被重定 向 到 的 路 由 器 地 址 。激 发重定 向 报文的 数 据 报IP首部 及其数 据 的 前 8字 节(IP header)用 于收到 重定 向 报文的 主 机 根 据 回 应报文 匹 配 对应的 请求报文,来 确定该数据 报的目的 站地址 。
超 时
编辑
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
类型(Type) = 11 | |||||||||||||||||||||||||||||||
其中:
- 类型(Type) 必须设置为 11
代 码(Code)指定 重 超 时的原因 ,见下表
Code Description 0 存 活 時間 计数超 时1 分 片 重 装 超 时
激 发超时报文 的 数 据 报IP首部 及其数 据 的 前 8字 节 这些信 息 用 于源站根据 收 到 的 超 时报文 来 确定具体 哪个数 据 报已被 丢弃。对于高 层协议,比 如用 户数据 报协议和 传输控 制 协议而言,额外的 8字 节数据 指 明 了 已 被 丢弃的 数 据 报中的 源 端 口 与 目的 端 口 。
时间戳请求
编辑
时间戳请
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
类型(Type) = 13 | 检验 | ||||||||||||||||||||||||||||||
标识 |
|||||||||||||||||||||||||||||||
传输时间戳(Transmit timestamp) |
其中:
- 类型(Type) 必须设置为 13
代 码(Code) 必须设置为 0- 标识
符 (Identifier) and序 号 (Sequence)用 于在时间戳请求 报文和 时间戳回答 报文之 间建立 关联 起 始 时间戳(Originate timestamp) 为世界 标准时午 夜 开始计算的 毫秒数 。 如果没 有 可用 的 世界 标准时参考 ,则可以将最高 有效 位 设置为1以指示 这是一个非标准时间值。
时间戳回答
编辑
时间戳
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
类型(Type) = 14 | 检验 | ||||||||||||||||||||||||||||||
标识 |
|||||||||||||||||||||||||||||||
传输时间戳(Transmit timestamp) |
其中:
- 类型(Type) 必须设置为 14
代 码(Code) 必须设置为 0- 标识
符 (Identifier)和 序 号 (Sequence number)用 于在时间戳请求 报文和 时间戳回答 报文之 间建立 关联。 起 始 时间戳(Originate timestamp)是 发送端 最 后 一次改动该数据报的时间戳。接收 时间戳(Receive timestamp)是 回 应端主 机 接收 到 请求报文并创建 时间戳回应报文 的 时间,单位为毫秒 。- 传输时间戳(Transmit timestamp)
是 最 后 一次修改回应报文并将其发送出去的时间,单位为毫秒 。
所有 的 时间戳都是 世界 标准时午夜 起 始 的 毫秒数 。如果这个时间不能 表示 为毫秒 或 者 没 有 可用 的 世界 标准时参考 值,则可以使用 任 何 格式 的 时间值并将 最高 有效 位 设置为1以指示 这是一个非标准时间值。
地 址 掩码请求
编辑
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
类型(Type) = 17 | 检验 | ||||||||||||||||||||||||||||||
标识 |
|||||||||||||||||||||||||||||||
其中:
- 类型(Type) 必须设置为 17
代 码(Code) 必须设置为 0地 址 掩码(Address mask)可 以为0
地 址 掩码回答
编辑
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
类型(Type) = 18 | |||||||||||||||||||||||||||||||
标识 |
|||||||||||||||||||||||||||||||
其中:
- 类型(Type) 必须设置为 18
代 码(Code) 必须设置为 0地 址 掩码(Address mask) 为待回答 的 地 址 掩码
源 站不可 达
编辑
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
类型(Type) = 3 | 检验 | ||||||||||||||||||||||||||||||
其中:
- 类型(Type) 必须设置为 3
代 码(Code)字 段 用 于指示 具体 导致源 站不可 达的原因 。见下表 。
代 码(Code)解 释(Description)0 网络 不可 达1 主 机 不可 达2 协议 不可 达3 端 口 不可 达4 需要 分 片 但 是 DF(Do not Fragment)置 位 5 源 路 由 失 败6 目的 网络未知 7 目的 主 机 未知 8 源 主 机 被 隔 离9 与 受到管理 禁 控 的 目的 网络通信 10 与 受到管理 禁 控 的 目的 主 机 通信 11 对于 指 明 的 服 务类型 ,网络不可 达12 对于 指 明 的 服 务类型 ,主 机 不可 达13 出 于管理 目的 禁止 通信 14 主 机 越 权.15 优先权剥夺生 效
- Next-hop MTU
当 需要 分 片 但 是 DF(Do not Fragment)置 位 的 错误发生时,包含 了 下 一 跳 网络的 MTU的 值。 - IP header
用 于源站根据 收 到 的 源 站不可 达报文 来 确定具体 哪个数 据 报引起 了 源 站不可 达错误。
參考
编辑
- ^ 1.0 1.1 1.2 1.3 1.4 1.5 1.6 RFC 792 INTERNET CONTROL MESSAGE PROTOCOL; DARPA INTERNET PROGRAM; PROTOCOL SPECIFICATION; Introduction. J. Postel (Internet RFC/STD/FYI/BCP Archives). 1981-09-01 [2008-05-16]. (
原始 内容 存 档于2009-03-16). - ^ When Are ICMP Redirects Sent?. Cisco Systems. 2008-06-28 [2013-08-15]. (
原始 内容 存 档于2014-01-12). - ^ Requirements for Internet Hosts -- Communication Layers. RFC. [2021-01-12]. (
原始 内容 存 档于2011-05-23). - ^ Cisco IOS IP Command Reference, Volume 1 of 4: Addressing and Services, Release 12.3 - IP Addressing and Services Commands: ip mask-reply through ip web-cache. Cisco Systems. [2013-01-07]. (
原始 内容 存 档于2013-01-02).
外部 連結
编辑
- RFC 792, Internet Control Message Protocol
- ICMP Sequence Diagram(页面
存 档备份,存 于互联网档案 馆) - RFC 1122, Requirements for Internet Hosts -- Communication Layers
- RFC 1716, Towards Requirements for IP Router
- RFC 1812, Requirements for IP Version 4 Routers
- RFC 6633, Deprecation of ICMP Source Quench Messages
- Filtering ICMP on firewalls
- IANA(页面
存 档备份,存 于互联网档案 馆)