当前位置: 首页 > news >正文

车载以太网测试-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或双击网卡开始抓包
    在这里插入图片描述
    抓包过程中,点击红色stop按钮可以停止抓包,点击绿色start按钮可以抛弃目前的流量重新抓包;
    在这里插入图片描述
    停止抓包后,选择File/文件,可以保存已经抓取的数据包;
    在这里插入图片描述
    也可以直接点击工具栏的保存快捷键
    在这里插入图片描述
  • 2 Wireshark的界面布局
    界面布局如下:
    在这里插入图片描述
  • 3 View菜单栏
    通过勾选可以控制Wireshark界面显示或不显示某些内容。
    在这里插入图片描述
  • 缩放功能:可以选择放大/缩小/正常比例的界面。
    可以通过View菜单栏进入:
    在这里插入图片描述

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

在这里插入图片描述

  • 查找功能
    查找功能:
    通过Edit – Find Packet进入,可以通过过滤器/字节流值或String值来查找特定的数据包。
    也可以通过工具栏快捷键进入。
    在这里插入图片描述
  • 跳转功能
    Back:跳转到上次选中的数据包。
    Forward:跳转到下一个选中的数据包。
    Go to Packet:跳转到指定的数据包(例如:编号为10的包)。
    Previous Packet:跳转到上一个数据包。
    Next Packet:跳转到下一个数据包。
    First Packet:首个
    Last Packet:尾个
    ……
    在这里插入图片描述

也可以通过工具栏快捷键进入
在这里插入图片描述

  • 列操作
    1)想要添加某个信息作为一列:
    在报文详情解析中,选中相应的信息,然后右键:Apply as Column。
    在这里插入图片描述
    在这里插入图片描述
    2)想要删除某个现有的列:
    在想要操作的列上右键,Remove Column。

在这里插入图片描述
3)想要暂时隐藏某个列:
在该列上右键,Hide Column,或
在显示列的任意位置右键,Displayed Columns中取消勾选
在这里插入图片描述

  • 帧标记

1)想要标记某帧:
在该帧上右键,Mark Packet (toggle),可高亮;
再次点击Mark Packet(toggle),可取消高亮

2)想要忽略某帧:
在该帧上右键,Ignore Packet (toggle),可高亮;
再次点击Ignore Packet(toggle),可取消高亮
注意:忽略某帧只能隐藏帧内容,不能隐藏帧
在这里插入图片描述
3)想要把某帧的时间作为时间基:
在该帧上右键,Set Time Reference(toggle),这一帧的时间会成为计算时间差的时间基;
注意:在此帧前的帧时间不会受到影响。
再次点击可取消
在这里插入图片描述

  • 导出特定的帧

1)想要导出单帧时:
选中一帧后,File-Export Specified Packets-Selected Packet
在这里插入图片描述
2)想要导出多帧时:
和M ark功能结合,先标记多个帧,然后File-Export Specified Packets-Marked Packets;
如果想导出大量帧,可以标记要导出的数据流的头和尾,然后选择First to last marked,或使用Range功能标记区域。
如果该区域内有通过Ignore忽略的包,那么可以在此处选择,在导出文件中把这些包删掉。
在这里插入图片描述

  • 解码工具
    在报文详情区域,Wireshark会根据所应用的协议,将数据包按照不同协议进行解析。
    在这里插入图片描述
    解析功能是由协议解析器完成的,解析方法封装在dll文件中,位置:\plugins\版本号…

两种情况:

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

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

1)手动添加dll文件。
将dll文件放置在 \plugins\版本号… 文件夹下。

2)重启Wireshark,选择菜单栏Analyze-Enabled Protocols。
如果dll添加成功,
此处应能找到dll中设定的协议名,如下图

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

  • 抓包过滤器
    抓包过滤器在抓包之前应用,逻辑是只抓取需要的数据包,丢弃其他的数据包。
    抓包过滤器的位置:
    在这里插入图片描述
    抓包过滤器的语法格式: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时使用,逻辑是隐藏不需要的数据包,不进行丢弃。
    显示过滤器的位置:
    在这里插入图片描述
    显示过滤器语法的五种元素:
    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的简单介绍,大家完成平常项目的测试分析是足够的了,希望能够对大家有所帮助!

