ICMP协议

一、ICMP协议简介


ICMP:Internet控制消息协议(Internet Control Message Protocol)。

ICMP是网络层的一个重要协议,介于IP层和TCP层之间,一般认为属于IP层协议。ICMP协议用来在网络设备间传递各种差错和控制信息,并对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

ICMP对IP包无法传输时提供报告,这些差错报告帮助了发送方了解为什么无法传递,网络发生了什么问题,确定应用程序后续操作。

ICMP还提供了一种查询机制,有利于网络环境分析和网络问题定位。

image.png


ICMP用来传递差错、控制、查询等信息

二、ICMP报文类型


image.png

1、ICMP差错报文


ICMP差错报文伴随着丢弃出错数据产生的。一旦IP发现出错,首先丢弃出错的IP数据报,之后发出ICMP差错报文。

ICMP差错报文不享受特别的优先级,作为一般数据传输。为了过呢更好的帮助源主机排错,ICMP差错报文中除了包含出错数据报的报头,而且还包括其数据区的前64bits的数据。

ICMP差错报文包括目的地不可达报文、超时报文、参数错误报文等。

2、ICMP差错检测


image.png


ICMP Exho消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文往返时间等。

3、ICMP控制报文


IP协议包括了拥塞控制和路由控制两个部分,ICMP提供了相应的控制报文:源抑制报文和重定向报文。

4、ICMP请求/应答报文


ICMP还提供了一些用于获得有用信息得的一些请求/应答报文:ECHO请求/应答报文和时间戳请求/应答报文。

5、ICMP重定向

image.png

主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。

网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在用一网段的另一个网关设备RTA,因为此转发路径是更优的路径。

RTB会向z主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文。

主机收到Redirect消息后,会向RTA发送报文,然后RTA会将该报文再转发给服务器A。

ICMP数据包格式:


image.png

三、ICMP的应用


Ping:

Ping是检测网络连通性的常用工具,同时也能够收集其他相关信息。用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试。

Traceroute:

Traceroute基于报文头中的TTL值来逐跳跟踪报文的转发路径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。该报文到达第一个节点后,TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。然后源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息,以此类推,直到报文到达目的地。这样,源端根据返回的报文中的信息可以跟踪到报文经过的每一个节点,并根据时间戳信息计算往返时间。Traceroute是检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路。

服务热线
4008-059-095
服务时间
周一至周五 08:30-18:00
优力普公众号
优力普抖音号