ICMP协议数据包捕获
2016-05-23 11:22
183 查看
今天使用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为同级协议。
一. 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为同级协议。
相关文章推荐
- 浅谈JAXB规范化标准
- 衬线字体和无衬线字体
- ios 给移动的控件添加点击事件
- 登录系统显示系统负载信息(思路)
- 简约安卓日期控件,左右滑动日历,点击选择日期
- java中遍历实体类属性和类型、赋值和取值
- 第四章 变量、作用域和内存问题
- 关于Fragment的那些事儿
- 《学习笔记》之JAVA设计模式--单例模式
- float类型图片降采样差值方法
- jeewx-qywx-api 1.0版发布,微信企业号Java SDK
- ARM编辑、编译工具
- leetcode 之Valid Palindrome(26)
- 客户端应用技术
- 插入排序,希尔排序,堆排序详解
- 树的总结
- 网络编程之listen与bind
- C/C++源代码到可执行程序的过程详解
- 2016 苹果企业级开发者教程最新版
- 深入理解node.js异步编程:基础篇