ICMP协议数据包捕获

来源:互联网 发布:大汉骑军 知乎 编辑:程序博客网 时间:2024/06/06 03:57

   今天使用wireshark调试一个PING功能,使用icmp过滤串,发现ping本地子网一个不存在的IP地址,wireshark没有捕获到任何的icmp数据包。而当ping另外一个子网不存在的IP地址,wireshark捕获到了ICMP数据。分析如下:

一. ping本地子网的IP地址

     1. 获取目标IP的Mac地址(ARP协议),若没有获取到目标IP的Mac地址,Ping失败

     2. 若获取目标IP的Mac地址成功,设置以太网头的源mac地址及目的mac地址分别为源IP的mac地址和目标IP的mac地址,发送ICMP数据包。

二. ping不同子网的IP地址

     1. 获取网关IP的Mac地址(ARP协议),若没有获取到目标IP的Mac地址,Ping失败

     2. 若获取网关IP的Mac地址成功,设置以太网头的源mac地址及目的mac地址分别为源IP的mac地址和网关IP的mac地址,发送ICMP数据包。

因为ping本地子网一个不存在的IP地址时首先发送ARP获取Mac地址,而我设置wireshark的过滤串为icmp,所以没有察觉到arp数据。而获取mac地址失败,故不会再发送icmp数据。

另外需要记住icmp协议也为ip协议,与tcp、udp为同级协议。

0 0
原创粉丝点击