1、ICMP格式
ICMP是(Internet Control Message Protocol)Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
ICMP是因特网的标准协议,但ICMP不是高层协议,而是IP层的协议。所以ICMP有一个IP层的头,Protocol=1,ICMP协议。
2、ICMP测试
进行测试:TYPE=8,CODE=0, echo test.
抓包分析:上面进行了4次ping,所以数据包是8个,一来一回4组ICMP数据包。
对应IP包的格式,进行对应分解。IP包的数据部分,就是ICMP包的起始。
发送的包,ICMP部分,type=8,code=0,request,序号37/9472.
32bit的ICMP就是Header部分,下面是Identifier 1和256,这个字段是为了标记序号,匹配接收到的响应和发送包。
在linux里面每次都是唯一的值,并且自增,用来标记每次的发送和接收包。在Windows里面,是固定值。
响应的包,ICMP部分,type=0,code=0,Echo reply,是request answer,序号37/9472.
3、ICMP 类型表
https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol#Control_messages