2024年6月14日发(作者:)
1 ICMP简介
ICMP全称Internet Control Message Protocol(Intemet控制报文协议),该协议是
TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制报
文。控制报文是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。当遇到
IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时会自动发送
ICMP报文。我们可以通过Ping命令发送ICMP回应请求报文(ICMP Echo-Request)
并记录收到ICMP回应回复报文(ICMP Echo-Reply)。通过这些报文来对网络或主机的
故障提供参考依据。ICMP是用IP封装和发送的,用来向IP和高层协议通报有关网络层的
差错和流量控制情况,所有的路由器和主机都支持此协议。
1.1 ICMP报文
0:回应应答 3:目的不可达
4:源抑制 5:路由重定向
8:回应请求
11:分组超时 14:时间戳应答
17:地址掩码请求
18:地址掩码应答
ICMP报文的封装:封装在IP数据报中,如下图:
1.2 ICMP回应请求和应答
ICMP的请求、应答报文是一种双向信息查询报文,用于获取某些有用信息,以便进
行故障诊断的网络控制。请求、应答报文共有3对。
①回应请求/应答报文(类型8/0):检测目的站点的可达性与状态。信源机向目的机传
送一个回应请求报文,其中包含一个任选的数据区。目的机接收到请求报文后,向信源机
发送相应的回应应答报文,其中包含了请求报文中的任选数据区的拷贝。如果成功地接收
到正确的应答报文,则说明网络的分组转发和路由选择功能是正常的。在Unix等许多操作
系统中,Ping命令的实现就是利用该报文实现的。
②时间戳请求与应答报文(类型13/14):在网络中实现时间同步和分组传送时间的估
计。利用该报文可以估计两个结点之间的机器时间差,以便进行同步。但是,由于TCP/IP
网络分组传送的随机性。用这种方式进行测量和同步是很不准确的。
③地址掩码请求与应答报文(类型17/18):用于获取目的主机所在网络的子网掩码,
用于无盘系统在引导过程中获取自己的子网掩码。
1.3 ICMP差错报告
差错报告是单方向的:由路由器向信源主机报告(如图1)。对ICMP差错报文进行响
应时,不会生成另一份ICMP差错报文,否则会永远循环下去。
差错报告类型:
①目的地不可达报告:网络不可达、主机不可达、协议和端口不可达等(见图4)


发布评论