TCP协议的三次握手与四次挥手的过程

目录

三次握手(建立连接)

第一次握手(SYN)

第二次握手(SYN-ACK)

第三次握手(ACK)

四次挥手(终止连接)

第一次挥手(FIN)

第二次挥手(ACK)

第三次挥手(FIN)

第四次挥手(ACK)


TCP(传输控制协议)的三次握手和四次挥手是建立和终止TCP连接的两个重要过程。

三次握手(建立连接)

第一次握手(SYN)
  • 客户端发送一个SYN(同步序列编号)报文到服务器,并进入SYN_SENT状态,等待服务器确认。
  • 报文中包含客户端的初始序列号(ISN),用于后续的可靠性管理。
第二次握手(SYN-ACK)
  • 服务器收到客户端的SYN报文后,会发送一个SYN-ACK(同步确认应答)报文作为应答。
  • 服务器同样在报文中包含自己的初始序列号,并将确认序号设置为客户端的ISN加1,表示服务器已经收到了客户端的SYN。
  • 服务器此时进入SYN_RCVD状态。
第三次握手(ACK)
  • 客户端收到服务器的SYN-ACK报文后,会向服务器发送一个ACK(确认)报文。
  • 报文中将确认序号设置为服务器的ISN加1。
  • 客户端发送完这个报文后进入ESTABLISHED状态,表示客户端到服务器的连接已经建立。
  • 服务器在收到这个ACK报文后也进入ESTABLISHED状态,此时,双方都准备好了数据传输。

四次挥手(终止连接)

第一次挥手(FIN)
  • 当客户端完成数据传输后,它需要发送一个FIN(结束)报文到服务器,并进入FIN_WAIT_1状态。
  • 客户端告诉服务器它已经没有数据发送了。
第二次挥手(ACK)
  • 服务器收到这个FIN报文后,会发送一个ACK报文作为应答,并将确认序号设置为收到序号加1。
  • 服务器进入CLOSE_WAIT状态,客户端收到这个ACK报文后进入FIN_WAIT_2状态。
  • 此时,客户端到服务器的连接已经释放,但服务器可能还有数据要发送。
第三次挥手(FIN)
  • 当服务器发送完剩余的数据后,它会发送一个FIN报文到客户端,并进入LAST_ACK状态。
  • 服务器告诉客户端它已经没有数据发送了。
第四次挥手(ACK)
  • 客户端收到这个FIN报文后,会发送一个ACK报文作为应答,并将确认序号设置为收到序号加1。
  • 客户端发送完这个报文后进入TIME_WAIT状态,等待足够的时间以确保服务器收到了这个ACK报文。
  • 服务器在收到这个ACK报文后进入CLOSED状态,完成连接的终止。
  • 客户端在等待一定时间后(通常是2MSL,即最大报文生存时间的两倍),也会进入CLOSED状态。

通过三次握手和四次挥手的过程,TCP确保了连接的可靠建立和终止。

相关推荐
迪康Defender1 小时前
AI 重构终端安全运营:智能分析中枢 AI Insight 模块架构与落地场景深度解析
运维·网络·人工智能·其他·安全·重构·架构
0x531 小时前
Java网络编程(二)
java·服务器·网络
微硬创新2 小时前
老旧产线改造:耐达讯自动化16路4‑20mA转PROFINET的工程实践
人工智能·网络协议·自动化·信息与通信
西安景驰电子3 小时前
《PTP精确时间协议系列》第一篇:从原理到应用,全面解读IEEE 1588
linux·运维·服务器·开发语言·网络·windows·php
Bruce_Liuxiaowei3 小时前
基于微步在线威胁情报的公网 IP 攻击迹象监测:threatbook_query 脚本全解析与 BruceSec 平台整合实践
数据库·tcp/ip·安全·网络安全·智能体
ZGi.ai4 小时前
多模型回答不稳定:路由规则与评测方法
网络·人工智能·大模型评测·多模型·模型路由·zgi·模型网关
80s7774 小时前
独享住宅IP、长效代理ip是什么?有哪些作用?
网络·网络协议·tcp/ip
IPdodo_4 小时前
静态 IP、住宅 IP 和固定出口有什么区别?开发场景选型指南
服务器·网络·网络协议·tcp/ip·代理ip
_ZHOURUI_H_5 小时前
Unity TCP底层极限拆解:粘包、半包、CRC、序列号、双缓冲到底怎么一起工作的?
网络·网络协议·tcp/ip·游戏·unity·游戏引擎·游戏开发
长江&后浪6 小时前
防火墙的描述
开发语言·网络·php