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

别再只会ping了!用Wireshark亲手抓个包,看看你的网络请求到底说了啥

从零开始用Wireshark解剖网络数据包一次真实的网络侦探之旅每次点击网页或发送消息时你的设备都在与远方服务器进行着复杂的对话。这些对话被封装成数据包像信件一样在网络中传递。但你是否好奇过这些信件里究竟写了什么今天我们就用Wireshark这把手术刀亲手解剖一个最常见的ping数据包看看网络通信的底层秘密。1. 准备工作搭建你的网络实验室在开始解剖之前我们需要准备好工具和环境。就像外科医生需要无菌手术室一样网络侦探也需要一个干净的分析环境。1.1 安装WiresharkWireshark是开源的网络协议分析工具支持Windows、macOS和Linux。安装过程非常简单# 在Ubuntu/Debian上安装 sudo apt update sudo apt install wireshark # 在CentOS/RHEL上安装 sudo yum install wireshark # macOS用户可以通过Homebrew安装 brew install --cask wireshark注意安装过程中可能会提示是否允许非超级用户捕获数据包。建议选择是这样可以避免每次都需要sudo权限运行。1.2 基础网络知识准备理解数据包之前我们需要了解几个关键概念MAC地址设备的物理地址就像你的身份证号码IP地址设备在网络中的逻辑地址类似邮寄地址协议通信双方约定的规则比如IPv4、ICMP2. 捕获第一个数据包像侦探一样设伏现在让我们开始捕获真实的网络流量。我们将以最简单的ping命令为例看看这个看似简单的操作背后发生了什么。2.1 设置捕获过滤器为了避免捕获过多无关数据我们可以设置捕获过滤器打开Wireshark选择正确的网络接口通常是Wi-Fi或有线网卡在捕获过滤器中输入icmp只捕获ICMP协议数据包点击开始按钮开始捕获2.2 生成目标流量打开终端执行一个简单的ping命令ping -c 1 www.example.com这个命令会向example.com发送一个ICMP回显请求ping并等待一个回复。3. 解剖数据包逐层揭开网络协议的面纱捕获到数据包后我们终于可以开始解剖了。Wireshark的界面分为三个主要部分数据包列表显示捕获的所有数据包协议树显示选中数据包的协议层次结构原始字节显示数据包的二进制形式3.1 以太网帧数据包的信封点击我们捕获的ping数据包首先看到的是以太网帧层字段值说明目的MAC58:b3:8f:dd:70:02数据包要发送到的设备物理地址源MAC10:3d:1c:46:7a:80发送数据包的设备物理地址类型0x0800表示载荷是IPv4数据包这就像信封上的寄件人和收件人地址确保数据包能在本地网络中正确传递。3.2 IPv4头部网络层的导航系统展开IPv4部分我们会看到更多关键信息Internet Protocol Version 4, Src: 10.0.237.92, Dst: 93.184.216.34 0100 .... Version: 4 .... 0101 Header Length: 20 bytes (5) Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT) Total Length: 60 Identification: 0x17e5 (6117) Flags: 0x00 Time to Live: 64 Protocol: ICMP (1) Header checksum: 0x7a5d [validation disabled] Source Address: 10.0.237.92 Destination Address: 93.184.216.34几个关键字段解释TTL(Time to Live): 数据包最多能经过多少跳路由器每经过一个减1到0则丢弃源/目的IP: 通信的起点和终点协议字段: 指示载荷是哪种协议这里是ICMP3.3 ICMP内容ping的核心协议最后是ICMP协议部分这是我们ping命令的核心Internet Control Message Protocol Type: 8 (Echo (ping) request) Code: 0 Checksum: 0x4d4a [correct] Identifier (BE): 1 (0x0001) Identifier (LE): 256 (0x0100) Sequence number (BE): 17 (0x0011) Sequence number (LE): 4352 (0x1100) Data (32 bytes)ICMP是网络中的信使负责传递各种控制消息。在ping中它主要用来测试连通性。4. 实战应用用Wireshark解决真实网络问题理解了数据包结构后我们来看看如何用这些知识解决实际问题。4.1 诊断网络延迟问题假设你的应用偶尔响应很慢可以捕获应用通信时的数据包关注TCP重传分析-专家信息检查DNS查询时间观察TCP握手和挥手过程常见延迟原因包括DNS查询慢TCP连接建立时间长中间网络设备性能问题应用服务器响应慢4.2 分析数据包丢失通过Wireshark可以发现重复的ACK可能表示数据包丢失零窗口大小说明接收方处理不过来大量RST标志可能意味着连接问题4.3 高级过滤技巧Wireshark支持强大的显示过滤器# 只显示特定IP的流量 ip.addr 192.168.1.1 # 显示HTTP请求 http.request # 显示重传的数据包 tcp.analysis.retransmission # 显示慢速网络迹象 tcp.analysis.window_update or tcp.analysis.zero_window5. 深入理解网络协议的交互过程让我们更深入地看看几个关键协议如何协同工作。5.1 ARP地址解析协议在发送IP数据包前设备需要知道目标IP对应的MAC地址。这就是ARP的工作发送ARP请求谁有192.168.1.1请告诉192.168.1.2目标设备回复192.168.1.1在MAC地址xx:xx:xx:xx:xx:xx在Wireshark中过滤arp可以看到这个过程。5.2 TCP三次握手可靠的TCP连接需要三次握手客户端发送SYN服务端回复SYN-ACK客户端发送ACK在Wireshark中可以用tcp.flags.syn1 and tcp.flags.ack0过滤SYN包。5.3 DNS查询域名到IP的转换过程客户端发送DNS查询DNS服务器回复答案过滤dns可以看到这些请求和响应。6. Wireshark高级功能探索除了基本分析Wireshark还提供许多强大功能。6.1 流量统计和分析通过统计菜单可以查看会话列表Conversations分析协议分层Protocol Hierarchy生成流量图IO Graph6.2 自定义着色规则可以根据条件给数据包着色点击视图-着色规则添加新规则如将重传数据包设为红色保存规则供以后使用6.3 导出特定数据可以从捕获文件中导出特定数据导出特定会话的所有数据包导出HTTP对象如图片、文档导出分组字节为原始文件7. 安全分析与注意事项使用Wireshark时需要注意一些安全事项。7.1 隐私考虑网络捕获可能包含敏感信息登录凭证特别是HTTP明文传输个人数据商业机密建议只在受控环境中捕获不分享包含敏感信息的捕获文件使用SSL/TLS加密敏感通信7.2 性能影响长时间捕获大量流量可能消耗大量内存占用磁盘空间影响网络性能可以使用环形缓冲区限制捕获大小点击捕获-选项在输出选项卡中设置环形缓冲区定义文件数量和最大大小8. 真实案例解决间歇性连接问题去年我在排查一个奇怪的问题时用户报告应用偶尔会卡住几秒。通过Wireshark捕获我发现每隔约30秒就有一次TCP零窗口事件进一步分析发现是防火墙的过于激进的流量整形调整防火墙设置后问题解决这个案例展示了Wireshark在实际排障中的价值——它能揭示肉眼不可见的网络行为。

