这篇文章介绍一个好用的抓包工具Wireshark, 用来获取网络数据封包,包括HTTP、TCP、UDP等网络协议包。网络
开始界面app
wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你须要选择一个网卡。直接双击上面的某个网卡便可。运维
Wireshark 窗口介绍:tcp
WireShark 主要分为这几个界面:工具
1. Display Filter(显示过滤器), 用于过滤。spa
2. Packet List Pane(封包列表),显示捕获到的封包, 有源地址和目标地址,端口号。颜色不一样,表明。3d
3. Packet Details Pane(封包详细信息),显示封包中的字段。blog
4. Dissector Pane(16进制数据)。图片
5. Miscellanous(地址栏,杂项)。ip
经常使用操做按钮
①开始捕获,②中止捕获,③从新捕获
使用过滤是很是重要的,初学者使用wireshark时,将会获得大量的冗余信息,在几千甚至几万条记录中,以致于很难找到本身须要的部分。搞得晕头转向。
过滤器会帮助咱们在大量的数据中迅速找到咱们须要的信息。
好比上图的过滤方式,只会显示TCP端口为5005的通讯数据包。
注意:这里设置的是显示过滤是只显示,实际上wireshark仍是会抓取这个网卡上的全部数据包。
过滤器有两种:
1、显示过滤器
就是主界面上那个,用来在捕获的记录中找到所须要的记录。
2、捕获过滤器
用来过滤捕获的封包,以避免捕获太多的记录,在捕获->捕获过滤器中设置。这种适用于只抓取某个通道的通讯。
保存显示过滤
一般状况下,咱们在工做中每次打开wireshark都是抓取一样类型的数据,好比公司产品的默认TCP的端口是5005,也就是上面的tcp.port== 5005。咱们不但愿每次打开wireshark时都从新输入一遍过滤表达式,咱们能够保存下来。
再输入表达式后,点击左侧的书签按钮,选择保存此过滤器。
而后修更名字。
下次点击左侧书签,能够直接选择这个保存显示过滤条件,不用重复输入。
1. 协议过滤
好比TCP,只显示TCP协议。
2. IP 过滤
好比ip.src ==192.168.1.102 显示源地址为192.168.1.102。
ip.dst==192.168.1.102, 目标地址为192.168.1.102。
3. 端口过滤
tcp.port ==80, 端口为80的。
tcp.srcport == 80, 只显示TCP协议的为端口为80的。
4. Http模式过滤
http.request.method==”GET”, 只显示HTTPGET方法的。
5. 逻辑运算符为AND/ OR
经常使用的过滤表达式:
封包详细信息(Packet Details Pane)面板是咱们最重要的,用来查看协议中的每个字段。
各行信息分别为:
Frame: 物理层的数据帧概况。
Ethernet II: 数据链路层以太网帧头部信息。
Internet Protocol Version 4: 互联网层IP包头部信息。
Transmission Control Protocol: 传输层的数据段头部信息,此处是TCP。
Data:应用层的信息。
wireshark与对应的TCP/IP四层模型
详细的使用wireshark抓取数据包,分析TCP/IP协议簇的IP首部字节,TCP首部字节等等,请看专栏《STM32网络开发》。
开发中,咱们有时候须要抓取某个设备运行过程当中一段时间的数据,多是几天,甚至十几天。若是咱们按照上面的方法,抓取数据,运行一段时间,wireshark一直在抓取数据,运行几个小时后,在内存小的PC上就崩溃了。这个时候咱们须要wireshark抓取一段时间,自动保存一下。
设置方法:捕获->选项->输出。
在实际项目中,有些嵌入式设备并非和PC进行数据通讯,可能与另外一台嵌入式设备通讯。这时候咱们要借助带有端口镜像的交换机进行数据监控。以下图,将交换机端口配置成3是2的镜像,配合wireshark的自动保存功能,能够监控一个网络设备的所有数据包。
Wireshark的一个强大的功能在于他的统计工具,使用Wireshark的时候咱们有各类类型的工具可供选择。
好比协议分级。协议分级统计窗口显示为,捕捉文件包含的全部协议和树状分支;分组百分比永远按照的是相同协议层。
再好比能够展现TCP的吞吐量。
这些统计功能是wireshark的重要功能,运维工做人员,网络维护人员使用的比较多,嵌入式或单片机网络开发,仍是以TCP/IP协议簇抓包分析为主,详细的统计功能这里再也不详解。
点击查看本文所在的专辑,STM32F207网络开发