ICMP报文

ICMP(Internet Control Message Protocol)主要用于错误报告和查询。它包括查询报文,如ping请求;以及差错报文,如类型3不可达报文。ICMP差错报文具有共同规律,如包含IP首部及前8字节,以便关联到特定协议和进程。同时,有几种情况不会产生差错报文,以避免广播风暴,例如:ICMP差错报文本身,目的地址为广播或多播的数据报等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

作用

1. 查询报文

2. 差错报文

ICMP差错报文

1. 差错报文共同规律

2. 不会产生差错报文的几种情况

ICMP报文的类型


作用

ICMP是一个信令兵

1. 查询报文

ping包(类型为0,代码为0)

2. 差错报文

如类型3不可达,ping一个不存在的网络时,ping unreachable(类型为3,代码为0)

 

ICMP差错报文

1. 差错报文共同规律

数据报有可能导致产生差错报文,差错报文始终包含了IP的首部和产生ICMP差错报文的IP数据报的前8个字节。这样,接收ICMP差错报文的模块就会把它与某个特定的协议(根据IP数据报首部中的协议字段来判断)和用户进程(根据包含在IP数据报前8个字节中的TCP或UDP报文首部中的TCP或UDP端口号来判断)联系起来

 

传输层前8个字节包含端口号,可以确定引起错误的进程。 

2. 不会产生差错报文的几种情况

一个差错报文有可能会导致另外一个差错报文,引起差错报文的广播风暴。为了避免这种情况规定了集中不会产生差错报文的情况。

1. ICMP差错报文(差错报文产生差错报文)

2. 目的地址是广播地址或多播地址的IP数据报

3. 作为链路层广播的数据报

4. 不是IP分片的第一片(第二片IP分片没有源目端口了,payload只有数据部分)

5. 原地址不是单个主机的数据报。这就是说,原地址不能为零地址、环回地址、广播地址或多播地址

这些规则是为了防止过去允许ICMP差错报文对广播分组响应所带来的广播风暴。

 

ICMP报文的类型

不同类型由报文中的类型字段和代码字段来共同决定

类型代码状态描述查询差错
0 - Echo Reply0 echo响应 (被程序ping使用) 
1 and 2 未分配保留 
3 - 目的不可达0 目标网络不可达 
1 目标主机不可达 
2 目标协议不可达 
3 目标端口不可达 
4 要求分段并设置DF flag标志 
5 源路由失败 
6 未知的目标网络 
7 未知的目标主机 
8 源主机隔离(作废不用) 
9 禁止访问的网络 
10 禁止访问的主机 
11 对特定的TOS 网络不可达 
12 对特定的TOS 主机不可达 
13 由于过滤 网络流量被禁止 
14 主机越权 
15 优先权终止生效 
4 - 源端关闭0弃用源端关闭(拥塞控制) 
5 - 重定向0 重定向网络 
1 重定向主机 
2 基于TOS 的网络重定向 
3 基于TOS 的主机重定向 
6 弃用备用主机地址  
7 未分配保留  
8 - 请求回显0 Echo请求 
9 - 路由器通告0 路由通告 
10 - 路由器请求0 路由器的发现/选择/请求 
11 - ICMP 超时0 TTL 超时 
1 分片重组超时 
12 - 参数问题:错误IP头部0 IP 报首部参数错误 
1 丢失必要选项 
2 不支持的长度  
13 - 时间戳请求0 时间戳请求 
14 - 时间戳应答0 时间戳应答 
15 - 信息请求0弃用信息请求 
16 - 信息应答0弃用信息应答 
17 - 地址掩码请求0弃用地址掩码请求 
18 - 地址掩码应答0弃用地址掩码应答 
19 保留因安全原因保留  
20 至 29 保留Reserved for robustness experiment  
30 - Traceroute0弃用信息请求  
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 到 255 保留保留  
235 实验性的RFC3692( RFC 4727  
254 实验性的RFC3692( RFC 4727  
255 保留保留  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值