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

别再死记硬背了!用Wireshark抓包实战,5分钟搞懂TCP三次握手和HTTP请求全过程

用Wireshark抓包实战5分钟可视化TCP三次握手与HTTP请求刚接触计算机网络时那些抽象的三次握手、滑动窗口、HTTP报文总让人头晕。直到我第一次用Wireshark看到真实的数据包在屏幕上跳动——原来教科书上的每个概念都能在抓包结果中找到对应的证据。这种将理论可视化的体验比死记硬背效率高十倍。今天我们就用访问知乎首页的过程带你亲手捕获并解读这些关键数据包。1. 实验准备搭建你的协议分析实验室在开始抓包前需要做好三项基础准备。首先从Wireshark官网下载最新版本当前稳定版为4.2.3安装时注意勾选Install WinPcap选项。安装完成后建议立即执行以下终端命令更新协议库# Windows系统以管理员身份运行CMD后执行 netsh int ipv4 reset netsh winsock reset接着准备测试环境。关闭所有可能产生网络流量的应用程序特别是自动更新类软件建议使用虚拟机或备用电脑进行实验。浏览器方面推荐使用无扩展的Chrome隐私窗口或Firefox开发者版避免插件产生的干扰流量。最后配置Wireshark抓包参数主界面选择正在使用的网卡Wi-Fi选无线网卡有线选以太网点击齿轮图标进入Capture Options勾选Enable promiscuous mode混杂模式在Capture Filter中输入not arp and not dns初步过滤干扰协议提示校园网或企业网络可能需要管理员权限才能抓包家庭宽带则无此限制2. TCP三次握手全记录从SYN到ACK的完整对话打开Wireshark立即开始抓包然后在浏览器地址栏输入https://www.zhihu.com并回车。等待页面加载完成后返回Wireshark停止捕获此时在过滤栏输入tcp.port 443 ip.addr 151.101.0.0/16这个过滤条件会显示所有与知乎服务器IP段151.101.0.0/16的TCP通信。按下CtrlAltShiftT可以时间排序找到最早的三个TCP包就是三次握手过程数据包序号标志位相对序列号作用说明1SYN0客户端发起连接请求2SYN-ACK0服务端确认并回应3ACK1客户端确认建立连接重点观察第一个SYN包展开Transmission Control Protocol部分查看Sequence Number是随机生成的初始值如123456789Window Size表示本端的接收缓冲区大小Options中的MSS声明最大报文段长度当看到第三个ACK包的Acknowledgment Number 1时说明双方已就传输参数达成一致。这个过程就像两个人打电话A说喂能听到吗我的声音大小合适吗SYNB回答能听到我这里音量适中你那边呢SYN-ACKA确认好的那我们开始通话吧ACK3. HTTP请求解密从输入URL到页面渲染的完整链条完成TCP握手后真正的HTTP通信才开始。清除之前的过滤器输入http ip.addr 151.101.0.0/16你会看到典型的HTTPS请求流程注意现代网站基本都使用加密的HTTPSTLS握手阶段约5-7个数据包Client Hello浏览器发送支持的加密套件列表Server Hello服务器选择加密方式并返回证书Key Exchange双方协商出会话密钥实际HTTP请求关键帧查找GET / HTTP/1.1的包查看Hypertext Transfer Protocol部分Host: www.zhihu.comUser-Agent标识客户端类型Accept-*系列字段声明支持的格式服务器响应通常多包传输状态行HTTP/1.1 200 OK响应头包含Content-Type: text/htmlCache-Control缓存策略可能有的Set-Cookie指令有趣的是现代网站由于资源众多实际会建立多个TCP连接并行传输。尝试过滤tcp.stream eq 1可以只看某一条完整流避免多请求混杂。4. 高级技巧解决实际问题的抓包分析方法掌握了基础抓包后可以诊断各种网络问题。以下是三个实战案例案例一连接缓慢过滤tcp.analysis.flags !tcp.analysis.window_update查看是否有重复的ACK包丢失检查握手阶段的TSval时间戳计算延迟案例二HTTPS证书问题找到Handshake Protocol: Certificate帧右键选择Export Packet Bytes保存证书用OpenSSL检查有效期openssl x509 -in cert.der -inform der -noout -dates案例三API接口调试对手机设置HTTP代理到电脑IP在Wireshark过滤http contains api右键请求包选择Follow - HTTP Stream对于持续监控可以设置Wireshark的Statistics - IO Graphs配置Y轴为SUM(tcp.len)观察流量波动。当发现异常时用Conversations视图快速定位问题IP。5. 协议分析进阶从观察到理解的跨越当你能熟练抓包后可以尝试这些进阶实验模拟低速网络在Edit - Preferences - Protocols - TCP中调整Window Scaling值重组文件流对文件下载流量右键选择Follow - TCP Stream保存原始文件解密HTTPS配置浏览器环境变量SSLKEYLOGFILE在Wireshark的TLS协议设置中指定密钥文件推荐几个经典抓包场景微信语音通话时的UDP包视频网站的HLS分片请求手机App的启动时API调用序列记得抓包时随时添加注释右键包选择Packet Comment这对后期分析非常有用。好的协议分析就像侦探破案——每个字段都是线索而Wireshark就是你的放大镜。

