【八个月网安课程】第一周·周二:TCP 三次握手与四次挥手、UDP 特点及对比
第一周·周二TCP 三次握手与四次挥手、UDP 特点及对比 今日学习目标达成效果能在不看资料的情况下画出TCP 三次握手和四次挥手的完整时序图包含标志位SYN, ACK, FIN和状态变化能用自己的话解释TCP 为什么是可靠的序列号、确认应答、重传机制能对比TCP 与 UDP 的关键区别连接、可靠性、顺序、速度、应用场景能分析Wireshark 抓包中的三次握手数据包识别出每个包的 SYN/ACK 标志能回答“为什么握手是三次而不是两次”和“DNS 为什么使用 UDP”。 一、TCP 协议核心特点与可靠性来源TCP传输控制协议是面向连接的、可靠的字节流协议。它的可靠性建立在以下机制上序列号和确认应答每个发送的字节都有一个序列号接收方返回确认号下一个期望收到的字节序号确保数据无丢失、无重复、按序到达。校验和头部和数据都有校验和用于检测传输过程中的错误。超时重传发送方在一定时间内没有收到确认会自动重发数据段。流量控制滑动窗口接收方通过窗口大小告知发送方自己能接收多少数据防止发送过快导致接收方缓冲区溢出。拥塞控制根据网络拥塞状况动态调整发送速率慢启动、拥塞避免、快重传、快恢复避免网络瘫痪。理解这些机制不仅是为了应对面试更能让你在以后的安全测试中理解“如何通过拒绝服务攻击耗尽连接资源”如 SYN Flood、“如何利用序列号预测进行会话劫持”等。 二、TCP 三次握手连接建立三次握手的目标是同步双方的初始序列号ISN并确认双方的收发能力。过程如下客户端 服务器 | | |-------- SYN (seqx) -----------| ① 第一次握手 | SYN-SENT 状态 | LISTEN → SYN-RCVD | | |--- SYNACK (seqy, ackx1) ---| ② 第二次握手 | ESTABLISHED 状态 | |-------- ACK (acky1) ---------| ③ 第三次握手 | | SYN-RCVD → ESTABLISHED第一次客户端发送 SYN 包指明自己的初始序列号 x进入SYN-SENT状态。第二次服务器收到后回复 SYNACK包含自己的初始序列号 y并确认客户端的 x1服务器进入SYN-RCVD状态。第三次客户端发送 ACK确认服务器的 y1两端都进入ESTABLISHED状态连接建立成功。安全视角SYN Flood 攻击攻击者大量发送 SYN 包但不回复最后的 ACK让服务器留下大量半开连接SYN-RCVD消耗内存和连接表资源。正常三次握手对应防火墙规则很多防火墙只允许内部发起的连接靠状态检测Stateful Inspection实现。 三、TCP 四次挥手连接断开断开连接需要四次交互因为 TCP 是全双工的两个方向的连接需要独立关闭。客户端主动关闭 服务器 | | |------ FIN (sequ) ----------| ① 第一次挥手 | FIN-WAIT-1 | CLOSE-WAIT |----- ACK (acku1) ---------| ② 第二次挥手 | FIN-WAIT-2 | |----- FIN (seqv, acku1) --| ③ 第三次挥手 | TIME-WAIT | LAST-ACK |------ ACK (ackv1) ---------| ④ 第四次挥手 | 等待 2MSL 后 CLOSED | CLOSED第一次主动关闭方如客户端发送 FIN进入FIN-WAIT-1。第二次被动关闭方回复 ACK进入CLOSE-WAIT主动方收到后进入FIN-WAIT-2。此时仅关闭了主动方到被动方的数据流被动方仍可发送数据。第三次被动方数据发完后也发送 FIN进入LAST-ACK。第四次主动方收到 FIN 后回复 ACK并进入TIME-WAIT等待 2 倍最大段寿命2MSL后彻底关闭。被动方收到 ACK 进入 CLOSED。安全视角TIME-WAIT状态的存在可以防止旧连接的数据包被新连接错误接收也是缓解某些攻击的自然屏障比如避免序列号猜测。若大量连接停留在TIME-WAIT或CLOSE-WAIT可能是程序设计不当或攻击导致需要排查。 四、UDP 协议特点UDP用户数据报协议是无连接的、不可靠的传输协议特点如下无连接发送数据前不需要建立连接直接发送数据报。尽力而为交付不保证数据是否到达、不保证顺序、不保证不重复。低开销头部仅 8 字节TCP 头部 20-60 字节没有复杂的控制机制传输效率高。支持广播和多播TCP 只能一对一通信UDP 可一对多。典型应用场景DNS 查询、视频流、VoIP、在线游戏、TFTP 等它们能容忍少量丢包但对实时性要求高。安全视角UDP 因为无连接容易遭受 UDP Flood 攻击大量小包塞满带宽。DNS 使用 UDP 也导致 DNS 放大攻击攻击者伪造源 IP 发送小查询服务器回复大响应给受害者。 五、TCP 与 UDP 核心对比表对比维度TCPUDP连接方式面向连接三次握手无连接可靠性可靠确认、重传不可靠无确认机制顺序保障按序到达不保证顺序传输效率较低额外开销大高头部小适用场景文件传输、网页、邮件实时语音、视频、DNS流控与拥塞控制有滑动窗口、拥塞算法无头部大小20~60 字节8 字节广播/多播不支持支持✍️ 六、动手实践用 Wireshark 观察三次握手目标抓取一次访问网站的 TCP 三次握手包识别 SYN, SYNACK, ACK。步骤打开 Wireshark选择正在上网的网卡如 WLAN/以太网开始捕获。在浏览器地址栏输入一个HTTP 网站避免 HTTPS 加密干扰观察标志位如http://example.com回车后等待页面加载完停止捕获。在过滤栏中输入tcp.port 80 and ip.addr 你的目标网站IP先从 DNS 包中找到 IP或者直接用http过滤然后找到对应 TCP 流。右键某条 HTTP 包 → “追踪流” → “TCP 流”可以看到整个连接的握手和数据传输。在流图模式下观察前三个包。也可以用过滤器tcp.flags.syn1 and tcp.flags.ack0找出所有 SYN 包再手动分析。识别要点第一个包只有 SYN 标志SYN1, ACK0显示Seq0相对序号是一个握手请求。第二个包服务器回复SYN1, ACK1同时携带Seq0和Ack1。第三个包客户端回复SYN0, ACK1Ack1。如果你的 Wireshark 使用相对序号默认则第一次 SYN 的 Seq 显示为 0第二次 SYNACK 显示 Seq0, Ack1第三次 ACK 显示 Seq1, Ack1。注意在数据包详情中查看 Flags 区域。扩展可以自己搭建一个简单的 TCP 服务如 ncat -l 9999然后用 ncat 连接抓取本机 loopback 接口的包观察挥手。但本周可仅观察握手挥手留待后续。 七、课后测试题与解析测试题 1为什么 TCP 握手是三次而不是两次参考答案两次握手只允许服务器确认客户端的序列号但无法让客户端确认服务器的序列号。如果使用两次握手可能发生以下问题历史连接建立假设客户端第一次发送的 SYN 因为网络延迟滞留在网络中客户端超时后重新发起一个新的 SYN两次握手后连接建立并完成通信释放。随后那个延迟的旧 SYN 到达服务器服务器以为是新连接请求回复 SYNACK 并进入 ESTABLISHED 状态而客户端却不会理睬这个连接导致服务器资源被浪费半开连接。三次握手中客户端能识别出这是旧请求不会发送最后的 ACK服务器收不到确认就不会建立连接从而避免问题。更本质的原因TCP 是全双工通信需要双方各自确认对方的初始序列号。三次握手正好是最小的交互次数让双方都确认自己和对方都能正常收发客户端第一次发出 SYN 证明自己发送能力正常服务器回复 SYNACK 证明自己收和发都正常同时也能确认客户端发的能力客户端最后回复 ACK 证明自己能正常收并确认服务器的收发能力。所以三次是理论上建立可靠全双工通道的最少次数。测试题 2DNS 为什么通常使用 UDP 协议参考答案效率DNS 查询通常比较小一般请求不超过 512 字节且期望快速响应。UDP 没有连接建立的开销不需要三次握手直接发送查询报文延迟更低。简单性UDP 无连接状态管理适合大量客户端的短请求。应用层自行保证可靠性如果 UDP 报文丢失DNS 客户端可以简单地重试通常超时后重发。对于 DNS 这种请求-响应模式应用层重试比 TCP 的内置重传更轻量。避免 TCP 的额外问题TCP 连接建立需要携带更多状态对于大型 DNS 服务器若每个查询都建立 TCP 连接会迅速消耗系统资源可能引发性能瓶颈甚至 DoS 问题。补充当 DNS 响应超过 512 字节如 DNS 区域传送或需要可靠传输时会使用 TCP端口 53。现在也有 DNS over TLS/HTTPS但它们已经是应用层加密后的传输底层仍可能用 TCP。✅ 今日学习效果自检清单我能徒手画出 TCP 三次握手时序图写出每个包对应的标志位和序列号变化我能说出 TCP 可靠性的至少 4 种机制序列号与确认、重传、流量控制、拥塞控制我能描述四次挥手的步骤知道主动关闭方会进入 TIME_WAIT 状态我能用 Wireshark 过滤出 TCP 三次握手包并识别出 SYN 和 ACK 标志我能清晰对比 TCP 和 UDP 的 5 个以上不同点并说出各自典型应用我能从安全角度说出 SYN Flood 攻击利用了三次握手什么特性我能解释 DNS 用 UDP 的好处以及何时会使用 TCP⚠️ 阶段避坑重点不要只背流程图一定要配合抓包在 Wireshark 中亲手验证三次握手观察标志位和序列号这比看十遍教材都管用。不要把 UDP 等同于“不安全”UDP 只是不可靠安全与否取决于应用层设计很多重要服务如 QUIC、DNS使用 UDP 并叠加了自己的安全机制。不要混淆序列号和确认号ACK 包中的确认号是“期望对方下一次发送的字节序号”不是自己发送的序号在握手阶段序列号是各自 ISNACK 确认的是对方 ISN1。不要现在钻研 TCP 滑动窗口和拥塞控制的数学细节这是后话今日只需知道它们存在是可靠性的一部分以后学到 DoS 攻击时再深入。明天周三我们将学习 HTTP/HTTPS 协议详情届时你会用今天抓到的包来深入分析请求和响应请确保三次握手已彻底掌握它将是分析所有 Web 流量的基础。

