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 天前
【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·程序员·编程·网络安全就业
christine-rr1 天前
linux常用命令(4)——压缩命令
linux·服务器·redis
東雪蓮☆1 天前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
树码小子1 天前
Java网络编程:(socket API编程:TCP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·tcp/ip
乌萨奇也要立志学C++1 天前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器
绿箭柠檬茶1 天前
Ubuntu 服务器配置转发网络访问
服务器·网络·ubuntu
real 11 天前
传输层协议UDP
网络·网络协议·udp
獭.獭.1 天前
Linux -- 信号【上】
linux·运维·服务器
路由侠内网穿透1 天前
本地部署 GPS 跟踪系统 Traccar 并实现外部访问
运维·服务器·网络·windows·tcp/ip
ZERO_pan1 天前
服务器装机遇到的问题
运维·服务器