目录

车载以太网测试-3Wireshark介绍

车载以太网测试-3【Wireshark介绍】

1 摘要

Wireshark 是一款开源的网络协议分析工具,广泛用于网络故障排查、协议分析、网络安全检测等领域。它能够捕获网络数据包,并以详细的、可读的格式显示这些数据包的内容。广泛应用于车载网络测试,是车载网络测试工程师必须掌握的工具。

2 Wireshark介绍

2.1主要功能与使用场景

2.1.1 功能

  1. 数据包捕获

    • 支持从多种网络接口(如以太网、Wi-Fi、蓝牙等)捕获数据包。
    • 可以实时捕获或从文件中读取已捕获的数据包。
  2. 协议解析

    • 支持解析数百种网络协议(如 TCP/IP、HTTP、DNS、FTP 等)。
    • 能够深入解析协议头部和负载,帮助用户理解网络通信的细节。
  3. 过滤功能

    • 提供强大的显示过滤器和捕获过滤器,帮助用户快速定位和分析感兴趣的数据包。
    • 支持基于协议、IP地址、端口号等多种条件的过滤。
  4. 统计和分析

    • 提供多种统计工具,如流量图、会话统计、协议分层统计等。
    • 支持专家系统,自动检测潜在的网络问题(如重传、乱序等)。
  5. 文件导出

    • 支持将捕获的数据包导出为多种格式(如 PCAP、CSV、JSON 等),便于进一步分析或分享。

2.1.2 使用场景

  1. 网络故障排查

    • 通过分析数据包,定位网络延迟、丢包、连接失败等问题。
  2. 网络安全检测

    • 检测异常流量、潜在攻击(如 DDoS、端口扫描等)和恶意软件活动。
  3. 协议学习

    • 帮助网络工程师和开发者理解网络协议的实现细节。
  4. 应用调试

    • 分析应用程序的网络通信,排查通信问题或优化性能。

2.2安装与使用

2.2.1 安装

  • Wireshark 支持 Windows、macOS 和 Linux 操作系统。
  • 可以从官方网站(https://www.wireshark.org)下载安装包。
  • 在 Linux 上,也可以通过包管理器安装(如 apt-get install wireshark )。

2.2.2 基本使用

  • 1 快速抓包

    在主界面选择想抓包的网卡,点击Start或双击网卡开始抓包

    https://i-blog.csdnimg.cn/direct/53fa4c0015794e00bcd4ee4e47259593.png

    抓包过程中,点击红色stop按钮可以停止抓包,点击绿色start按钮可以抛弃目前的流量重新抓包;

    https://i-blog.csdnimg.cn/direct/70b599a54c1347a6a8954c871c3185c8.png

    停止抓包后,选择File/文件,可以保存已经抓取的数据包;

    https://i-blog.csdnimg.cn/direct/67eeb108a9f44ad5aa96b78442f03d02.png

    也可以直接点击工具栏的保存快捷键

    https://i-blog.csdnimg.cn/direct/b41771676c0f4963bafcaf4e80f8df1b.png

  • 2 Wireshark的界面布局

    界面布局如下:

    https://i-blog.csdnimg.cn/direct/2c5e6afac62a4edc8d23dca4001d7616.png

  • 3 View菜单栏

    通过勾选可以控制Wireshark界面显示或不显示某些内容。

    https://i-blog.csdnimg.cn/direct/624fa1eff5d94d4bba572738148bdaad.png

  • 缩放功能 :可以选择放大/缩小/正常比例的界面。

    可以通过View菜单栏进入:

    https://i-blog.csdnimg.cn/direct/28a645f54fca4c48b738cb18e66456fe.png

或通过工具栏快捷键进入:

https://i-blog.csdnimg.cn/direct/d3a423d7e1f241cc96039acfaab89a00.png

  • 查找功能

    查找功能:

    通过Edit – Find Packet进入,可以通过过滤器/字节流值或String值来查找特定的数据包。

    也可以通过工具栏快捷键进入。

    https://i-blog.csdnimg.cn/direct/6f44aac7028b4754abb991949e7d9fa0.png

  • 跳转功能

    Back:跳转到上次选中的数据包。

    Forward:跳转到下一个选中的数据包。

    Go to Packet:跳转到指定的数据包(例如:编号为10的包)。

    Previous Packet:跳转到上一个数据包。

    Next Packet:跳转到下一个数据包。

    First Packet:首个

    Last Packet:尾个

    ……

    https://i-blog.csdnimg.cn/direct/1a8ca16edc9b4648ab169d2dbf57d572.png

也可以通过工具栏快捷键进入

https://i-blog.csdnimg.cn/direct/56118f83a48a46cbb48589047d4493b2.png

  • 列操作

    1)想要添加某个信息作为一列:

    在报文详情解析中,选中相应的信息,然后右键:Apply as Column。

    https://i-blog.csdnimg.cn/direct/6f7d8c136d3a4b6f8a6fbcc6cd0d6b2b.png

    https://i-blog.csdnimg.cn/direct/fb6947da8e7a4f2ab808b647a2e55d8b.png

    2)想要删除某个现有的列:

    在想要操作的列上右键,Remove Column。