相关新闻

BCB6实战指南:从环境搭建到项目开发,维护遗留系统的必备技能

BCB6实战指南:从环境搭建到项目开发,维护遗留系统的必备技能

1. 项目概述:为什么今天还要学BCB6? 看到这个标题,很多年轻开发者可能会一愣:Borland C Builder 6?这不是二十多年前的“古董”开发工具吗?现在不都是Visual Studio、CLion或者VSCode的天下了吗&#xff1f…

2026/8/11 15:12:42 阅读更多 →
告别风扇噪音!用FanControl打造你的专属静音散热系统

告别风扇噪音!用FanControl打造你的专属静音散热系统

告别风扇噪音!用FanControl打造你的专属静音散热系统 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/…

2026/8/11 15:12:42 阅读更多 →
Spring Security密码认证机制与安全实践

Spring Security密码认证机制与安全实践

1. Spring Security 用户密码认证机制解析Spring Security 作为 Java 生态中最主流的权限控制框架,其用户密码认证机制是每个开发者必须掌握的核心功能。这套认证体系看似简单,但实际包含了认证管理器、密码编码器、用户详情服务等多个组件的精密协作。1…

2026/8/11 15:12:42 阅读更多 →

最新新闻

身心深度修复:从系统思维到可执行方案,告别疲劳与失调