相关文章:

别再只会ping了!用Wireshark亲手抓个包,看看你的网络请求到底说了啥

从零开始用Wireshark解剖网络数据包:一次真实的网络侦探之旅 每次点击网页或发送消息时,你的设备都在与远方服务器进行着复杂的对话。这些对话被封装成数据包,像信件一样在网络中传递。但你是否好奇过,这些"信件"里究竟…...

Java开发中Lombok插件失效的常见问题与解决方案

1. 为什么你的Lombok突然罢工了? 最近在升级IDEA后,突然发现项目里到处都是"找不到符号"的错误提示,特别是那些用了Slf4j注解的地方,log变量全都报红。这种情况我遇到过不止一次,每次都能让开发效率直接归零…...

HDMI/DP/TypeC接口检测的硬件实现与设计考量

1. HDMI接口检测的硬件实现与设计要点 HDMI作为最普及的数字视频接口,其检测电路设计直接影响设备兼容性。实际工程中常见两种检测方案:5V电源检测和DDC地线检测。我经手过的显示器项目中,90%的兼容性问题都源于检测电路设计不当。 先说5V检测…...

八大网盘直链获取工具:告别限速,拥抱高速下载体验

八大网盘直链获取工具:告别限速,拥抱高速下载体验 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘…...

Langchain实战:如何用ChatGLM-4搭建你的第一个AI对话机器人(附完整代码)

