ICMP协议 详解,ICMP协议的功能及实现原理,ICMP协议报文类型。

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「专栏简介」:此文章已录入专栏《计算机网络零基础快速入门》

ICMP协议

  • 一、工作原理
  • 二、数据报格式
  • 三、报文类型

ICMP协议是IP的一个组成部分,负责传递 「控制信息」

一、工作原理

ICMP的功能是检错而不是纠错;

它将出错的报文返回给发送方的设备,发送方根据ICMP报文确定「错误类型」,从而更好的重发错误的数据包。

我们用来测试网络连通性的 ping 命令,就是ICMP的工作过程。

二、数据报格式

ICMP是IP协议的一部分,因此,ICMP协议的报文包含在IP数据报的数据部分:
ICMP协议 详解,ICMP协议的功能及实现原理,ICMP协议报文类型。_第1张图片
1)类型(Type):4位,标明ICMP报文的作用及格式。

2)代码(Code):4位,标明报文的类型。

3)校验和:8位,检验报文是否有误。

三、报文类型

ICMP协议主要通过 Type Code 的组合,来标明报文的类型,常见的有三种:

1)请求响应

发送方发送一个 Type =8 的报文,途中没有异常,接收方就会返回一个 Type=0 的报文;

比如下面这一对请求和响应,注意看我圈中的地方:

ICMP协议 详解,ICMP协议的功能及实现原理,ICMP协议报文类型。_第2张图片
2)网络、主机、协议、端口不可达

这几种情况的报文类型都是一样的,接收方返回一个 Type = 3 Code=3 的报文,意思就是端口不可达(访问了一个不存在的端口),比如下面这个响应,重点看我圈中的地方:

ICMP协议 详解,ICMP协议的功能及实现原理,ICMP协议报文类型。_第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——地址掩码应答

你可能感兴趣的:(《计算机网络零基础快速入门》,网络,网络协议,http,安全,网络安全)