1 概述
2 ICMP 协议
2.1 工作原理
- ICMP 提供出错报告信息
- ① 源端设备发送 Message 给目的端设备
- ② 目的端设备返回 Message 给源端设备
- ③ 源端设备根据返回的 Message 判断错误的类型(ICMP 报文中的 类型 和 代码)
- 常见的命令有:ping、tracert
2.2 报文格式
中文名 | 英文名 | 长度 bit | 说明 |
---|---|---|---|
类型 | Type | 8 | 报文类型:差错报告报文、查询报文 |
代码 | Code | 8 | 类型 + 代码:表示具体的错误 |
校验和 | CheckSum | 16 | 数据发送到目的地后校验报文是否有错误 |
标识 | Identifier | 16 | 对发送的每个数据报进行标识 |
序列号 | Sequence Number | 16 | 对发送的每一个数据报文进行编号 |
数据 | Data | 可选 | 数据内容 |
2.3 报文类型
种类 | 类型 | 描述 | 含义 |
---|---|---|---|
查询报文 | 8 或 0 | 回显(Echo ) 请求 或 应答 | 测试目的是否可以到达以及了解相关的状态 |
13 或 14 | 时间戳(Timestamp) 请求 或 应答 | 显示请求、应答的时间 | |
差错报告报文 | 3 | 终点不可达 | 源端发送的数据报到不了目的端 |
5 | 重定向 | 路由器把改变路由报文发送给主机,让主机知道下次应将数据报发送给另外的路由器(可通过更好的路由) | |
11 | 超时 | 当路由器收到生存时间为 0 的数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文 | |
12 | 参数问题 | 当路由器或目的主机收到的数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文 |
3 扩展
3.1 完整 ICMP 报文类型
类型 | 代码 | 描述 | 查询报文 | 差错报告报文 |
---|---|---|---|---|
0 | 0 | Echo Reply —— 回显应答(Ping应答) | √ | |
3 | 0 | Network Unreachable —— 网络不可达 | √ | |
1 | Host Unreachable —— 主机不可达 | √ | ||
2 | Protocol Unreachable —— 协议不可达 | √ | ||
3 | Port Unreachable —— 端口不可达 | √ | ||
4 | Fragmentation needed but no frag. bit set —— 需要进行分片但设置不分片 | √ | ||
5 | Source routing failed —— 源站选路失败 | √ | ||
6 | Destination network unknown —— 目的网络未知 | √ | ||
7 | Destination host unknown —— 目的主机未知 | √ | ||
8 | Source host isolated (obsolete) —— 源主机被隔离(已作废) | √ | ||
9 | Destination network administratively prohibited —— 目的网络被强制禁止 | √ | ||
10 | Destination host administratively prohibited —— 目的主机被强制禁止 | √ | ||
11 | Network unreachable for TOS —— 由于服务类型TOS,网络不可达 | √ | ||
12 | Host unreachable for TOS —— 由于服务类型TOS,主机不可达 | √ | ||
13 | Communication administratively prohibited by filtering —— 由于过滤,通信被强制禁止 | √ | ||
14 | Host precedence violation —— 主机越权 | √ | ||
15 | Precedence cutoff in effect —— 优先中止生效 | √ | ||
4 | 0 | Source quench —— 源端被关闭(基本流控制) | √ | |
5 | 0 | Redirect for network —— 对网络重定向 | √ | |
1 | Redirect for host —— 对主机重定向 | √ | ||
2 | Redirect for TOS and network —— 对服务类型和网络重定向 | √ | ||
3 | Redirect for TOS and host —— 对服务类型和主机重定向 | √ | ||
8 | 0 | Echo request —— 回显请求(Ping请求) | √ | |
9 | 0 | Router advertisement —— 路由器通告 | √ | |
10 | 0 | Route solicitation —— 路由器请求 | √ | |
11 | 0 | TTL equals 0 during transi t—— 传输期间生存时间为 0 | √ | |
1 | TTL equals 0 during reassembly —— 在数据报组装期间生存时间为 0 | √ | ||
12 | 0 | IP header bad (catchall error) —— 坏的IP首部(包括各种差错) | √ | |
1 | Required options missing —— 缺少必需的选项 | √ | ||
13 | 0 | Timestamp request —— 时间戳请求 | √ | |
14 | 0 | Timestamp reply —— 时间戳应答 | √ | |
15 | 0 | Information request (obsolete) —— 信息请求(已作废) | √ | |
16 | 0 | Information reply (obsolete) —— 信息应答(已作废) | √ | |
17 | 0 | Address mask request —— 地址掩码请求 | √ | |
18 | 0 | Address mask reply —— 地址掩码应答 | √ |
3.2 网工软考真题
【2023上半年-17】使用Traceroute命令时,由中间路由器返回的ICMP超时报文中Type和Code分别是()。
A.Type=3 Code=0
B.Type=8 Code=0
C.Type=11 Code=0
D.Type=12 Code=0
参考答案:C
【2021上半年-20】ICMP是TCP/IP分层模型第三层协议,其报文封装在( )中传送。
A.以太帧
B.IP 数据报
C.UDP 报文
D.TCP 报文
参考答案:B
【2015上半年-14】关于ICMP协议,下面的论述中正确的是() 。
A.通过 ICMP 可以找到与 MAC 地址对应的 IP 地址
B.通过 ICMP 可以把全局 IP 地址转换为本地 IP 地址
C.ICMP 用于动态分配 IP 地址
D.ICMP 可传送 IP 通信过程中出现的错误信息
参考答案:D