Wireshark与tcpdump实战:从TCP三次握手到HTTP请求的抓包分析指南
简介东南大学计算机网络第四次实验报告是面向自动化专业《信息通信网络概论》课程的一份完整实验报告对应实验四“计算机网络通信应用程序设计”聚焦TCP/IP与UDP/IP协议下的网络编程实现。报告按实验目的、原理、方案步骤、设备配置、实验记录、总结与附录代码的结构展开详细展示了基于WinSock接口的客户机/服务器通信程序包括套接字创建、绑定、监听、连接、收发数据等关键环节实验记录中还呈现了聊天界面、双方对话以及输入特定指令触发字符画、弹出对话框、打开Windows资源管理器等扩展功能并给出了获取主机名和发送时间的改进方法。该PDF共1个文件大小仅20KB内容紧凑且目录分TCP、UDP两部分便于快速定位。目前已有88人浏览学习适合计算机网络课程学生和实验报告撰写者参考。1. 从东南大学这份 PDF 说起第四次实验报告要回答的问题“东南大学计算机网络第四次实验报告.pdf”——这个标题出现在不少课程群和网盘分享里。第四次实验在不同教学轮次里可能指向不同内容但它真正的考察点只有一个你有没有让协议在真实的网络环境里“现出原形”。这篇笔记按抓包与分析这条主线讲因为它的复现成本最低也最能检验你是否真读懂了 TCP、HTTP 这些基础协议。适合正在做这个实验的学生也适合想用抓包手段排查线上问题的工程师。下面从工具选型开始一步步走到“一份能说服老师的 PDF 报告”。2. 动手前先定三件事抓包工具、实验拓扑、过滤策略2.1 抓包工具选型Wireshark 为主、tcpdump 做兜底抓包分析实验的地基不是 Wireshark 的界面而是抓包引擎本身。Windows 上叫 NpcapLinux 和 macOS 上叫 libpcap。Wireshark 只是一个外壳真正完成抓包动作的是引擎。我一般做这类实验的第一步不是打开 Wireshark而是先把 Npcap 装好并确认它能识别当前网卡。安装时有个容易被忽略的选项要不要勾选支持 802.11 无线帧。如果实验机是笔记本且要通过 Wi-Fi 抓包就勾上如果在实验室用有线网卡可以不勾减少驱动层干扰。Wireshark 适合“人看数据”有图形界面、有协议解析器、能按 TCP 流还原数据。tcpdump 适合“先确认有没有”在命令行里快速看某个端口是否有流量。我习惯的配合方式是先用 tcpdump 做一次轻量探测再开 Wireshark 细看。# 列出当前机器上所有可用的网卡 tcpdump -D # 在 eth0 上抓 10 个 TCP 端口 80 的报文后自动停止 tcpdump -i eth0 -nn tcp port 80 -c 10第一条命令列出网卡索引第二条在 eth0 上抓 10 个 TCP 端口 80 的报文抓够数量就自动退出。-nn表示不做域名解析、不把端口翻译成服务名输出更快也更贴近报文的原始信息。这个“先确认流量存在再打开 Wireshark 细看”的习惯能省下大量时间因为实验课上很多问题不在过滤器写错而是抓包的网卡根本没有流量经过。如果实验环境是无图形界面的服务器Wireshark 的图形界面用不了tcpdump 收集 pcap 文件、再下载到本地用 Wireshark 分析是最稳的路子。我一般这样把抓包结果落盘sudo tcpdump -i eth0 -nn -s 96 -w lab4_http.pcap tcp port 80-s 96是快照长度只取每个报文前 96 字节足够覆盖 TCP 头和大部分 HTTP 请求行体积比全量抓包小得多。落盘后用ls -lh看一眼文件大小每秒几 KB 是正常的几秒就涨到几百 MB说明过滤条件没生效立即 CtrlC 停下来检查网卡和过滤表达式。2.2 实验拓扑单机回环和双机直连分别用在哪个环节到第四次实验时双绞线制作、交换机配置这些基础操作已经做完了实验重心从“把线接对”转向“观察协议行为”拓扑不用复杂。常见做法有两种单机回环和双机直连。单机回环是最省事的场景本机访问本机上的 Web 服务报文全部经过 lo 接口。这个拓扑下抓包几乎不受局域网内其他机器干扰HTTP 请求和响应都在同一条链路上逻辑清晰。不足之处是缺少真实网络环境里的 MAC 转发、路由决策这些环节。如果报告想讨论 IP 分片、拥塞控制单机回环不太够。双机直连是用一根网线把两台电脑连起来一台当服务器另一台当客户端用浏览器或 curl 访问。这个拓扑能看到完整链路报文IP 地址、MAC 地址、网卡型号都会出现在帧里报告能讨论的内容更多。代价是两台机器的防火墙必须放行对应端口否则抓包会“干净”到只剩 ARP 广播。实验要求推荐拓扑原因只要三次握手、HTTP 请求、TCP 序号变化单机回环干扰小过滤简单要求体现 IP、MAC、跨网段路由双机直连或加路由器能看到链路层与网络层字段要求观察重传、拥塞控制双机直连加限速能人为制造丢包和延时双机直连时我会在一台机器上起一个极简 HTTP 服务python3 -m http.server 8080 --bind 0.0.0.0这个命令不需要装任何额外组件Python 3 自带。8080 端口可以避开常见 80 端口冲突--bind 0.0.0.0表示监听所有网卡另一台机器才能访问到。Windows 防火墙第一次运行时会弹窗要选“允许”否则客户端请求一直超时。客户端那台机器用 curl 发起请求curl -v http://192.168.1.10:8080/test.html-v参数会打印整个 HTTP 会话过程包括 TCP 握手、请求头、响应头。这个输出和 Wireshark 里的报文是能逐行对上的也是报告里很有说服力的对照证据。2.3 过滤策略先行别把书包回来再慢慢找大多数实验翻车不是不会抓包而是“全量抓包”之后在几千个报文里找不到目标流。正确顺序是先想清楚要证明什么再确定过滤器。比如实验要求分析 TCP 三次握手关心的就是“去往某个 IP 的 8080 端口的所有 TCP 报文”过滤器只保留这一条流其他报文根本不进内存。Wireshark 有两种过滤器概念完全不同混用是新手最容易踩的坑之一。捕获过滤器在抓包前设置让不匹配的报文不进入内存语法基于 pcap-filter显示过滤器在抓包后对已有结果再筛选语法是 Wireshark 自己的显示过滤器语法。通俗说前者是进门前拦人后者是进门后点名。捕获过滤器常用写法host 192.168.1.10 and tcp port 8080显示过滤器常用写法tcp.stream eq 0 http.request我会在开抓之前先限好捕获范围比如单机回环时只需要tcp port 8080这样抓回来的包几乎全是实验要用的。如果捕获过滤器写错报文计数不增长不要急着怀疑网卡先回“捕获选项”里确认本机 IP 和网卡选择再把 IP 和协议组合写进过滤器重试。3. 从启动抓包到拿下关键报文一条可复现的命令链路3.1 先用 tcpdump 确认流量再用 Wireshark 读细节完整的抓包流程不需要在 Wireshark 图形界面里点来点去。我一般先在终端里做一轮“冒烟测试”确认流量真实存在再考虑要不要打开 Wireshark。# 在回环接口上抓 20 个 TCP 报文显示源目 IP 和端口 tcpdump -i lo -nn tcp -c 20回环接口的 IP 是 127.0.0.1-i lo指定它。-c 20抓 20 个报文自动退出不会无限阻塞终端。如果这条命令刷出了大量 127.0.0.1 之间的 TCP 连接说明本机确实有程序在跑网络通信如果等了半天一行输出都没有说明要么端口不对要么网卡选错先 CtrlC 停掉再查。冒烟测试通过之后再启动正式抓包把结果写到文件sudo tcpdump -i lo -nn -s 96 -w lab4_tcp.pcap tcp port 80注意tcpdump 捕获过滤器不支持 Wireshark 的http.request这种写法只能用tcp port 80这种 pcap-filter 语法。HTTP 是承载在 TCP 之上的过滤tcp port 80就能把 HTTP 报文带回来。抓完文件后用ls -lh lab4_tcp.pcap检查文件大小再拖进 Wireshark 分析。3.2 抓一次完整的 TCP 三次握手与 HTTP 请求我习惯的复现步骤如下先启动 Wireshark 捕获再用浏览器或 curl 访问实验页面最后停止捕获用显示过滤器定位关键的几个报文。# 在本地 8080 端口起一个临时 HTTP 服务 python3 -m http.server 8080 --bind 0.0.0.0 # 另开终端发起一次请求并打印详细过程 curl -v http://127.0.0.1:8080/index.htmlWireshark 里显示的过滤表达式用这几条tcp.port 8080 tcp.flags.syn 1 tcp.flags.ack 0 tcp.stream eq 0第一条把所有涉及 8080 端口的报文筛出来第二条只显示 SYN 报文也就是三次握手的第一个报文第三条把整条 TCP 流拿出来按顺序看握手和 HTTP 请求。解析顺序是固定的先是客户端发 SYNtcp.flags.syn 1然后是服务端回 SYNACKtcp.flags.syn 1 tcp.flags.ack 1最后客户端回 ACK。三次握手完成后客户端立刻发出 HTTP GET 请求。在 Wireshark 的分组详情里点开 HTTP 层能看到请求方法、URL、Host 头这些字段直接写进报告就是最好的证据。实验报告里描述这个过程的常规写法是先贴三次握手的三个报文截图再说明每条报文的源 IP、目的 IP、源端口、目的端口、SEQ 和 ACK 值变化最后落到 HTTP 请求的形态上。不要复制网上现成的“三次握手文字描述”要对着自己抓到的报文写老师一眼就能分辨。3.3 三个必须调的参数快照长度、时间戳、文件分片大小抓包实验最常被忽视的就是参数设置三个参数直接影响实验结果能不能复现。第一个是快照长度Snaplen。tcpdump 的-s参数决定每个报文抓多少字节。实验目的是 TCP 头部分析时96 字节足够要做 HTTP 负载分析、TCP 重传分析建议抓 256 字节以上。抓全量虽然最完整但文件体积会膨胀到几 GBWireshark 打开都卡。我的默认值是-s 256平衡了头部分析和部分负载分析的需求。第二个是时间戳显示格式。Wireshark 默认显示相对时间也就是某个报文距离第一个报文的毫秒数这在看延迟时有用但写报告要对照实验记录时就不方便。做法是在“视图 - 时间显示格式”里改成“日期和时间的绝对时间”并确保时区设置成 Asia/Shanghai。否则你报告里写的“14:30 发起请求”Wireshark 里显示的是 UTC 时间两个时间对不上答辩时解释不清楚。第三个是抓包文件的分片。实验要持续十几分钟中间又不能停可以设置 Wireshark 的环形缓冲在捕获选项里把文件大小设为 20 MB文件数设个 5Wireshark 会自动滚动覆盖旧的抓包文件。这样既不会撑爆磁盘又保留了最近五分钟左右的完整报文。tcpdump 也有类似机制sudo tcpdump -i lo -nn -s 256 -w lab4_%Y%m%d%H%M%S.pcap -C 20 -W 5 tcp port 8080-C 20表示单个文件到 20 MB 就切换新文件-W 5表示最多保留 5 个文件%Y%m%d%H%M%S是文件名里的时间戳模板。这套参数适合长时间无人值守抓包。4. 报告的数据从哪来保存证据、统计视图与截图取舍4.1 pcap 文件就是实验原始记录实验报告里最常见的问题是“只有结论没有原始数据”。老师看一份协议分析报告最想看到的是你能拿出抓包文件证明自己真的做过。pcap 文件就是你的实验原始记录像会计凭证一样可以追溯。抓包结束后我一般会存两个版本一个完整版包含所有抓到的报文一个过滤版只保留分析要用的那几条流。完整版用原始文件名保存过滤版在 Wireshark 里用“文件 - 导出特定分组”选择当前显示过滤器的结果再另存。这样报告里引用的每个表本文还有配套的精品资源点击获取