相关文章:

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

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

扫雷雷雷雷雷雷雷

大家好啊&#xff0c;我是小象٩(๑ω๑)۶ 我的博客&#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家&#xff0c;希望能够和大家一起交流学习&#xff0c;共同进步。 这一节课我们不学习新的知识&#xff0c;我们来做一个扫雷小游戏 目录 扫雷小游戏概述一、扫雷游戏分析…...

图片分类实战:食物分类问题(含半监督)

食物分类问题 simple_class 1. 导入必要的库和模块 import random import torch import torch.nn as nn import numpy as np import os from PIL import Image #读取图片数据 from torch.utils.data import Dataset, DataLoader from tqdm import tqdm from torchvision impo…...

RuoYi框架添加自己的模块(学生管理系统CRUD)

RuoYi框架添加自己的模块&#xff08;学生管理系统&#xff09; 框架顺利运行 首先肯定要顺利运行框架了&#xff0c;这个我不多说了 设计数据库表 在ry数据库中添加表tb_student 表字段如图所示 如图所示 注意id字段是自增的 注释部分是后面成功后前端要展示的部分 导入…...

机器学习在地图制图学中的应用

原文链接&#xff1a;https://www.tandfonline.com/doi/full/10.1080/15230406.2023.2295948#abstract CSDN/2025/Machine learning in cartography.pdf at main keykeywu2048/CSDN GitHub 核心内容 本文是《制图学与地理信息科学》特刊的扩展评论&#xff0c;系统探讨了机…...

【JAVA架构师成长之路】【电商系统实战】第9集:订单超时关闭实战(Kafka延时队列 + 定时任务补偿)

30分钟课程&#xff1a;订单超时关闭实战&#xff08;Kafka延时队列 定时任务补偿&#xff09; 课程目标 理解订单超时关闭的业务场景与核心需求。掌握基于 Kafka 延时队列与定时任务的关单方案设计。实现高并发场景下的可靠关单逻辑&#xff08;防重复、幂等性&#xff09;。…...

《探秘课程蒸馏体系“三阶训练法”:解锁知识层级递进式迁移的密码》

在人工智能与教育科技深度融合的时代&#xff0c;如何高效地实现知识传递与能力提升&#xff0c;成为众多学者、教育工作者以及技术专家共同探索的课题。课程蒸馏体系中的“三阶训练法”&#xff0c;作为一种创新的知识迁移模式&#xff0c;正逐渐崭露头角&#xff0c;为解决这…...

K8s 1.27.1 实战系列(六)Pod

一、Pod介绍 1、Pod 的定义与核心设计 Pod 是 Kubernetes 的最小调度单元,由一个或多个容器组成,这些容器共享网络、存储、进程命名空间等资源,形成紧密协作的应用单元。Pod 的设计灵感来源于“豌豆荚”模型,容器如同豆子,共享同一环境但保持隔离性。其核心设计目标包括…...

Java CountDownLatch 用法和源码解析

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

Unity引擎使用HybridCLR(华佗)热更新

大家好&#xff0c;我是阿赵。   阿赵我做手机游戏已经有十几年时间了。记得刚开始从做页游的公司转到去做手游的公司&#xff0c;在面试的时候很重要的一个点&#xff0c;就是会不会用Lua。使用Lua的原因很简单&#xff0c;就是为了热更新。   热更新游戏内容很重要。如果…...

深度学习进阶:神经网络优化技术全解析

文章目录 前言一、优化问题的本质1.1 目标1.2 挑战 二、梯度下降优化算法2.1 基础SGD2.2 动量法2.3 Adam优化器 三、正则化技术3.1 L2正则化3.2 Dropout 四、学习率调度4.1 为什么要调度&#xff1f;4.2 指数衰减4.3 ReduceLROnPlateau 五、实战优化&#xff1a;MNIST案例5.1 完…...

