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 能够到达对方

相关推荐
青山是哪个青山1 小时前
Linux 基础与环境搭建
linux·服务器·网络
Codefengfeng2 小时前
linux系统安装软件教程
linux·运维·服务器
杜子不疼.6 小时前
UU云电脑深度测评:高性价比游戏云电脑,办公版本即将推出
服务器·游戏·电脑
huohaiyu6 小时前
从URL到页面的完整解析流程
前端·网络·chrome·url
袁袁袁袁满8 小时前
Linux云服务器如何判断系统是否发生过异常断电?
linux·运维·服务器
winfreedoms8 小时前
Puppypi——hiwonder-toolbox中配置文件解析
网络·智能路由器
Elastic 中国社区官方博客10 小时前
使用 Elastic 进行网络监控:统一网络可观测性
大数据·开发语言·网络·人工智能·elasticsearch·搜索引擎·全文检索
如若12311 小时前
AutoDL云服务器 NVIDIA 570驱动 EGL渲染修复全记录
运维·服务器·python
德迅云安全-小潘11 小时前
德迅零域(微隔离):破解云时代横向渗透困局的“手术刀”
网络·数据库·安全
晚秋大魔王11 小时前
泰拉瑞亚手机版服务器部署
运维·服务器·泰拉瑞亚