ICMP互联网控制消息协议
1、定义
ICMP,Internet Control Message Protocol,即互联网控制消息协议,属于网络层协议,主要 用于IP主机和路由器之间传递控制消息,如网络错误报告和诊断信息ICMP报文通常封装在IP数据包中,但 不承载用户数据。它对于网络设备的故障诊断、网络管理、路由选择等至关重要。
2、工作原理
ICMP报文在IP数据包中作为数据部分传输, 当网络设备如路由器或主机在处理数据包时发现问题,会使用ICMP向数据包的源端发送差错报告。这些差错报告包括网络不可达、主机不可达、协议不可达等多种类型,帮助源端了解数据包未能送达的原因,并进行相应处理。
3、报文格式
ICMP报文格式包括类型(Type)、代码(Code)、校验和(Checksum)等字段,类型和代码组合用于指示报文的特定类型,如差错报告或查询消息。校验和用于检测报文在传输过程中是否出现错误。
4、应用
1.Ping命令
Ping命令利用ICMP协议检测网络连通性, 通过发送ICMP回显请求(Echo Request)报文并等待回显应答(Echo Reply)报文来确认目标主机是否可达及网络的延迟情况。
2.Traceroute命令
Traceroute命令使用ICMP协议 跟踪数据包从源主机到目标主机的传输路径,通过发送一系列具有 递增TTL值的ICMP报文,记录每个跳点的响应时间,从而确定数据包经过的路由器。
3.错误报告
ICMP差错报告报文用于通知源主机数据包无法到达的原因,如目标不可达、超时等,帮助网络管理员快速诊断和解决问题。
4.MTU发现
ICMP支持路径MTU发现功能, 允许发送方确定到目标主机的路径MTU大小,以避免IP分片的发生。