wireshark 是一个非常好用的抓包工具,使用 wireshark 工具抓包分析,是学习网络编程必不可少的一项技能。
原理
Wireshark使用的环境大致分为两种:一种是电脑直连互联网的单机环境,另外一种就是应用比较多的互联网环境,也就是连接交换机的情况。
-
**「单机情况」**下,Wireshark直接抓取本机网卡的网络流量;
-
**「交换机情况」**下,Wireshark通过端口镜像、ARP欺骗等方式获取局域网中的网络流量。
-
端口镜像:利用交换机的接口,将局域网的网络流量转发到指定电脑的网卡上。
-
ARP欺骗:交换机根据MAC地址转发数据,伪装其他终端的MAC地址,从而获取局域网的网络流量。
使用记录
选择与开发板相对应的网卡,打开 wireshark 之后,会给出你的网卡信息,让你选择一个要抓包的网卡如下图所示,选择自己开发板用来上网的网卡,双击就开始抓包了。
wireshark界面介绍
Wireshark 的主界面和一般的 Windows 软件很像,也有菜单栏,工具栏,地址栏等。还有一些它自己的像,显示过滤器、封包列表、封包详细信息、十六进制数据显示区等。如下图所示,选择完网卡之后其实就已经开始抓包了。
Wireshark 的主界面包含6个部分:
-
菜单栏:用于调试、配置
-
工具栏:常用功能的快捷方式
-
过滤栏:指定过滤条件,过滤数据包
-
数据包列表:核心区域,每一行就是一个数据包
-
数据包详情:数据包的详细数据
-
数据包字节:数据包对应的字节流,二进制
数据保存
也可以直接点击工具栏的保存按钮
显示过滤器的使用
合理的使用显示过滤器,有助于我们从下面的封包列表里快速找到我们要关注网络包。假如我们的开发板获取到的 IP 地址为 192.168.137.135 ,这样在显示过滤器里输入 ip.src == 192.168.137.135 or ip.dst == 192.168.137.135
然后点击右边的那个小箭头就会执行这个过滤条件。
过滤之后剩下的都是和我们限定的 IP 相关的包。
当然也有一些其他的过滤条件,比如:- 按 mac 地址过滤 eth.addr == 52:54:00:11:22:33
- 只显示 TCP 协议的数据包 tcp
- 只显示 UDP 协议的数据包 udp
封包列表介绍
从封包列表里我们也可以看到一些跟封包相关的信息,例如:来源的 ip,还有用到的通信协议等。
封包详细信息介绍
下面介绍一下封包详细信息那一栏和底下的十六进制数据是相通的。封包的详细信息就是从底下的实际数据解包显示出来的。下面这张图展示了封包的一些详细信息。