TCP 连接管理:三次握手与四次挥手详解

TCP 连接管理:三次握手与四次挥手详解

一、三次握手:建立可靠连接

核心目标:确保通信双方具备正常的收发能力,同步初始序列号,避免历史连接干扰。

第一次握手(SYN)
客户端:发送 SYN=1(同步标志位)、seq=x(随机初始序列号)的报文,进入 SYN_SENT 状态。
作用:验证客户端的发送能力和服务端的接收能力。
风险规避:若报文丢失,客户端会重传,防止因网络延迟导致资源浪费。
第二次握手(SYN+ACK)
服务端:回复 SYN=1、ACK=1(确认标志位)、seq=y(随机初始序列号)、ack=x+1(确认客户端序列号)的报文,进入 SYN_RECV 状态。
作用:验证服务端的收发能力和客户端的收发能力。
关键点:服务端需分配资源(如缓存、连接表),但此时连接未完全建立。
第三次握手(ACK)
客户端:发送 ACK=1、seq=x+1、ack=y+1 的报文,进入 ESTABLISHED 状态。
服务端:收到确认后进入 ESTABLISHED 状态。
作用:最终确认服务端的接收能力,完成序列号同步。
数据传输:此后双方可开始可靠数据传输。
为什么需要三次?
两次握手无法解决历史连接问题:若客户端的旧 SYN 延迟到达,服务端会误建连接并分配资源,而客户端已忽略该请求,导致资源浪费。
三次握手确保双方状态同步:通过第三次确认,服务端能感知客户端的接收能力,避免单方面资源占用。
在这里插入图片描述

二、四次挥手:安全终止连接

核心目标:全双工连接需独立关闭两个方向的数据传输,确保数据完整性和资源释放。
第一次挥手(FIN)
主动方(如客户端):发送 FIN=1、seq=u 的报文,进入 FIN_WAIT_1 状态。
作用:表示不再发送数据,但仍可接收数据。
半关闭状态:此时连接处于“发送关闭,接收开放”状态。
第二次挥手(ACK)
被动方(服务端):回复 ACK=1、ack=u+1、seq=v 的报文,进入 CLOSE_WAIT 状态。
主动方:收到确认后进入 FIN_WAIT_2 状态。
作用:确认客户端的关闭请求,服务端可能仍有数据需发送。
第三次挥手(FIN)
被动方:发送 FIN=1、ACK=1、seq=w、ack=u+1 的报文,进入 LAST_ACK 状态。
作用:表示服务端数据发送完毕,请求关闭另一方向连接。
第四次挥手(ACK)
主动方:回复 ACK=1、seq=u+1、ack=w+1 的报文,进入 TIME_WAIT 状态。
被动方:收到确认后进入 CLOSED 状态,释放资源。
主动方:等待 2MSL(最大报文生存时间)后进入 CLOSED 状态。
作用:
确保最后一个 ACK 到达服务端(若丢失,服务端会重传 FIN)。
防止旧连接报文干扰新连接(2MSL 后网络中旧报文已失效)。
为什么需要四次?
全双工特性:TCP连接支持双向独立传输,每个方向需单独关闭。
数据完整性:服务端可能在收到 FIN 后仍有数据需发送,需通过第二次和第三次挥手分阶段处理。
可靠终止:TIME_WAIT 状态确保连接终止的可靠性,避免网络问题导致异常。
在这里插入图片描述

三、关键状态与标志位

三次握手状态:
客户端:CLOSED → SYN_SENT → ESTABLISHED
服务端:CLOSED → LISTEN → SYN_RECV → ESTABLISHED
四次挥手状态:
主动方:ESTABLISHED → FIN_WAIT_1 → FIN_WAIT_2 → TIME_WAIT → CLOSED
被动方:ESTABLISHED → CLOSE_WAIT → LAST_ACK → CLOSED
标志位:
SYN:同步序列号,建立连接时使用。
ACK:确认序号有效,连接建立后所有报文需置 ACK=1。
FIN:终止连接,表示数据发送完毕。

四、总结

三次握手:通过三个报文段建立可靠连接,解决历史连接问题,确保双方收发能力正常。
四次挥手:分阶段关闭全双工连接,保障数据完整性和资源释放,TIME_WAIT 状态增强可靠性。
设计精髓:TCP协议通过严谨的握手与挥手机制,在不可靠的网络中实现了可靠的数据传输。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值