当前位置:文档之家› ICMP协议详解

ICMP协议详解


报告IP数据报在传输中的差错是ICMP报文最基本的功能,ICMP差 错报文有如下特点:
(1) ICMP差错报文都是由路由器发送到源主机的,因为IP数据报 中含有源主机的IP地址,报告给源主机是最可行的方案,另外,发出 IP数据报的源主机最需要知道数据是否到达目标主机。
(2) ICMP差错报文只提供IP数据报在传输过程中的差错报告,并 不规定对各类差错应采取什么样的处理措施。具体对差错的处理,由 收到ICMP差错报文的源主机将相应的差错与应用程序联系起来才能进 行相应的差错处理。
ICMP报文类型
超时
11
0 在数据报传输期间生存时间TTL为0
1 在数据报组装期间生存时间TTL为0
参数出错
12
0 IP数据报头部错误(包括各种差错)
1 缺少必需的选项
13
0 时间戳请求
14
0 时间戳应答
17
0 地址掩码请求
18
0 地址掩码应答
a
√ √
√ √ √ √ √ √
10
4 ICMP差错报文的特点
a
4
3 .ICMP数据包类型
ICMP报文的种类有三大类种,即ICMP差错报 告报文、控制报文、请求/应答报文。
各大类型报文又分多种类型报文。(见后面 附图)
a
5
3 .ICMP数据包类型
IP协议全貌
IP协议
IP数据报 传输协议
IP数据报 差错报告报文
信息不可到达报告 超时报告 参数出错报告
差错与控制 报文协议
信息不可达报文
码域值: 0 ~ 12,进一步说明信宿不可到达的具体原因
码值 0 2 4 6 8
被隔离 10 11 12
意义 网络不可到达 协议不可到达 需分片,但DF置位 信宿网络未知 源主机被隔离
与信宿主机的通信被隔离 对请求的服务类型,网络不可到达 对请求的服务类型,主机不可到达
码值
意义
1
主机不可到达
ICMP协议
1 ICMP协议的概念与作用
2 ICMP数据包的层次与格式
3 ICMP数据包的类型
4 ICMP差错报文的特点 5 各种ICMP数据包
5.1 差错报告报文 5.2 icmp控制报文 5.3 icmp请求/应答报文
6.ICMP应用:1.ping 2.tracert3.MTU计算
a
1
1 ICMP协议的概念与作用
ICMP数据包是封装在IP数据包中的。
a
2
2中的。
应用层
应用程序 应用程序 应用程序 应用程序
传输层
TCP
UDP
网络层
IGMP
IP
IGMP
链路层 物理传输介质
ARP
硬件接口
RARP
a
3
2 ICMP数据包的层次与格式
ICMP数据包格式如图5-1所示。
3
端口不可到达
5
源路由失败
7
信宿主机未知
9 与信宿网络的通信
a
16
5.1 差错报告报文
主机不可达
协议不可达
端口不可达
需要进行分片,但设置了DF不分片(2.3.2节)
源路由选择失败
目标网络未知
查询 √
差错
√ √ √ √ √ √ √
a
7
3. ICMP数据包类型
ICMP报文类型
7 目标主机未知 8 源主机被隔离 9 与目标网络的通信被强制禁止 10 与目标主机的通信被强制禁止 11 对于请求的服务类型TOS,网络不可达 12 对于请求的服务类型TOS,主机不可达 13 由于过滤,通信被强制禁止 14 主机越权 15 优先权中止生效
a
√ √ √ √ √ √ √ √ √
8
3. ICMP数据包类型
ICMP报文类型
4
0 源站抑制(用于拥塞控制)
重定向
0 对网络重定向
5
1 对主机重定向
2 对服务类型和网络重定向
3 对服务类型和主机重定向
8
0 回送请求(ping命令请求)
9
0 路由通告
10
0 路由请求
a

√ √ √ √ √ √ √
9
3. ICMP数据包类型
a
11
4 ICMP差错报文的特点
(3) ICMP差错报文不享受任何优先权,也没有特别的
可靠性保证措施,与普通的IP数据报一样进行传输,传输
过程中可能被丢失、损坏,甚至被抛弃。
(4) ICMP差错报文是伴随着抛弃出错的IP数据报而产 生的。
(5) 当路由器发送一份参数错误等的ICMP差错报文时, ICMP报文数据区始终包含产生ICMP差错报文的IP数据报的 头部和其数据区的前8个字节(64位)。
ICMP
控制报文
源抑制报文 重定向报文
请求/应答报文
回应请求/应答报文 时戳请求/应答报文 地址模请求/应答报文
a
6
3. ICMP数据包类型
ICMP报文的类型和代码字段的值与ICMP报文类型的对应 关系
类型 0
3
代码 0
0 1 2 3 4 5 6


回送应答(ping命令应答)
目标不可达
网络不可达
a
12
4 ICMP差错报文的特点
当路由器发送参数错误等的ICMP报文数据字段由两部分组 成,一部分是收到的需要进行差错报告的IP数据报的首部,另一 部分是IP数据报的数据字段的前8个字节,如图5-3所示。
a
13
4 ICMP差错报文的特点
(6) 在有些情况下,为了防止在网络中产生大量的ICMP差错报文 (广播风暴),影响网络的正常工作,即使发生差错,也不会产生ICMP 差错报文,这些情况包括:
a
14
5.1 差错报告报文
信息不可达报文
网关在以下情况下发出信息不可到达报告 1) 信宿机硬件出现故障或关机; 2) 发送者指定的地址不存在; 3) 网关不知道去往信宿的路径;
信宿不可到达报告的格式
类型(3)
码(0-12)
校验和
未用(全0)
出错数据报报 头+前64bit数据
........
a
15
5.1 差错报告报文
ICMP(Internet Control Messages Protocol, 网际控制报文协 议),通过它可以知道故障的具体原因和位置。
由于IP不是为可靠传输服务设计的, ICMP的目的主要是用于在 TCP/IP网络中发送出错和控制消息。
ICMP的错误报告只能通知出错数据包的源主机,而无法通知从源 主机到出错路由器途中的所有路由器(环路时)。
● ICMP报文发生差错。这是为了避免差错报文无休止产生而规定 的(但ICMP查询报文可能会产生ICMP差错报文)。
● 目的地址是广播地址或多播地址(D类地址)的IP数据报。 ● 作为链路层广播的数据报。 ● 不是IP分片的第一片。 ● 源地址不是单个主机的数据报。这就是说,源地址不能为零地 址、回送地址、广播地址或多播地址。
相关主题