Langchain实战:如何用ChatGLM-4搭建你的第一个AI对话机器人(附完整代码) 最近两年,大模型技术以惊人的速度渗透到各个领域。从智能客服到内容创作,从代码生成到数据分析,AI对话机器人正在重塑人机交互的方式…...

终极指南:如何安全迁移艾尔登法环游戏存档

终极指南:如何安全迁移艾尔登法环游戏存档 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 你是否曾经因为更换电脑或重装系统而担心丢失《艾尔登法环》数十小时的游戏进度?手动复制存档…...

UDOP-largeGPU利用率提升:懒加载+推理缓存降低峰值显存占用

UDOP-large GPU利用率提升:懒加载推理缓存降低峰值显存占用 1. 引言:当大模型遇上显存瓶颈 如果你部署过大型AI模型,大概率遇到过这个头疼的问题:模型加载时,显存瞬间被占满,GPU利用率却低得可怜。这就像…...

COCO数据集常见问题解答:下载慢?解压失败?目录结构不对?

COCO数据集实战避坑指南:从下载到配置的全流程解决方案 当你第一次接触COCO数据集时,可能会被它庞大的规模和复杂的目录结构吓到。作为计算机视觉领域最常用的基准数据集之一,COCO确实为模型训练和评估提供了丰富的资源,但在实际使…...

分析管理化技术数据挖掘与预测分析

数据驱动决策:管理技术中的挖掘与预测 在数字化时代,企业每天生成海量数据,如何从中提取价值成为关键。分析管理化技术通过数据挖掘与预测分析,帮助组织优化运营、降低成本并提升竞争力。数据挖掘从历史数据中发现模式&#xff0…...

基于File-Based App开发MVP项目托

Issue 概述 先来看看提交这个 Issue 的作者是为什么想到这个点子的,以及他初步的核心设计概念。?? 本 PR 实现了 Apache Gravitino 与 SeaTunnel 的集成,将其作为非关系型连接器的外部元数据服务。通过 Gravitino 的 REST API 自动获取表结构和元数据&…...

【QML】自定义模块的创建与单例模式实践指南

1. 为什么需要自定义QML模块? 在QtQuick应用开发中,随着项目规模扩大,把所有QML文件堆在一起会变得难以维护。想象一下你家的工具箱——如果所有工具都散落在抽屉里,找起来肯定费劲。而自定义模块就像给工具分门别类:螺…...

当JetBrains IDE试用期突然到期,你该怎么办?

当JetBrains IDE试用期突然到期,你该怎么办? 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 深夜两点,你正专注地调试一个棘手的bug,手指在键盘上飞舞,代…...

dspic33硬件设计避坑指南:IO口上下拉与开漏配置的5个常见错误

dsPIC33硬件设计避坑指南:IO口上下拉与开漏配置的5个常见错误 在嵌入式硬件设计中,dsPIC33系列微控制器因其高性能和丰富的外设资源而广受欢迎。然而,即使是经验丰富的硬件工程师,在PCB设计阶段也常常会在IO口的上下拉电阻和开漏输…...

AWS WAF 自定义扫描器 User-Agent 拦截规则:从设计到踩坑的完整实践

通过自定义 Regex Pattern Set 拦截已知扫描器工具的 User-Agent,减少恶意扫描流量。本文记录完整的规则设计、部署、误拦截排查与修复过程,含生产事故复盘。 目录 背景与目标 方案设计 规则创建与部署 效果验证 跨 WebACL 部署与生产事故 事故复盘与修复...

Xilinx DSP48 Macro流水线深度怎么调?一个配置项让你的设计频率翻倍

Xilinx DSP48 Macro流水线深度优化实战:突破性能瓶颈的关键策略 在高速数字信号处理领域,FPGA设计者经常面临一个经典难题——如何在有限的硬件资源下实现更高的运算频率。当我们使用Xilinx DSP48 Macro进行复杂运算时,默认的"Auto"…...

不满意Oh My Zsh启动卡顿,来试试Starship吧坷

pagehelper整合 引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码 GetMapping("/list/{pageNo}") public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数…...

接口测试——pytest框架续集倚

智能体时代的代码范式转移与 C# 的战略转型 传统的 C# 开发模式,即所谓的“工程导向型”开发,要求开发者创建一个复杂的项目结构,包括项目文件(.csproj)、解决方案文件(.sln)、属性设置以及依赖…...

Jasmine漫画浏览器:跨平台阅读的终极解决方案,打造你的个人漫画图书馆

