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

TCP/IP状态迁移

TCP(传输控制协议)是一种面向连接的流式控制协议,它定义了不同的状态以管理通信过程中的连接。TCP 状态迁移描述了 TCP 连接在不同状态之间的转换过程,常见的 TCP 状态包括 CLOSED、LISTEN、SYN_SENT、SYN_RECEIVED、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、CLOSE_WAIT、LAST_ACK 和 TIME_WAIT 等。

下面是一个简单的客户端发起连接: TCP 状态迁移示意流程:

1、客户端发起连接

      CLOSED -> SYN_SENT

      客户端发送 SYN 包(同步请求)给服务端,并且状态切换为 SYN_SENT

2、服务端响应连接

     SYN_SENT -> SYN_RECEIVED -> ESTABLISHED

     服务端发送 SYN-ACK 包(同步应答)给客户端,SYN_RECEIVED(触发 accept)

3、客户端确认连接

     SYN_SENT -> ESTABLISHED

     客户端发送 ACK 包(确认)给服务端

4、数据传输过程

     ESTABLISHED

     数据通过连接在客户端和服务端之间传输

5、关闭连接

ESTABLISHED -> FIN_WAIT_1
客户端发送 FIN 包(结束连接)给服务端


FIN_WAIT_1 -> CLOSE_WAIT
服务端发送 ACK 包给客户端


CLOSE_WAIT -> LAST_ACK
服务端发送 FIN 包给客户端


LAST_ACK -> CLOSED
客户端发送 ACK 包给服务端,连接关闭

6、连接终止

TIME_WAIT 
客户端和服务端等待一段时间(2MSL,最长报文段寿命),确保最后一个 ACK 能够到达对方

http://www.lryc.cn/news/310493.html

相关文章:

  • C语言实现各类排序算法
  • Network LSA 结构简述
  • 揭示IP风险画像的作用与价值
  • [python] dataclass 快速创建数据类
  • opencv实现图像的融合
  • Orbit 使用指南 02 | 在场景中生成原始对象| Isaac Sim | Omniverse
  • 【2024】利用python爬取csdn的博客用于迁移到hexo,hugo,wordpress...
  • 从嵌入式Linux到嵌入式Android
  • 蓝桥ACM培训-实战1
  • 波动数列(蓝桥杯)
  • 第二篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas金融数据分析
  • Flink:Temporal Table Function(时态表函数)和 Temporal Join
  • Go语言中的时间控制:定时器技术详细指南
  • 面试笔记系列六之redis+kafka+zookeeper基础知识点整理及常见面试题
  • Golang动态高效JSON解析技巧
  • 双重检验锁
  • 【RISC-V 指令集】RISC-V DSP 扩展指令集介绍(一)
  • RocketMQ - CentOS 7.x 安装单机版并测试
  • [JavaWeb玩耍日记]HTML+CSS+JS快速使用
  • 如何使用ArcGIS Pro创建最低成本路径
  • Neoverse CSS N3:实现市场领先能效的最快途径
  • JavaScript实现的计时器效果
  • 仿函数(Functor(c++))
  • 智能汽车加速车规级存储应用DS2431P+TR 汽车级EEPROM 存储器IC
  • js json转换成字符串
  • Linux笔记--基本操作指令
  • 论文阅读:基于超像素的图卷积语义分割(图结构数据)
  • 记录踩过的坑-macOS下使用VS Code
  • 30天JS挑战(第十四天)------数据的复制
  • 【洛谷 P8682】[蓝桥杯 2019 省 B] 等差数列 题解(数学+排序+辗转相除法)