ICMP是Internet控制消息协议(Internet Control Message Protocol)的缩写。RFC792定义了ICMP的一般结构。ICMP主要用于发送控制消息和错误信息,以保证IP协议的有效传输,这使得网络故障容易被诊断和纠正。为了加强网络服务的可靠性,必须正确地对ICMP报文进行分析,以便及时发现网络故障并纠正。
ICMP报文分为多种类型,包括:差错报告消息、询问/回答消息、传输过程控制消息、重定向消息等。
差错报告消息
差错报告消息是主机或路由器发送的ICMP消息,用于报告IP数据包在传输过程中发生的差错。常见的差错报告消息类型有目标不可达报告、时间超过报告、重定向信息等。
目标不可达报告:当某一主机的路由表发现某一数据包无法传送其目的地时,就会发送“目标不可达”错误报告。报告消息中包含了导致错误的数据包的首部。
时间超过报告:当某一IP数据包的生存时间(TTL)被消耗完,而仍然未到达目的主机时,就会返回一个“生存时间超过”错误报告,这是一种可用于检测网络中的循环和路由环路的方法。
重定向信息:当某一路由器认为某一个数据包错误地被发送到了一个不正确的下一步路由器时,它会生成一个重定向信息,告诉发送方改变下一步路由器的地址。这一提示可以减轻网络流量。
询问/回答消息
询问/回答消息是一个在网络中常用的机制,可以用来测试网络的可用性和响应时间。常见的询问/回答消息类型有回应请求消息、生成请求消息等。
回应请求消息:回应请求消息被发送到某个主机上,并要求它以回答返回PING(echo request)消息为信号。PING工具可以利用ICMP回应请求消息来测量响应时间,这一时间被称为“往返时间”。通过频繁快速地发送这些消息,可以快速地扫描某个网络来发现其响应时间。
生成请求消息:生成请求消息被用于测试特定服务的可用性。当发送一条生成请求消息时,接收方会尝试响应某个服务,通常是TCP端口。如果存在问题,那么产生的错误ICMP报文将返回发送方。
传输过程控制消息
传输过程控制消息是能够控制和管理IP数据包传送的消息类型。常见的传输过程控制消息包括源站选路请求、源站选路应答。
源站选路请求:源站选路请求消息(一种刚性选路协议)通常由主机发送,以指示网络上的路由器从请求主机发送数据包的起点开始提供服务,路由器会在数据包被转发到下一站之前修改数据包的路径。
源站选路应答:源站选路应答消息用于确定要使用的地址和路径。这样的提供自动路径选择功能的报文通常用于多层拓扑结构网络。
重定向消息
重定向消息可用于减轻网络流量和效果改善路由器,它告诉发送方要更改下一跳路由器地址,这样发送方就可以利用更短的路径发送数据包。重定向消息有改变路由器地址的作用,可以使数据尽快到达它的目标地址。
扫码咨询 领取资料