相关新闻

Go 项目中的 common 包:为何失控、如何拆分为职责清晰的内聚包

Go 项目中的 common 包:为何失控、如何拆分为职责清晰的内聚包

如果你在一个跨了两个月以上的 Go 项目里写过代码,大概率已经被common目录折磨过。它一开始可能只是项目根目录下的一个common.go,放着一个FormatTime函数;后来有人把 HTTP 响应包装丢进去,有人把随机串生成丢进去,有人…

2026/10/9 4:42:59 阅读更多 →
SpringBoot+Vue校园商铺管理系统开发实战:从技术选型到部署

SpringBoot+Vue校园商铺管理系统开发实战:从技术选型到部署

直接生成博文,已经执行完毕,按照你的要求只输出正文,无任何额外说明。以下是完整的Markdown格式博文内容:1. 项目概述与技术选型思路拆解做校园软件开发这些年,我见过太多需求类似的单子:校园二手交易、商铺…

2026/10/9 4:42:59 阅读更多 →
华为HCNA-VC认证H11-851题库拆解:高频考点与实操验证

华为HCNA-VC认证H11-851题库拆解:高频考点与实操验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 4:42:59 阅读更多 →

最新新闻

『项目管理精要』第 7 章 团队演进与冲突解决:从单打独斗到带队攻坚