https://i-blog.csdnimg.cn/direct/9e7af6e1f57f4ed592daa26c5906c797.png

3)想要暂时隐藏某个列:

在该列上右键,Hide Column,或

在显示列的任意位置右键,Displayed Columns中取消勾选

https://i-blog.csdnimg.cn/direct/1bc6f9e1362d45de9595736279815ec9.png

  • 帧标记

1)想要标记某帧:

在该帧上右键,Mark Packet (toggle),可高亮;

再次点击Mark Packet(toggle),可取消高亮

2)想要忽略某帧:

在该帧上右键,Ignore Packet (toggle),可高亮;

再次点击Ignore Packet(toggle),可取消高亮

注意:忽略某帧只能隐藏帧内容,不能隐藏帧

https://i-blog.csdnimg.cn/direct/168090157e9046989375eb9018bb7cfa.png

3)想要把某帧的时间作为时间基:

在该帧上右键,Set Time Reference(toggle),这一帧的时间会成为计算时间差的时间基;

注意:在此帧前的帧时间不会受到影响。

再次点击可取消

https://i-blog.csdnimg.cn/direct/27542c7c2e3249248168fed4654efb82.png

  • 导出特定的帧

1)想要导出单帧时:

选中一帧后,File-Export Specified Packets-Selected Packet

https://i-blog.csdnimg.cn/direct/f90d6273389f4e1fba2cd4f5f2b42164.png

2)想要导出多帧时:

和M ark功能结合,先标记多个帧,然后File-Export Specified Packets-Marked Packets;

如果想导出大量帧,可以标记要导出的数据流的头和尾,然后选择First to last marked,或使用Range功能标记区域。

如果该区域内有通过Ignore忽略的包,那么可以在此处选择,在导出文件中把这些包删掉。

https://i-blog.csdnimg.cn/direct/7afa0ab229c347ed930d464ff615e13f.png

  • 解码工具

    在报文详情区域,Wireshark会根据所应用的协议,将数据包按照不同协议进行解析。

    https://i-blog.csdnimg.cn/direct/a9102aa5cab14421a366b30c0ea626fe.png

    解析功能是由协议解析器完成的,解析方法封装在dll文件中,位置:\plugins\版本号…

两种情况:

Wireshark的解释器并不是每一次都能正确地分辨协议,需要用户手动重新解析;

有时,我们需要自行添加一些dll解析器,用于辅助解析一些Wireshark不自带的车载以太网协议。

1)手动添加dll文件。

将dll文件放置在 \plugins\版本号… 文件夹下。

2)重启Wireshark,选择菜单栏Analyze-Enabled Protocols。

如果dll添加成功,

此处应能找到dll中设定的协议名,如下图

https://i-blog.csdnimg.cn/direct/c820bd63d2f14e2ba3a36d67ef5c9825.png

https://i-blog.csdnimg.cn/direct/a2826660d2374b95b807f56e776d3d1a.png

在dll添加成功后,如果需要的报文依然没有正确解码,可以点击该报文,右键Decode as,选择需要的协议,此格式的报文将都以此协议被解码。

https://i-blog.csdnimg.cn/direct/77c2b0aa7f124858a4d5e5926e2a2daf.png

  • 抓包过滤器

    抓包过滤器在抓包之前应用,逻辑是只抓取需要的数据包,丢弃其他的数据包。

    抓包过滤器的位置:

    https://i-blog.csdnimg.cn/direct/bbb78c7dcd044340b6e0a72840ca078e.png

    抓包过滤器的语法格式:BPF(伯克利封包过滤器)

    BPF语法的四元素:

    1)类型:主机(host)、网段(net)、端口(port)

    2)方向:源(src)、目标(dst)

    3)协议:ether、tcp、udp、http等

    4)逻辑运算符:与(&&)、或(||)、非(!)

    将此四元素随意组合即可

    src host 192.168.1.1 && dst port 30490

    tcp || udp

  • 显示过滤器

    显示过滤器在抓包过程中或者查看trace时使用,逻辑是隐藏不需要的数据包,不进行丢弃。

    显示过滤器的位置:

    https://i-blog.csdnimg.cn/direct/9cdea43cf34943e9b696d23bb1a78707.png

    显示过滤器语法的五种元素:

    1)IP:ip.addr、ip.src、ip.dst

    2)端口:tcp.port、tcp.srcport、tcp.dstport

    3)协议:tcp、udp、http等

    4)比较运算符:>、<、==、>=、<=、!=

    5)逻辑运算符:与(and)、或(or)、非(not)、异或(xor)

    将此五元素随意组合即可

    ip.src == 192.168.1.1

    tcp.dstport == 8080

3 总结

以上是Aireshark的简单介绍,大家完成平常项目的测试分析是足够的了,希望能够对大家有所帮助!