8.3 Wireshark
Wireshark是一款网络抓包分析软件。Wireshark获取经过网卡的网络分组数据,并尽可能显示最为详细的分组数据分析结果。CoAP的请求响应过程也可以通过Wireshark抓取,Wireshark不但可以抓取CoAP分组数据,还可以准确地分析CoAP分组数据中各种细节。
8.3.1 Wireshark安装
Wireshark官网提供Windows 32位和64位的安装文件,用户可根据电脑的实际配置安装合适的版本。Wireshark不但提供安装包也提供源代码,通过源代码的方式用户可在Linux PC主机中安装Wireshark。虽然CoAP有不少实现框架,但有不少CoAP框架仅能在Linux平台中运行。在这种情况下,往往需要在Linux主机中安装Wireshark以便分析CoAP。
下面介绍如何在Linux PC主机中通过源代码方式安装Wireshark。在Linux PC主机中通过源代码方式安装软件的过程大致经过configure、make和make install这三部分。一般情况下make install需要把编译生成的库文件和可执行文件复制到根目录指定位置,所以往往需要超级权限。安装Wireshark之前需要在Linux主机中安装必要的依赖包,由于每一个Linux发行版都不完全相同,用户需要根据实际情况安装必要的依赖包。
sudo apt-get build-dep wireshark
sudo apt-get install qt5-default
sudo apt-get install libssl-dev
此处的Wireshark源代码版本为2.0.3,请根据源代码的具体版本替换此处的2.0.3。
# 解压安装包
tar -jxvf wireshark-2.0.3.tar.bz2 # 进入源代码目录cd wireshark-2.0.3
# 生成配置文件, 使能SSL功能./autogen.sh
./configure --with-ssl --enable-setcap-install
# 编译make
# 安装wireshark sudo make install
8.3.2 Wireshark使用
Wireshark在Windows和Linux中的使用极为相似,若在Linux中打开Wireshark可先新建一个控制台并在控制台中输入wireshark保持控制台处于运行状态即可。开始抓取CoAP数据之前需要设置正确的网卡,请根据实际情况选择有线网卡或无线网卡。打开Wireshark之后,选择“菜单栏→捕获→选项”。Windows中网卡的名称和Linux中的略有差别,Windows中有线网卡的名称为“本地连接”(见图8-20),而Linux中有线网卡的名称为“eth0”(见图8-21)。
图8-20 Windows中选择网卡
图8-21 Linux中选择网卡
为了更方便地分析CoAP分组数据,需要在Wireshark中设置合适的过滤规则。Wireshark的过滤器设置位于工具栏下方。如图8-22所示。
可通过多种方式过滤CoAP分组报文,这些方法包括:
·在过滤器中输入“coap”&#x