身心深度修复:从系统思维到可执行方案,告别疲劳与失调

在实际的健康管理和中医养生实践中,我们常常会遇到一种复杂状态:身体长期处于高负荷运转,导致能量储备被严重消耗,同时伴随精神疲惫、消化功能减弱和内在循环不畅。这并非单一器官的问题,而是涉及多个系统功能失调的综…

2026/8/11 15:47:55 阅读更多 →
java知识六(关键字、枚举、抽象类、接口)

java知识六(关键字、枚举、抽象类、接口)

第一章 final关键字 1 认识final final关键字是最终的意思,可以修饰:类、方法、变量。 修饰类:该类被称为最终类,特点是不能被继承了。 修饰方法:该方法被称为最终方法,特点是不能被重写了。 修饰变量:该变量有且仅能被赋值一次。 2 final修饰…

2026/8/11 15:47:55 阅读更多 →
Windows软件管理革命:Bulk Crap Uninstaller全面解析与实战指南

Windows软件管理革命:Bulk Crap Uninstaller全面解析与实战指南

Windows软件管理革命:Bulk Crap Uninstaller全面解析与实战指南 【免费下载链接】Bulk-Crap-Uninstaller Remove large amounts of unwanted applications quickly. 项目地址: https://gitcode.com/gh_mirrors/bu/Bulk-Crap-Uninstaller 你是否曾经为Windows…

