一、特点:
(1)ICMP本身是网络层的一个协议,但是它的报文不是直接传送给数据链路层,而是要封装成IP数据报,然后在传送给数据链路层。
(2)从协议体系上看,ICMP的差错和控制信息传输只是要解决IP协议可能出现的不可靠问题,它不具有普遍意义上的传输机制,它也不是传输层赖以存在的基础,它不能 独立于IP协议而单独存在,因此把它归于IP协议的一个部分,而归于IP协议体系。
(3)ICMP协议的设计初衷是用于IP协议在执行过程中的出错报告,严格的说是路由器向源主机报告传输差错的原因。
(4)ICMP不能纠正差错,只能报告差错。
二、ICMP数据报格式
|<--------------------------------------- 数据域----------------------------------->|
IP报头(20B) | type字(1B) | code字段(1B) | checksum字段(2B) | ICMP数据及整个IP数据段 |
(1)ICMP信息 必须全部封装在IP数据报的 数据域中,长度必须限制在576B以内。
(2)根据IP数据报报头的规定, 报头的协议字段值为1,所以接收端的路由器及主机根据报头的协议字段值为1,来判断改该IP数据报携带ICMP信息,为ICMP数据报。
三、ICMP报文分类
可分为分两大类:差错报告报文、查询报文
差错报告报文分5类:
1、目的站不可到达
2、源站抑制
3、超时
4、参数问题
5、改变路由
查询报文分四类:
1、回送请求与回答
2、 时间戳请求与回答
3、地址掩码请求与回答
4、 路由器询问和通告