『项目管理精要』第 7 章 团队演进与冲突解决:从单打独斗到带队攻坚

从一名卓越的个人贡献者(Individual Contributor, IC)成长为优秀的技术主管(TL),最大挑战在于“如何带出一支高效能的自组织团队”。在平衡矩阵或弱矩阵组织中,成员往往来自不同的职能部门,兼顾多个项目,团队容易陷入推诿扯皮或效率低下的泥潭。TL 需要理解塔克曼团队演…

2026/10/9 7:59:27 阅读更多 →
『项目管理精要』第 1 章 矩阵组织与角色解密:双重汇报环境下的协同之道

『项目管理精要』第 1 章 矩阵组织与角色解密:双重汇报环境下的协同之道

在传统职能型组织中,技术人员往往归属于固定的技术部门,按照垂直层级接收指令;而在纯项目型组织中,团队则随项目的启动而组建、随项目的收尾而解散。然而,在绝大多数中大型科技企业和软件研发团队中,最为常见的组织形态是弱矩阵组织(Weak Matrix)与平衡矩阵组织(Balan…

2026/10/9 7:59:27 阅读更多 →
苏州微观文化传媒企业宣传片服务深度评测

苏州微观文化传媒企业宣传片服务深度评测

在制造业品牌升级的浪潮中,许多企业负责人都遇到过这样的尴尬场景:花费不菲制作的企业宣传片,拿到行业展会上播放时,却因为画面质感粗糙、技术逻辑表达不清,无法打动潜在客户;或是为了 IPO 路演紧急赶制的视…

2026/10/9 7:59:27 阅读更多 →
Java框架 SpringCloud 快速入门: NacosRule 同集群优先的负载均衡

Java框架 SpringCloud 快速入门: NacosRule 同集群优先的负载均衡

概述 集群属性配好了,实例也按机房分开了,但 order-service 调 user-service 时照样跨机房——因为默认的负载均衡规则根本不认识 Nacos 的集群概念,得把规则换成 NacosRule。 纲要 承接:服务分级存储模型(服务 → …

2026/10/9 7:59:27 阅读更多 →
10.7【A】

10.7【A】

301暴力递归先求最少删除的次数但关键问题在于如何不重不漏的知道所有可能的结果考虑使用dfs即对于每个位置都尝试删除,首先要保证删除后字符串合法,其次再查询结果当中是否已经存在dfs保留,已删除的数量,当前的左括号数&#xff…

2026/10/9 7:59:27 阅读更多 →
输电线路行波测距原理与Simulink仿真实战解析

输电线路行波测距原理与Simulink仿真实战解析

干了几年输电线路故障分析,我最头疼的一件事,就是线路跳闸之后要第一时间给调度报出故障点在哪。传统测距算法靠工频量硬算,遇到高阻接地、运行方式变化大的场景,误差几公里是家常便饭,现场巡线的人沿着线路找一整夜也…

2026/10/9 7:58:26 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 10:10:36 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →