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

龙芯k - 走马观碑组MPU驱动移植笔

先回顾三次握手建立连接核心流程实际版为了让挥手流程衔接更顺畅咱们先快速回顾三次握手的实际核心避免上下文脱节第一步客户端→服务器客户端发SYN报文发起连接内核分配临时端口、创建TCB状态从CLOSED→SYN-SENT第二步服务器→客户端服务器收SYN后发SYNACK报文回应创建TCB状态从LISTEN→SYN-RCVD第三步客户端→服务器客户端收SYNACK后发ACK报文可带数据状态从SYN-SENT→ESTABLISHED服务器收ACK后状态→ESTABLISHED连接正式建立。连接建立后双方就可以愉快传输数据了。而当数据传完要关闭连接时因为TCP是“全双工通信”双方可同时发数据不能像建立连接那样简化为三次必须通过四次交互确认双方都不再发数据这就是四次挥手的由来。前置补充四次挥手的核心前提与关键概念挥手前先明确两个核心点避免理解偏差1. 全双工通信与关闭逻辑TCP是全双工协议客户端和服务器可同时发送数据。因此关闭连接时要分别确认“客户端→服务器”和“服务器→客户端”两个方向的数据流都已终止不能一次性关闭双向连接。2. 新增标记位FIN与状态挥手过程除了用到ACK标记位还会用到新的标记位FINFinish结束同时涉及几个新的TCP状态核心如下【FIN1】表示发送方已无数据要发请求关闭自己这边的数据流【FIN-WAIT-1】发送FIN后等待对方ACK的状态【CLOSE-WAIT】收到对方FIN后确认关闭请求等待自己这边数据发完再发FIN【TIME-WAIT】客户端最后发完ACK后等待2MSL报文最大生存时间确保对方收到FIN的ACK避免报文丢失导致重发。四次挥手全流程社恐式告别实际底层交互咱们依然以“手机退出微信”为例一边用通俗对话理解逻辑一边补充操作系统内核、报文交互等实际细节兼顾易懂性与技术深度。第一步主动方发起告别请求FINACK报文主动关闭场景你点击微信退出登录客户端手机作为主动关闭方告知服务器“我这边数据发完了要关连接了”。实际行为微信客户端程序调用close()接口通知内核关闭连接。客户端内核做两件事停止发送新数据将未发完的数据一次性发完然后构造FINACK报文FIN1表示关闭自身数据流ACK1确认之前收到的服务器数据序号sequu是客户端最后一次发数据的序号1确认号ackvv是服务器最后一次发数据的序号1发送报文后释放部分资源仅保留接收数据的能力防止服务器还有数据要发。拟人对话客户端温和“服务器大佬我这边数据都发完了要关我这边的连接了FIN1你之前发的内容我都收到了ACK1你还有要发的吗”状态变化客户端TCP状态从ESTABLISHED→FIN-WAIT-1开始计时等待服务器的ACK回应。第二步被动方确认告别请求ACK报文等待自身数据发完场景微信服务器收到客户端的告别请求先确认“收到了”同时继续处理自己这边未发完的数据比如最后的登录状态同步。实际行为服务器内核收到FINACK报文后校验序号、确认号无误然后构造ACK报文ACK1序号seqv确认号acku1告知客户端“你的FIN我收到了你可以不用等我回应了”发送ACK后服务器不会立即关闭连接而是继续发送自身未完成的数据此时服务器仅关闭“客户端→服务器”的数据流自身仍可向客户端发数据。拟人对话服务器沉稳“收到你的告别请求了ACK1我这边还有点数据没发完你先等我一下发完了我再告诉你。”状态变化服务器TCP状态从ESTABLISHED→CLOSE-WAIT客户端收到ACK后状态从FIN-WAIT-1→FIN-WAIT-2等待服务器发完数据后发起的FIN报文。第三步被动方发起告别请求FINACK报文被动关闭场景服务器发完所有数据告知客户端“我这边也发完了咱们可以彻底关连接了”。实际行为服务器发完剩余数据后内核构造FINACK报文FIN1表示关闭自身数据流ACK1确认之前的交互序号seqww是服务器最后一次发数据的序号1确认号acku1与第二步的ack一致因为客户端此时已无数据发送发送给客户端。拟人对话服务器完成收尾“我这边数据也发完了要关我这边的连接了FIN1你之前的消息我都收到了ACK1咱们可以告别了。”状态变化服务器TCP状态从CLOSE-WAIT→LAST-ACK开始计时等待客户端的最终ACK确认。第四步主动方最终确认告别ACK报文等待超时场景客户端收到服务器的告别请求确认双方都无数据要发给出最终回应同时等待一段时间确保服务器收到回应。实际行为客户端内核收到FINACK报文后校验无误然后构造ACK报文ACK1序号sequ1确认号ackw1告知服务器“你的FIN我收到了你可以安全关闭了”发送给服务器发送ACK后客户端不立即关闭连接而是进入TIME-WAIT状态等待2MSL通常是2分钟左右确保服务器能收到ACK若服务器没收到会重发FIN客户端可再次回应。等待超时后释放所有资源和TCB。拟人对话客户端放心“收到你的告别了ACK1我等一会儿再挂确保你能收到我的回应咱们下次见”状态变化客户端TCP状态从FIN-WAIT-2→TIME-WAIT等待2MSL→CLOSED服务器收到ACK后状态从LAST-ACK→CLOSED释放所有资源至此双向连接完全关闭。可视化流程图三次握手四次挥手全链路版结合连接建立、数据传输、连接关闭的完整链路用Mermaid图还原内核状态、报文交互全流程暂时无法在豆包文档外展示此内容关键差异与核心疑问解答1. 为啥挥手要四次握手却只要三次核心原因是“全双工通信”与“连接阶段的特殊性”三次握手时服务器的SYN同步连接和ACK确认客户端可以合并为一个SYNACK报文——因为此时服务器还没有数据要发同步和确认可以一次性完成四次挥手时服务器收到客户端的FIN后不能立即发FIN可能还有数据要发只能先回一个ACK确认等数据发完后再单独发FIN因此ACK和FIN无法合并必须分成两步导致总次数变为四次。2. TIME-WAIT状态为啥要等2MSL主要是两个目的避免连接残留问题确保服务器收到最终ACK若第四步的ACK丢失服务器会在超时后重发FIN2MSL的时间足够客户端收到重发的FIN并再次回应避免旧报文干扰新连接2MSL是报文在网络中的最大生存时间等待超时后网络中该连接的所有旧报文都会失效后续新连接用相同端口也不会被干扰。3. 常见坑点实际场景补充【CLOSE-WAIT累积】服务器处于CLOSE-WAIT状态时若应用程序未及时调用close()发FIN会导致连接资源泄露大量CLOSE-WAIT状态会耗尽服务器端口【TIME-WAIT过多】高并发场景下客户端频繁关闭连接会产生大量TIME-WAIT状态可通过调整内核参数如缩短2MSL时间、开启端口复用优化【半关闭连接】若一方发了FIN但另一方还在发数据发FIN的一方会拒绝接收数据导致数据丢失因此关闭连接前需确保双方都无数据要发。总结TCP连接的“始”与“终”核心都是“可靠”TCP三次握手与四次挥手本质都是围绕“可靠传输”设计的流程三次握手通过双向确认确保双方通信能力正常为数据传输铺路四次挥手通过分步确认确保双向数据流都已终止避免数据丢失或残留。煽客旧煽