相关文章:

别再死记硬背了!用Wireshark抓包实战,5分钟搞懂TCP三次握手和HTTP请求全过程

用Wireshark抓包实战:5分钟可视化TCP三次握手与HTTP请求 刚接触计算机网络时,那些抽象的三次握手、滑动窗口、HTTP报文总让人头晕。直到我第一次用Wireshark看到真实的数据包在屏幕上跳动——原来教科书上的每个概念都能在抓包结果中找到对应的"证…...

5分钟快速上手MUNIT:从零开始构建你的第一个图像翻译模型

5分钟快速上手MUNIT:从零开始构建你的第一个图像翻译模型 【免费下载链接】MUNIT Multimodal Unsupervised Image-to-Image Translation 项目地址: https://gitcode.com/gh_mirrors/mu/MUNIT MUNIT(Multimodal Unsupervised Image-to-Image Trans…...

OpenClaw+gemma-3-12b-it:学术论文自动摘要与分类系统

OpenClawgemma-3-12b-it:学术论文自动摘要与分类系统 1. 为什么需要自动化论文处理 作为一名经常需要阅读大量文献的研究者,我深刻体会到手动处理论文的痛点。每周需要从arXiv、PubMed等平台下载数十篇论文,然后逐篇阅读摘要、分类归档。这…...

技术面试终极指南:10个反向面试技巧助你问对公司问题

技术面试终极指南:10个反向面试技巧助你问对公司问题 【免费下载链接】reverse-interview Questions to ask the company during your interview 项目地址: https://gitcode.com/gh_mirrors/re/reverse-interview 在技术面试中,反向面试&#xff…...

Uppy与MongoDB Atlas集成指南:云数据库中的文件元数据存储解决方案

Uppy与MongoDB Atlas集成指南:云数据库中的文件元数据存储解决方案 【免费下载链接】uppy The next open source file uploader for web browsers :dog: 项目地址: https://gitcode.com/gh_mirrors/up/uppy Uppy作为现代Web应用的文件上传解决方案&#xff…...

C++与C混合编程:extern ‘C‘原理与实践指南

1. 揭开extern C的神秘面纱第一次看到extern C这个语法时,我和大多数C新手一样感到困惑。它看起来像是一个可有可无的修饰符,直到我在实际项目中踩了坑才明白它的重要性。记得那是一个跨平台的网络库项目,当我们尝试在C代码中调用一个C语言编…...

避开Arduino PID编程的3个常见坑:为什么你的控制总是不稳?

Arduino PID控制实战:避开3个致命陷阱实现精准调节 当你在深夜盯着反复震荡的电机转速曲线,或是加热棒温度始终无法稳定的数据时,是否怀疑过自己复制的PID代码有问题?这不是你的错觉——大多数Arduino PID控制问题都源于三个容易被…...

如何利用社交平台快速提升gallery本地AI平台影响力:5个实战推广策略

如何利用社交平台快速提升gallery本地AI平台影响力:5个实战推广策略 【免费下载链接】gallery A gallery that showcases on-device ML/GenAI use cases and allows people to try and use models locally. 项目地址: https://gitcode.com/GitHub_Trending/galler…...