Jasmine漫画浏览器:跨平台阅读的终极解决方案,打造你的个人漫画图书馆 【免费下载链接】jasmine A comic browser,support Android / iOS / MacOS / Windows / Linux. 项目地址: https://gitcode.com/gh_mirrors/jas/jasmine 你是否经…...

所谓面试造火箭,其实只看这4种能力

文章目录前言一、先搞清楚:面试官到底在焦虑什么?二、第一种能力:把复杂问题剁碎了的本事2.1 什么叫"问题拆解"?2.2 怎么练这个能力?三、第二种能力:承认自己不知道的底气3.1 "不知道"…...

Windows经典游戏兼容性修复完整方案:DDrawCompat让老游戏在现代系统重获新生

Windows经典游戏兼容性修复完整方案:DDrawCompat让老游戏在现代系统重获新生 【免费下载链接】DDrawCompat DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11 项目地址: https://gitcode.com…...

如何快速掌握FanControl:Windows风扇智能控制的终极免费方案

如何快速掌握FanControl:Windows风扇智能控制的终极免费方案 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trend…...

如何用番茄小说下载器构建个人数字图书馆:5步快速入门指南

如何用番茄小说下载器构建个人数字图书馆:5步快速入门指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在网络小说阅读日益流行的今天,你是否遇到过这样的困扰&a…...

基于Docker的NextCloud与OnlyOffice无缝集成方案

1. 为什么需要NextCloud与OnlyOffice集成 如果你正在寻找一套私有化的协同办公解决方案,NextCloudOnlyOffice的组合绝对值得考虑。NextCloud作为开源的云存储平台,提供了文件管理、日历、联系人等基础功能,而OnlyOffice则是功能强大的在线文档…...

SBTI打不开?手把手教你部署自己的人格测试(附源码链接)

网站打不开?部署自己的SBTI人格测试(附源码链接) 最近在B站刷到了一个很火的SBTI人格测试,觉得挺有意思的。作为一名开发者,我决定自己动手实现一个可以本地部署的版本。本文将带你从零开始,用Flask框架搭…...

Zemax多重结构仿真分光板的光路设计与优化

1. 分光板光路仿真的核心挑战 在光学系统设计中,分光板是实现光束分束的关键元件。传统单一路径仿真无法准确模拟分光板同时产生的透射和反射光路,这正是Zemax多重结构功能大显身手的地方。我曾在激光雷达接收端设计中,就遇到过需要同时分析分…...

告别云函数和自建域名:手把手教你用CDN和合法域名搭建CobaltStrike 4.9.1匿名基础设施

红队基础设施匿名化实战:基于CDN与合法域名的CobaltStrike 4.9.1架构设计 在攻防对抗的持续升级中,红队基础设施的隐蔽性与抗溯源能力已成为决定行动成败的关键因素。传统云函数方案虽然降低了部署门槛,但其高度标准化的流量特征和有限的配置…...

别再只用Entity了!Cesium性能优化实战:用Primitive实例化渲染1000个建筑模型

突破Cesium性能瓶颈:用Primitive实例化渲染千级建筑模型的实战指南 当数字孪生城市项目需要展示数千栋建筑时,Entity API的便捷性反而成为性能杀手——帧率骤降、交互卡顿成为常态。这并非Cesium引擎的极限,而是我们尚未掌握其底层渲染能力的…...

树莓派与PC间无线视频流传输:基于Python和OpenCV的实时图像处理方案

1. 项目背景与需求分析 当你用树莓派做自动驾驶小车或者远程监控项目时,最头疼的问题之一就是实时视频传输。传统SSH方式虽然能显示图像,但就像用老旧水管输水——流量一大就卡顿,连带机电控制也受影响。我去年做智能巡检机器人时就踩过这个坑…...

FPGA开发中通信协议与接口的选型策略与实战场景解析

1. FPGA通信协议与接口选型的核心考量因素 第一次接触FPGA通信选型时,我被各种协议参数搞得晕头转向。直到在工业控制项目中因为选错协议导致数据丢包,才真正理解"没有最好的协议,只有最合适的方案"这句话的含义。选型就像给不同性…...

G-Helper:拯救华硕笔记本性能的3个关键技巧与实战指南

G-Helper:拯救华硕笔记本性能的3个关键技巧与实战指南 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Sc…...