相关文章:

龙芯k - 走马观碑组MPU驱动移植笔

先回顾:三次握手(建立连接)核心流程(实际版) 为了让挥手流程衔接更顺畅,咱们先快速回顾三次握手的实际核心,避免上下文脱节: 第一步(客户端→服务器)&#xf…...

Dreamweaver实战:从零构建响应式登录界面

1. 为什么选择Dreamweaver做响应式登录界面 作为一个从FrontPage时代就开始做网页的老鸟,我见证过无数网页编辑工具的兴衰。Dreamweaver能活到现在不是没有道理的——它完美平衡了可视化操作和代码控制的需求。特别是对于刚入门的前端开发者来说,用表格布…...

【2026奇点大会AI游戏开发核心洞察】:5大原生架构范式、3个已落地商业案例与2027技术演进路线图

第一章:2026奇点智能技术大会:AI原生游戏开发 2026奇点智能技术大会(https://ml-summit.org) 本届大会首次设立“AI原生游戏开发”主题分会场,聚焦模型即引擎(Model-as-Engine)范式演进——游戏逻辑、角色行为、关卡…...

把 Flask 搬进 ESP,高中生自研嵌入式 Web 框架 MicroFlask !舶

如果有多个供应商,你也可以使用 [[CC-Switch]] 来可视化管理这些API key,以及claude code 的skills。 # 多平台安装指令 curl -fsSL https://claude.ai/install.sh | bash ## Claude Code 配置 GLM Coding Plan curl -O "https://cdn.bigmodel.cn/i…...

大模型端侧落地倒计时(仅剩90天窗口期):SITS2026预警2026Q2起GPU厂商将强制启用新量化指令集,现在不掌握这6项核心技术就淘汰

第一章:SITS2026分享:大模型量化压缩技术 2026奇点智能技术大会(https://ml-summit.org) 大模型量化压缩已成为部署百亿参数级语言模型至边缘设备与推理服务集群的关键路径。在SITS2026现场,多家研究团队展示了基于混合精度、通道感知与校准…...

2026年最值得玩的狼人杀,经典版口碑拉满

2026年市面上的狼人杀APP琳琅满目,但真正值得长期玩、口碑好的寥寥无几,而狼人杀经典版就是其中的佼佼者!它是2016年底国内第一款狼人杀APP,红色logo、平面卡通画风,玩家俗称“红狼”“口袋狼人杀”,由假面…...

为什么92%的LLM项目在Q3前无法通过等保三级?2026奇点大会首次发布《LLM生产安全合规检查清单V2.1》

第一章:2026奇点智能技术大会:LLM生产环境部署指南 2026奇点智能技术大会(https://ml-summit.org) 在真实生产环境中部署大语言模型,需兼顾推理延迟、显存效率、服务可观测性与安全合规性。本次大会实践工作坊基于 Llama-3-70B-Instruct 与 …...

[Linux][虚拟串口]x一个特殊的字节蓟

简介 langchain专门用于构建LLM大语言模型,其中提供了大量的prompt模板,和组件,通过chain(链)的方式将流程连接起来,操作简单,开发便捷。 环境配置 安装langchain框架 pip install langchain langchain-community 其中…...

Keil MDK5 从零开始:安装与配置全指南

1. Keil MDK5 是什么?为什么你需要它 第一次接触嵌入式开发的朋友可能会被各种专业工具搞得晕头转向。作为一个在ARM平台开发摸爬滚打多年的老手,我必须说Keil MDK5绝对是新手入门的最佳选择。它就像嵌入式界的"瑞士军刀",把写代码…...

吃灰安卓机变身 OpenClaw 服务器 — 完整手册纲

前言 在使用 kubectl get $KIND -o yaml 查看 k8s 资源时,输出结果中包含大量由集群自动生成的元数据(如 managedFields、resourceVersion、uid 等)。这些信息在实际复用 yaml 清单时需要手动清理,增加了额外的工作量。 使用 kube…...

别再只看跑分了!手把手教你用C-Eval和MMLU实战评测本地大模型(Llama 3.1/DeepSeek)

别再只看跑分了!手把手教你用C-Eval和MMLU实战评测本地大模型 当你在GitHub上发现一个标榜"性能超越Llama 3.1"的开源模型,或是自己微调出了一个新版本,第一个浮现在脑海的问题肯定是:这模型到底行不行?市面…...

PHP文件上传的那些坑:从ACTF2020题目看.phtml的特殊利用方式

PHP文件上传安全实战:从.phtml到服务器配置的攻防博弈 在Web安全领域,文件上传漏洞一直是渗透测试中的高频攻击向量。当开发者认为仅需过滤.php后缀就能高枕无忧时,攻击者早已将目光投向了.phtml、.php5等"非典型"可执行后缀。这就…...

保姆级 uPyPi 教程|从 到 :MicroPython 驱动包一键安装 + 分享全攻略赶

这个代码的核心功能是:基于输入词的长度动态选择反义词示例,并调用大模型生成反义词,体现了 “动态少样本提示(Dynamic Few-Shot Prompting)” 与 “上下文长度感知的示例选择” 的能力。 from langchain.prompts impo…...

python模拟二叉树及各种遍历

收获:在二叉树添加元素(构造的完全二叉树)和广度优先遍历的时候采用队列的思想;在深度优先遍历中采用递归,突然意识到递归就很像栈的思想。测试代码构造的二叉树:# 二叉树# 结点类 class Node():def __init…...

国产长芯微LPS7172完全P2P替代ADM7172,是一款CMOS低压差线性稳压器

描述LPS7172是一款CMOS低压差线性稳压器,工作电压范围为2.3V至6.5V,可提供高达2A的输出电流。这款高输出电流LDO非常适合用于调节基于6V至1.2V电源轨的高性能模拟与混合信号电路。采用先进的专利架构,该器件具有高电源抑制比和低噪声特性&…...

我不是在用 AI 助手,我在把自己的能力沉淀成组织资产道

1. 什么是 Apache SeaTunnel? Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题,如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&#…...

“INMS: Memory Sharing for Large Language Model based Agents“ 论文笔记猎

1.概述在人工智能快速发展的今天,AI不再仅仅是回答问题的聊天机器人,而是正在演变为能够主动完成复杂任务的智能代理。OpenAI的Codex CLI就是这一趋势的典型代表——一个跨平台的本地软件代理,能够在用户的机器上安全高效地生成高质量的软件变…...

从‘它怎么又挂了’到‘服务真稳’:我是如何用Docker给老旧PHP项目续命的

从‘它怎么又挂了’到‘服务真稳’:我是如何用Docker给老旧PHP项目续命的 维护一个运行了十年的PHP项目就像照顾一位脾气古怪的老教授——你知道他肚子里有货,但那些过时的习惯和依赖总能让你在深夜崩溃。上周五下午4点,当我第17次收到"…...

(十八)32天GPU测试从入门到精通-TensorRT-LLM 部署与优化day16

目录 引言TensorRT-LLM 环境搭建模型优化与编译多 GPU 推理量化优化性能实测生产部署常见问题排查 引言 TensorRT-LLM 是NVIDIA 官方的 LLM 推理优化库,提供业界领先的性能和完整的优化技术栈。作为 NVIDIA 生态的一部分,TensorRT-LLM 深度整合了 NVID…...

AI原生缓存架构生死线:当缓存失效导致LLM幻觉率上升22%,你还有3天重构窗口期

第一章:AI原生缓存架构的范式迁移与危机本质 2026奇点智能技术大会(https://ml-summit.org) 传统缓存系统建立在确定性访问模式与静态数据生命周期假设之上,而大语言模型推理、RAG实时检索、多模态流式生成等AI原生工作负载正持续冲击这一根基&#xf…...

告别“降智”模型:手把手教你用ZenMux的HLE测试和智能路由,为Cursor和Claude Code配置原版大脑

解锁AI编程助手的真实潜力:ZenMux智能路由与质量保障体系深度解析 当你在深夜调试一段复杂算法,或是需要快速理解一篇前沿论文的核心思想时,AI编程助手已经成为现代开发者和研究者的"第二大脑"。但你是否遇到过这样的情况&#xff…...

Arduino nRF5x低功耗库:深度睡眠与精准唤醒实战指南

1. 项目概述 Arduino_nRF5x_lowPower 是专为 Nordic Semiconductor nRF5x 系列 SoC(如 nRF52832、nRF52840、nRF51822)设计的 Arduino 兼容低功耗管理库。该库并非简单封装睡眠函数,而是深度对接 nRF5x 片上电源管理单元(PMU&am…...

FPGA入门200例(19):系统任务`$display`、`$monitor`与`$readmemb`在仿真中的妙用

引言 在FPGA入门学习中,新手往往会陷入一个误区:“只要Verilog代码编写完成,下载到开发板就能正常工作”,却忽略了“仿真验证”这一核心步骤。实际上,FPGA开发的核心流程是“编写代码→仿真验证→综合实现→板级测试”,其中仿真验证是排查代码逻辑错误、避免板级测试踩坑…...

开源IPAM系统实战:从零搭建企业级IP地址管理平台

1. 为什么企业需要专业的IP地址管理系统? 记得三年前我接手某中型企业的IT运维工作时,发现他们用着一个神奇的Excel表格——里面密密麻麻记录着2000多个IP地址分配情况。每次新设备入网都要手动翻查半小时,有次甚至因为复制粘贴错误导致整个部…...

如何在5分钟内为你的Minecraft服务器添加RPG技能系统

如何在5分钟内为你的Minecraft服务器添加RPG技能系统 【免费下载链接】mcMMO The RPG Lovers Mod! 项目地址: https://gitcode.com/gh_mirrors/mc/mcMMO mcMMO为Minecraft服务器添加深度RPG技能系统,让玩家在挖矿、伐木、战斗等日常活动中获得成长体验。这款…...

DataServeriOS:Arduino与iOS设备的轻量级TCP控制协议库

1. DataServeriOS 库概述:面向嵌入式网络控制的轻量级 iOS 协同通信框架DataServeriOS 是一个专为 Arduino 平台设计的轻量级 C 库,其核心工程目标是构建一条低开销、高可靠、即插即用的双向网络通信通道,使 Arduino 设备能够作为服务端&…...

可控性技术人工智能系统人类监督与干预接口设计

可控性技术人工智能系统人类监督与干预接口设计 随着人工智能技术的快速发展,其在医疗、金融、交通等关键领域的应用日益广泛。AI系统的自主决策能力也带来了潜在风险,例如算法偏见、安全漏洞或失控行为。为确保AI系统的可靠性和安全性,可控…...

【紧急预警】传统音视频微服务架构将在2026Q3大规模失效——SITS2026原生处理标准已强制嵌入工信部信创目录

第一章:SITS2026分享:AI原生音视频处理 2026奇点智能技术大会(https://ml-summit.org) AI原生音视频处理正从“AI辅助”迈向“AI驱动”的范式跃迁——模型不再仅作为后处理模块嵌入传统管线,而是从采集、编码、传输到渲染的全链路深度重构。…...

G-Helper技术深度解析:华硕硬件控制架构揭秘与性能优化实践

G-Helper技术深度解析:华硕硬件控制架构揭秘与性能优化实践 【免费下载链接】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, Stri…...

不记命令也能排障:catpaw chat 实战手册叵

Julia(julialang.org)由Stefan Karpinski、Jeff Bezanson等在2009年创建,目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是: 高性能:编译型语言(JIT&#xff0…...