概述
ICMP Internet控制消息协议(Internet Control Message Protocol) 类似于IP的开路先锋,为IP探路并报告传输情况。ICMP有多种不同类型的参数设置,对应多种不同的信号,是一个功能强大的协议。
-
与IP一样,ICMP的报文也可能丢失,也是不可靠的协议。
-
ICMP数据报文错误后不再发送ICMP差错报文
-
ICMP与IGMP的区别:
IGMP是Internet 组管理协议(Internet Group Management Protocol),可用于直播等行为时节约带宽,TTL值为1,不能发出局域网。
ICMP是 Internet 控制信息协议(Internet Control Message Protocol),用于探测网络状况,报告错误。
结构
内部结构
首部
8字节64比特
1字节ICMP类型,代表报文类型
1字节代码字段,代表子类型
2字节校验和,是ICMP报文与IP头的校验和
4字节随机而变
数据
…不定长
封装
ICMP>IP>Ethernet
功能
ICMP查询报文
每类查询报文对应一对请求和应答。
请求和应答有不同的类型值
时间戳请求
获取对方时间
地址掩码请求
路由器询问
获取路由器信息,如MTU
回显请求
试探目标是否可达,ping命令使用此类型
ICMP差错报文
目的端不可达
数据包没有送到,有多种原因,依靠代码字段确定
源点抑制
目标网络拥塞,请减慢数据发送速度
超时
分为传输超时与组合超时
在路上跑了太久
等了很长时间分段的数据也没有拼合完整
参数问题
协议识别错误等
改变路由
有更好的路径可以用来传送数据包