发现:在承载ICMP的IP的报文中的协议字段的值是0x01作为ping命令的原理,自己通过ping同一宿舍的电脑但是失败的报文的场景:ICMP询问报文中的回送请求或回答报文中的回送报文:ABCDEFGHIJKLMNOP1206a8a0e123528d244c7d262080045002003c668b0000400168f60a6ccb320a6c3cb3508004d5a0001000161626364656646768696a6b6c6d6e6f70717273747576577616263646566676869直接分析ICMP报文部分:首部8字节:3C~3J,08类型:1个字节,0x08:表示这个ICMP的回送请求报文00代码:0x00:不知道什么意思4d5a检验和:不知道只是首部检验和还是整个ICMP报文的检验和0001这个要分开说明,分别是identifierBE和IdentifierLE,依然不知道是什么意思0001这个也要分开说明,分别是:sequencenumberBE和sequencenumberLE依然不知道什么意思,不过应该和这是第几个ping包有关下面的从3K~5J共32B的数据:却是:Abcdefghijklmnopqrstuvwabcdefghi经自己查看发送的request和reply基本上都是这个ascii码序列,但是也有的不是这个序列ICMP的询问报文中的回送请求或回答中的回答报文:ABCDEFGHIJKLMNOP128d244c7d262b870f431a008080045002003c008b00004001cef40a6ccb370a6c3cb32000055470001001461626364656646768696a6b6c6d6e6f70717273747576577616263646566676869直接看ICMP报文部分:首部8字节:3C~3J00类型:0x00,表示这个是ICMP回送请求或回答报文中的回答报文00代码:code,不知道什么意思5547检验和:不知道只是首部检验和还是整个ICMP报文的检验和0001这个要分开说明,分别是identifierBE和IdentifierLE,依然不知道是什么意思0014这个也要分开说明,分别是:sequencenumberBE和sequencenumberLE依然不知道什么意思,不过应该和这是第几个ping包有关,用于标识这是回送的第几个请求包下面的3K~5J的数据共32B,依然是:序列!abcdefg···ICMP的差错报告报文中的终点不可达报文,自己意外的捕获到了这种报文:ABCDEFGHIJKLMNOP128d244c7d26214144b1b53a70800450020038210900003e017a030a00021b0a6c3cb320303c6610000000045000099701340000011183a80a6ccb32effffffac9525076c00856557直接分析ICMP的报文,03类型:0x03,标识这个是终点不可达报文03代码:code,根据wireshark上的提示,这个应该是表达这是端口号不可达的意思c661检验和:根据wireshark的提示这个检验和检验正确00000000这四个字节,wireshark上面好像把这个忘了,应该是直接填充为0吧?下面是数据字段:3K~5F共28B字节数据,由所需要的报告的ip报文的首部和需要的报告的ip报文的数据的前8字节组成,这里就是有4500009970130000011183a80a6ccb32effffffa和c952076c00856557组成!