肿瘤检测新突破:用随机森林分类器助力医学诊断

前言 你有没有想过,科技能不能在肿瘤检测中发挥巨大的作用?别着急,今天我们将带你走进一个“聪明”的世界,通过随机森林分类器进行肿瘤检测。对,你没听错,机器学习可以帮助医生更快、更准确地判断肿瘤是良性还是恶性,就像医生口袋里的“超级助手”一样,随时准备提供帮…...

DeepSeek学习 一

DeepSeek学习 一 一、DeepSeek是什么&#xff1f;二、Deepseek可以做什么&#xff1f;模型理解提问内容差异使用原则 模式认识三、如何提问&#xff1f;RTGO提示语结构CO-STAR提示语框架DeepSeek R1提示语技巧 总结 一、DeepSeek是什么&#xff1f; DeepSeek是一家专注通用人工…...

编程考古-Borland历史:《.EXE Interview》对Anders Hejlsberg关于Delphi的采访内容(上)

为了纪念Delphi在2002年2月14日发布的25周年(2020.2.12),这里有一段由.EXE杂志编辑Will Watts于1995年对Delphi首席架构师Anders Hejlsberg进行的采访记录。在这次采访中,Anders讨论了Delphi的设计与发展,以及即将到来的针对Windows 95的32位版本。 问: Delphi是如何从T…...

高并发之接口限流,springboot整合Resilience4j实现接口限流

添加依赖 <dependency><groupId>io.github.resilience4j</groupId><artifactId>resilience4j-spring-boot2</artifactId><version>1.7.0</version> </dependency><dependency><groupId>org.springframework.boot…...

电脑如何拦截端口号,实现阻断访问?

如果你弟弟喜欢玩游戏&#xff0c;你可以查询该应用占用的端口&#xff0c;结合以下方法即可阻断端口号&#xff0c;让弟弟好好学习&#xff0c;天天向上&#xff01; 拦截端口可以通过防火墙和路由器进行拦截 &#xff0c;以下是常用方法&#xff1a; 方法 1&#xff1a;使用…...

RK3588 安装ffmpeg6.1.2

在安装 ffmpeg 在 RK3588 开发板上时,你需要确保你的开发环境(例如 Ubuntu、Debian 或其他 Linux 发行版)已经设置好了交叉编译工具链,以便能够针对 RK3588 架构编译软件。以下是一些步骤和指导,帮助你安装 FFmpeg: 1. 安装依赖项 首先,确保你的系统上安装了所有必要的…...

SQL SELECT DISTINCT 语句

在 SQL 中&#xff0c;SELECT DISTINCT 语句用于从表中查询不重复的值。这对于需要从数据库检索唯一值时非常有用。DISTINCT 关键字会去除结果集中重复的行&#xff0c;只返回唯一的记录。 SELECT DISTINCT column1, column2, ... FROM table_name; column1, column2, ... 是…...

MELON的难题

MELON的难题 真题目录: 点击去查看 E 卷 200分题型 题目描述 MELON有一堆精美的雨花石(数量为n,重量各异),准备送给S和W。MELON希望送给俩人的雨花石重量一致,请你设计一个程序,帮MELON确认是否能将雨花石平均分配。 输入描述 第1行输入为雨花石个数: n,0 < n &l…...

Restful 接口设计规范

一、资源与 URL 1. 使用名词表示资源 URL 应该以名词为主&#xff0c;用来表示具体的资源&#xff0c;而不是动词。例如&#xff0c;/users 表示用户资源集合&#xff0c;/users/{id} 表示单个用户资源。 2. 采用复数形式 一般来说&#xff0c;资源的 URL 应该使用复数形式…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

JVM垃圾回收机制全解析

Java虚拟机&#xff08;JVM&#xff09;中的垃圾收集器&#xff08;Garbage Collector&#xff0c;简称GC&#xff09;是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象&#xff0c;从而释放内存空间&#xff0c;避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍

文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结&#xff1a; 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析&#xff1a; 实际业务去理解体会统一注…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...