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

相关推荐
步步为营DotNet2 小时前
深度剖析.NET中IHostedService:后台服务管理的关键组件
服务器·网络·.net
Ares-Wang3 小时前
网络》》路由引入 、路由控制 》》路由策略 route-policy 、Filter-Policy(过滤策略)
网络·智能路由器
Jia ming4 小时前
虚拟地址与物理地址:64位VS48位
网络
Ghost Face...4 小时前
i386 CPU页式存储管理深度解析
java·linux·服务器
的卢马飞快5 小时前
【C语言进阶】给数据一个“家”:从零开始掌握文件操作
c语言·网络·数据库
Yu_Lijing5 小时前
《图解HTTP》笔记与读后感(上)
网络·笔记·网络协议·http
czy87874755 小时前
connect() 的阻塞特性取决于它所关联的 socket 是否被设置为非阻塞模式,connect() 会等待 TCP 三次握手的超时时间
服务器·网络·tcp/ip
geshifei6 小时前
Sched ext回调2——enable(linux 6.15.7)
linux·运维·服务器
上海云盾-小余6 小时前
Edge SCDN是如何实现智能 WAF 防护的?
前端·网络·安全·edge
傻啦嘿哟7 小时前
Python批量重命名照片并按拍摄日期归类:从原理到实践
linux·运维·服务器