ICMP(Internet Control Message Protocol),即Internet控制报文协议,是一种网络协议,用于报告错误情况和操作信息。它是TCP/IP协议族中的一部分。ICMP是为了让路由器和主机在IP层次上传递控制消息而设置的。ICMP报文是一个32位字或者多个32位字节的组合。ICMP报文分为两种类型:差错报文和询问报文。
一、差错报文
当一个主机或网关(路由器)需要传送一个IP数据报时发现相应地网络没有提供正常服务,便使用ICMP差错报文通知源端主机或路由器这个问题。ICMP差错报文的主要作用是返回差错消息。差错报文包括:目的不可达、超时、源点抑制、重定向、时间戳请求和跳限制。
1.目的不可达
当路由器接收到一个数据包,如果它无法将这个数据包发送到目标地址,那么路由器就会发送“目的不可达”的差错报文给数据报的源地址。这个目的不可达可以是由于路由器表中找不到下一跳的地址或目标地址不存在或目标地址被禁止等。
2.超时
当数据包在路由器之间传输时,每经过一个路由器,该路由器的IP模块就会重新设置数据包中的TTL(生存时间)值,当TTL值为0时路由器必须抛弃该数据包,并发送“超时”的差错报文到数据报的源地址。
3.源点抑制
当一个主机准备向一个无法在网络中直接访问到的主机发送数据包时,它为了了解通向该目的网络的路由信息而进行路由表查询。如果该查询请求达到了发出请求的主机,该主机要返回一个“源点抑制”的差错报文以提示发出该查询的主机“询问仅限内部使用”,以保护内部的路由信息。
4.重定向
当一个路由收到一个数据包,如果该路由不是最后的宿主或者该宿主接收的是更重要的数据包,那么路由就会发送重定向差错报文,通知源IP地址下次尽量直接发送数据不要经过路由。
二、询问报文
目前RFC文档定义的ICMP询问报文主要有:回显请求(Echo Request)和回显应答(Echo Reply)。
1.回显请求和回显应答(Echo Request和Echo Reply)
回显请求报文是一种基于ICMP协议的测试网络连通性的方法,Ping就是通过回显请求检测目标地址是否可以到达的工具之一。当一台电脑发送了一个回显请求报文后,目标电脑会对该报文进行响应。如果目标电脑在一定的时间内没有响应,则会视为目标电脑不可到达。
总之,ICMP报文分为差错报文和询问报文两种类型。差错报文主要是返回差错信息,询问报文主要是测试网络连通性的方法。了解ICMP协议主要是为了更准确地了解网络故障并进行排除。
扫码咨询 领取资料