ICMP报文

目录

作用

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端口号来判断)联系起来

 

ICMP报文_第1张图片

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

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

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

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

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

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

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

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

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

 

ICMP报文的类型

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

类型 代码 状态 描述 查询 差错
0 - Echo Reply 0   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 - 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 到 255   保留 保留    
235   实验性的 RFC3692( RFC 4727)    
254   实验性的 RFC3692( RFC 4727)    
255   保留 保留    

你可能感兴趣的:(TCP/IP)