ICMP(Internet Control Message Protocol)
是网络层的Internet控制报文协议。ICMP协议用来在网络设备间传递各种差错和控制信息,它对于收集各种网络信息、诊断和排除各种网络故障具有至关重要的作用。
它是TCP/IP协议簇的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
一、ICMP重定向
ICMP Redirect在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由,路由器的最优路由路径转发。
二、ICMP差错检验
ICMP Echo Request和ICMP Echo Reply分别用来查询和响应某些信息,来差错检测。
常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文响应时间等。
三、ICMP错误报告
当网络设备无法访问目标时,会自动发送ICMP目的不可达报文到发送端设备。
ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。
1、如果网络中发生了环路,导致报文在网络中循环,且最终TTL超时,这种情况下网络设备会发送TTL超时消息给发送端设备。
2、如果目的地不可达,则中间的网络设备会发送目的不可达消息给发送端设备。目的不可达的情况有多种, 如果是网络设备无法找到目的网络,则发送目的网络不可达消息;如果网络设备无法找到目的网络中的目的主机,则发送目的主机不可达消息。
ICMP报文格式
Type表示ICMP消息类型,Code表示同一消息类型中的不同信息。
閱讀更多 ThunderMoon 的文章