本地AI模型开发终极指南:从零开始构建智能应用社区

本地AI模型开发终极指南:从零开始构建智能应用社区 【免费下载链接】gallery A gallery that showcases on-device ML/GenAI use cases and allows people to try and use models locally. 项目地址: https://gitcode.com/GitHub_Trending/gallery44/gallery …...

gallery用户留存技巧:提高本地AI平台用户的活跃度

gallery用户留存技巧:提高本地AI平台用户的活跃度 【免费下载链接】gallery A gallery that showcases on-device ML/GenAI use cases and allows people to try and use models locally. 项目地址: https://gitcode.com/GitHub_Trending/gallery44/gallery …...

gallery应用商店优化:提升本地AI平台的发现率与下载量

gallery应用商店优化:提升本地AI平台的发现率与下载量 【免费下载链接】gallery A gallery that showcases on-device ML/GenAI use cases and allows people to try and use models locally. 项目地址: https://gitcode.com/GitHub_Trending/gallery44/gallery …...

轻松掌握gallery多渠道打包:为不同应用商店构建专属本地AI平台版本

轻松掌握gallery多渠道打包:为不同应用商店构建专属本地AI平台版本 【免费下载链接】gallery A gallery that showcases on-device ML/GenAI use cases and allows people to try and use models locally. 项目地址: https://gitcode.com/GitHub_Trending/gallery…...

resume-cli实际案例分享:成功求职者的简历配置终极指南

resume-cli实际案例分享:成功求职者的简历配置终极指南 【免费下载链接】resume-cli CLI tool to easily setup a new resume 📑 项目地址: https://gitcode.com/gh_mirrors/re/resume-cli resume-cli是一款基于JSON Resume标准的命令行工具&…...

FuelUX日期选择器终极指南:集成Moment.js实现多语言时间处理

FuelUX日期选择器终极指南:集成Moment.js实现多语言时间处理 【免费下载链接】fuelux As of March 2019, this repository is read-only as Salesforce has archived the FuelUX open-source UI framework and will no longer be supported. 项目地址: https://gi…...

CentOS 7.9 搭建 NTP 服务器

1、环境准备 1.1、CentOS 7.9系统 1.2、更换YUM源为本地或外网源 1.3、更换系统IP地址为静态地址 2、YUM 安装 NTP yum -y install ntp 3、配置NTP服务器 3.1、编辑 /etc/ntp.conf vi /etc/ntp.conf 3.2、如果你想同步外部 NTP 服务器,注释这四条内容 3.3、在下…...

如何高效解析HTTP头?JSON-java中HTTP与HTTPTokener的终极指南

如何高效解析HTTP头?JSON-java中HTTP与HTTPTokener的终极指南 【免费下载链接】JSON-java A reference implementation of a JSON package in Java. 项目地址: https://gitcode.com/gh_mirrors/js/JSON-java JSON-java作为Java平台上处理JSON数据的权威库&am…...

百川2-13B量化模型提示工程:降低OpenClaw操作失误率

百川2-13B量化模型提示工程:降低OpenClaw操作失误率 1. 问题背景与挑战 去年冬天,当我第一次尝试用OpenClaw自动化整理电脑上积压的半年项目文档时,遭遇了令人崩溃的"AI灾难现场"——这个本该帮我分类归档的助手,把财…...

终极GRUB配置指南:让build-linux系统成功启动的7个关键步骤

终极GRUB配置指南:让build-linux系统成功启动的7个关键步骤 【免费下载链接】build-linux A short tutorial about building Linux based operating systems. 项目地址: https://gitcode.com/gh_mirrors/bu/build-linux build-linux项目是一个构建Linux操作系…...

终极指南:如何从零构建Cubism.js自定义数据源适配器

终极指南:如何从零构建Cubism.js自定义数据源适配器 【免费下载链接】cubism Cubism.js: A JavaScript library for time series visualization. 项目地址: https://gitcode.com/gh_mirrors/cu/cubism Cubism.js是一个强大的JavaScript时间序列可视化库&…...

seL4微内核技术演进:下一代安全内核的完整发展路线图指南