2026/8/11 15:47:55 阅读更多 →
告别繁简阅读障碍:Calibre中文转换插件全攻略

告别繁简阅读障碍:Calibre中文转换插件全攻略

告别繁简阅读障碍:Calibre中文转换插件全攻略 【免费下载链接】TradSimpChinese Calibre plugin to convert between Traditional and Simplified Chinese 项目地址: https://gitcode.com/gh_mirrors/tr/TradSimpChinese 你是否曾经遇到过这样的烦恼&#xf…

2026/8/11 15:47:55 阅读更多 →
构建智能地址识别系统:如何利用五级行政区划数据提升应用体验

构建智能地址识别系统:如何利用五级行政区划数据提升应用体验

构建智能地址识别系统:如何利用五级行政区划数据提升应用体验 【免费下载链接】Administrative-divisions-of-China 中华人民共和国行政区划:省级(省份)、 地级(城市)、 县级(区县)、…

2026/8/11 15:47:55 阅读更多 →
论文答辩全程录了视频要整理,2026年视频如何转文字推荐怎么选

论文答辩全程录了视频要整理,2026年视频如何转文字推荐怎么选

先回答用户真正关心的问题 针对学术场景的2026年视频转文字需求(整理论文答辩、访谈、讲座等长视频),优先选支持长文件处理、专业词汇识别准确、自带AI内容整理功能的专门工具。不同需求对应不同选择:偶尔处理短文件可以选免费轻…

2026/8/11 15:46:55 阅读更多 →

日新闻

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南

如何用Video2X实现专业级视频画质提升:AI视频增强完整指南 【免费下载链接】video2x A machine learning-based video super resolution and frame interpolation framework. Est. Hack the Valley II, 2018. 项目地址: https://gitcode.com/GitHub_Trending/vi/v…

2026/8/11 0:00:02 阅读更多 →
前后端分离项目中控制台与接口工具数据差异排查指南

前后端分离项目中控制台与接口工具数据差异排查指南

1. 问题现象解析:控制台与Apifox的数据差异 最近在调试一个前后端分离项目时,遇到了一个典型问题:后端服务在本地开发环境控制台能正常输出查询数据,但通过Apifox测试时却返回空结果。这种"控制台有数据,接口工具…

2026/8/11 0:00:03 阅读更多 →
AI编程实战:从Claude Code踩坑到游戏开发入门

AI编程实战:从Claude Code踩坑到游戏开发入门

1. 从“AI能帮我做游戏”到“AI让我重新学编程”最近身边不少朋友,尤其是一些非技术背景、但对游戏开发有浓厚兴趣的朋友,都在问我同一个问题:“听说现在用Claude Code这种AI编程工具,小白也能做游戏了,是真的吗&#…

2026/8/11 0:00:03 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/11 1:08:05 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/11 1:08:05 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/11 1:08:05 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/10 17:07:33 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/11 1:08:06 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/10 17:07:33 阅读更多 →