ICMP协议全方位解析一、ICMP的概念和作用ICMP是“InternetControlMessageProtocol”(Internet控制消息协议)的缩写
它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息
控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息
这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用
作用1)IP协议没有差错报告或者差错纠正机制
当遇到网络通不通、主机是否可达、路由是否可用等情况时,IP协议没有内建的机制可以通知发出该数据报的主机的例子2)IP协议还缺少主机和管理查询所需要的机制
主机有时候需要判断某个路由器或者对方主机是否活跃
有时网络管理员也需要来自其他主机或者路由器的信息
综上:ICMP的设计就是为了弥补IP协议的两个缺陷的:即:1)IP洗衣没有差错报告或者差错纠正机制;2)IP协议还缺少主机和管理查询所需机制二、ICMP的特征ICMP就像一个更高层的协议那样使用IP(即,ICMP消息被封装在IP数据报中)
然而,ICMP是IP的一个组成部分,并且所有IP模块都必须实现它
ICMP首部ICMP数据IP数据报首部IP数据报数据区帧首部帧数据区ICMP数据包的层次ICMP本身是一个网络协议,但是并不是直接传递给数据链路层,而是将ICMP消息封装在IP数据报中
三、ICMP报文ICMP报文有一个8字节的首部和一个可变长度的数据部分
前4个字节对所有的类型都是共同的,第一个8比特字段是ICMP的类型,它定义了报文的类型
代码字段指明了发送此特定报文类型的原因
最后一个共同的字段是检验和字段
首部的其余部分对每一种报文类型都是特定的
类型代号校验和ICMP数据(取决于消息类型)………………ICMP-报文格式ICMP报文可划分为两大类:差错报告报文和查询报文差错报告报