TCP的3次握手与4次断开


 
一、TCP 三次握手
 
TCP 连接建立过程中使用三次握手来建立可靠的连接,步骤如下:
 
步骤 1:客户端发送 SYN 报文
 
客户端向服务器发送一个带有 SYN(同步)标志的 TCP 报文段,该报文段中还会包含一个初始序列号(Sequence Number,简称 Seq),用于标识本次连接中客户端发送数据的初始序号。此时客户端进入 SYN_SENT 状态。
 
步骤 2:服务器回复 SYN + ACK 报文
 
服务器收到客户端的 SYN 报文后,为该连接分配资源,并向客户端发送一个带有 SYN 和 ACK(确认)标志的 TCP 报文段。SYN 标志表示服务器同意建立连接,ACK 标志用于确认客户端的 SYN 报文。该报文段中包含服务器的初始序列号,以及对客户端初始序列号的确认号(Acknowledgment Number,简称 Ack),即客户端的初始序列号加 1。此时服务器进入 SYN_RCVD 状态。
 
步骤 3:客户端回复 ACK 报文
 
客户端收到服务器的 SYN + ACK 报文后,向服务器发送一个带有 ACK 标志的 TCP 报文段,用于确认服务器的 SYN 报文。该报文段中的确认号为服务器的初始序列号加 1。此时客户端和服务器都进入 ESTABLISHED 状态,连接建立成功,可以开始数据传输。
 
通过三次握手,客户端和服务器相互确认了对方的接收和发送能力,建立了可靠的连接。
 
二、TCP 四次断开
 
TCP 连接断开过程中使用四次挥手来安全地关闭连接,步骤如下:
 
步骤 1:客户端发送 FIN 报文
 
客户端完成数据传输后,向服务器发送一个带有 FIN(结束)标志的 TCP 报文段,请求关闭连接。此时客户端进入 FIN_WAIT_1 状态。
 
步骤 2:服务器回复 ACK 报文
 
服务器收到客户端的 FIN 报文后,向客户端发送一个带有 ACK 标志的 TCP 报文段,用于确认客户端的 FIN 报文。此时服务器进入 CLOSE_WAIT 状态,客户端进入 FIN_WAIT_2 状态。
 
步骤 3:服务器发送 FIN 报文
 
服务器完成数据传输后,向客户端发送一个带有 FIN 标志的 TCP 报文段,请求关闭连接。此时服务器进入 LAST_ACK 状态。
 
步骤 4:客户端回复 ACK 报文
 
客户端收到服务器的 FIN 报文后,向服务器发送一个带有 ACK 标志的 TCP 报文段,用于确认服务器的 FIN 报文。此时客户端进入 TIME_WAIT 状态,等待 2 倍的最大段生存期(Maximum Segment Lifetime,简称 MSL)后,连接彻底关闭。服务器收到客户端的 ACK 报文后,连接关闭。
 
通过四次挥手,客户端和服务器相互通知对方关闭连接的意图,并确保对方收到了关闭连接的请求,从而安全地关闭了连接。
 
 
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值