seL4微内核技术演进:下一代安全内核的完整发展路线图指南 【免费下载链接】seL4 The seL4 microkernel 项目地址: https://gitcode.com/gh_mirrors/se/seL4 seL4微内核作为全球首个形式化验证的安全操作系统内核,正引领着安全关键系统的发展方向。…...

如何用AI4Animation快速制作吸睛的角色动画社交媒体内容

如何用AI4Animation快速制作吸睛的角色动画社交媒体内容 【免费下载链接】AI4Animation Bringing Characters to Life with Computer Brains in Unity 项目地址: https://gitcode.com/GitHub_Trending/ai/AI4Animation AI4Animation是一款基于Unity引擎的角色动画工具&a…...

5分钟掌握Scala.js构建工具链:从开发到生产的完整指南

5分钟掌握Scala.js构建工具链:从开发到生产的完整指南 【免费下载链接】scala-js Scala.js, the Scala to JavaScript compiler 项目地址: https://gitcode.com/gh_mirrors/sc/scala-js Scala.js是一个功能强大的Scala到JavaScript编译器,它允许开…...

EmonLibCM:嵌入式电能监测连续采样库解析

1. EmonLibCM:面向嵌入式电能监测的连续采样库深度解析EmonLibCM(Energy Monitoring Continuous Sampling Library)是一个专为资源受限嵌入式平台设计的开源电能监测库,其核心目标是实现高精度、低开销、免中断依赖的交流电参数连…...

MacBook安装OpenClaw避坑指南:Qwen3-14B镜像对接常见问题

MacBook安装OpenClaw避坑指南:Qwen3-14B镜像对接常见问题 1. 为什么选择OpenClawQwen3-14B组合 去年底我开始尝试用AI自动化处理日常办公任务时,发现大多数方案要么需要将敏感数据上传到云端,要么功能过于局限。直到遇到OpenClaw这个开源框…...

从零到一:使用blog_demos构建企业级Flink流处理应用的完整指南

从零到一:使用blog_demos构建企业级Flink流处理应用的完整指南 【免费下载链接】blog_demos CSDN博客专家程序员欣宸的github,这里有六百多篇原创文章的详细分类和汇总,以及对应的源码,内容涉及Java、Docker、Kubernetes、DevOPS等…...

终极指南:探索科幻作品中超越光速的星际旅行可能性

终极指南:探索科幻作品中超越光速的星际旅行可能性 【免费下载链接】awesome-scifi Sci-Fi worth consuming 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-scifi 科幻爱好者们,你们是否曾梦想过穿越星际,在浩瀚宇宙中自由翱翔…...

ResNet变体探索:从基础ResBlock到高效架构设计

1. ResBlock基础结构与设计哲学 残差块(Residual Block)作为ResNet的核心组件,彻底改变了深度神经网络的训练方式。我第一次在ImageNet分类任务中使用ResNet-50时,就被它解决梯度消失问题的能力震惊了——传统VGG网络在超过19层后…...

OpenClaw权限管理:千问3.5-9B敏感操作二次确认

OpenClaw权限管理:千问3.5-9B敏感操作二次确认 1. 为什么需要权限管理 上周我差点经历一场"数字灾难"。当时我正在调试OpenClaw自动整理桌面文件的流程,由于模型误解了"清理"指令,它开始删除我最近三个月的工作文档。幸…...

OpenClaw多通道管理:千问3.5-9B同时服务飞书与钉钉

OpenClaw多通道管理:千问3.5-9B同时服务飞书与钉钉 1. 为什么需要多通道管理? 上周三凌晨两点,我被手机连续震动吵醒——团队同时用飞书和钉钉给我发了紧急需求。半梦半醒间突然想到:既然OpenClaw能自动化处理消息,为…...

资源监控方案:OpenClaw+Phi-3-mini-128k-instruct实时预警服务器异常

资源监控方案:OpenClawPhi-3-mini-128k-instruct实时预警服务器异常 1. 为什么选择OpenClaw做轻量级监控 去年我的个人服务器因为内存泄漏连续宕机三次后,我开始寻找一个能兼顾灵活性和低成本的监控方案。传统方案如PrometheusGrafana对个人项目显得过…...