「作者主页」:士别三日wyx「作者简介」:阿里云博客专家、华为云享专家、网络安全领域优质创作者
「专栏简介」:此文章已录入专栏《计算机网络零基础快速入门》
ICMP协议
- 一、工作原理
- 二、数据报格式
- 三、报文类型
ICMP协议是IP的一个组成部分,负责传递
「控制信息」。
一、工作原理
ICMP的功能是检错而不是纠错;
它将出错的报文返回给发送方的设备,发送方根据ICMP报文确定「错误类型」,从而更好的重发错误的数据包。
我们用来测试网络连通性的 ping 命令,就是ICMP的工作过程。
二、数据报格式
ICMP是IP协议的一部分,因此,ICMP协议的报文包含在IP数据报的数据部分:
1)类型(Type):4位,标明ICMP报文的作用及格式。
2)代码(Code):4位,标明报文的类型。
3)校验和:8位,检验报文是否有误。
三、报文类型
ICMP协议主要通过 Type 和 Code
1)请求响应
发送方发送一个 Type =8 的报文,途中没有异常,接收方就会返回一个 Type=0
比如下面这一对请求和响应,注意看我圈中的地方:
2)网络、主机、协议、端口不可达
这几种情况的报文类型都是一样的,接收方返回一个 Type = 3 , Code=3
常见的不可到达类型还有网络不可到达(Code=0)、主机不可到达(Code=1)、协议不可到达(Code=2)。
完整的ICMP报文类型如下:
TYPE | CODE | Description |
0 | 0 | Echo Reply——回显应答(Ping应答) |
3 | 0 | Network Unreachable——网络不可达 |
3 | 1 | Host Unreachable——主机不可达 |
3 | 2 | Protocol Unreachable——协议不可达 |
3 | 3 | Port Unreachable——端口不可达 |
3 | 4 | Fragmentation needed but no frag. bit set——需要进行分片但设置不分片比特 |
3 | 5 | Source routing failed——源站选路失败 |
3 | 6 | Destination network unknown——目的网络未知 |
3 | 7 | Destination host unknown——目的主机未知 |
3 | 8 | Source host isolated (obsolete)——源主机被隔离(作废不用) |
3 | 9 | Destination network administratively prohibited——目的网络被强制禁止 |
3 | 10 | Destination host administratively prohibited——目的主机被强制禁止 |
3 | 11 | Network unreachable for TOS——由于服务类型TOS,网络不可达 |
3 | 12 | Host unreachable for TOS——由于服务类型TOS,主机不可达 |
3 | 13 | Communication administratively prohibited by filtering——由于过滤,通信被强制禁止 |
3 | 14 | Host precedence violation——主机越权 |
3 | 15 | Precedence cutoff in effect——优先中止生效 |
4 | 0 | Source quench——源端被关闭(基本流控制) |
5 | 0 | Redirect for network——对网络重定向 |
5 | 1 | Redirect for host——对主机重定向 |
5 | 2 | Redirect for TOS and network——对服务类型和网络重定向 |
5 | 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 transit——传输期间生存时间为0 |
11 | 1 | TTL equals 0 during reassembly——在数据报组装期间生存时间为0 |
12 | 0 | IP header bad (catchall error)——坏的IP首部(包括各种差错) |
12 | 1 | Required options missing——缺少必需的选项 |
13 | 0 | Timestamp request (obsolete)——时间戳请求(作废不用) |
14 | Timestamp reply (obsolete)——时间戳应答(作废不用) | |
15 | 0 | Information request (obsolete)——信息请求(作废不用) |
16 | 0 | Information reply (obsolete)——信息应答(作废不用) |
17 | 0 | Address mask request——地址掩码请求 |
18 | 0 | Address mask reply——地址掩码应答 |