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

详解TCP三次握手与四次挥手

本文主要通过图的方式,解释 TCP 的三次握手与四次挥手的过程,以及在过程中涉及到的 TCP 状态机,以及 posix api 的调用。

一、TCP 三次握手

listen()让服务端进入LISTEN状态,之后才能接收连接

connect()由客户端调用,发出 SYN,阻塞等待,握手完成后才返回 0

accept()在第三次握手完成后才返回新的 fd,拿到这个 fd 才能收发数据。也就是说,accept() 接口收到返回值,内核已经完成了三次握手

二、TCP 四次挥手

close(fd)shutdown(SHUT_WR)触发 FIN,进入FIN_WAIT_1

被动方的recv() 返回 0是应用层感知"对端关闭"的唯一信号,收到之后才应该调用自己的close()

主动方最后等 2MSL 是内核行为,close()调用完之后应用层不感知,内核自己处理

本文参考资料 https://github.com/0voice

http://www.jsqmd.com/news/640794/

相关文章:

  • Agent - Reflection
  • Chord - Ink Shadow 部署详解:Windows系统下Docker与模型环境配置
  • 成都怎么找最正宗的火锅店?美团火锅人气榜实测好用,新手也能零踩雷 - 资讯焦点
  • 别再焦虑了!小白程序员必备:收藏这份AI大模型学习资源,抢占职场先机
  • 2026乡村全科执医刷题题库深扒:这两款靠谱题库值得推荐! - 医考机构品牌测评专家
  • TranslucentTB:Windows任务栏透明美化终极指南,让你的桌面焕然一新!✨
  • 多模态大模型持续学习不是“加个Adapter”就完事:深度解析Meta新论文《Continual M3AE》中提出的跨模态原型锚定机制与3周内可部署的轻量级实现路径
  • 零基础两周拿下PCTP认证:我的TiDB数据库专家备考笔记与实战避坑指南
  • HTML打包EXE三种加密方式对比:静态密码、离线一机一码、网络验证
  • MATLAB数据清洗实战:从Excel到干净数据的完整流程(附代码)
  • 3分钟让Figma说中文:设计师专属的中文界面插件终极指南
  • AI时代软件工程师的核心能力是什么:斯坦福答案
  • 误码率实战解析:从理论到应用的全方位指南
  • 从博通官网精准获取ESXi与VM虚拟机套件的实战指南
  • 硬件调试革命:3大突破让AMD Ryzen系统稳定性提升5倍
  • Rust 是如何判断对象是否相等的?一起来聊一聊 PartialEq 与 Eq
  • 最大异或和路径
  • 终极指南:如何用缠论量化插件实现通达信精准交易分析
  • AI算法入门:深度学习六周学习计划
  • LifeNet Health|人原代肝细胞3D肝球体标准化培养实操方案【曼博生物】
  • 新手建模常见错误:面反、破面、重叠
  • 用ESP-01S和51单片机做个手机遥控灯:从AT指令配置到代码烧录的保姆级避坑指南
  • 抖音无水印批量下载神器:5分钟搞定创作者素材收集的终极指南
  • 手把手教你将大疆无人机GPS数据接入ROS:从PSDK到NavSatFix话题的保姆级封装教程
  • [技术讨论] 【每周分享】变频器驱动电路正负电压正常,波形也正常,偏偏带载就炸机
  • tsMuxer视频封装指南:3步掌握无损音视频轨道处理技术
  • Conditional Domain Adversarial Network (CDAN):从类感知对齐到实战调优
  • CasRel关系抽取详细步骤:从cd CasRel到print(result)的终端实操全记录
  • MiniCPM-o-4.5-nvidia-FlagOS保姆级教程:Linux服务器后台常驻运行+nginx反向代理配置
  • Legacy模式实战|WinPE系统安装全攻略,从分区到引导一步到位