TCP的三次握手,四次断开

TCP 三次握手(Three-Way Handshake)

TCP(三次握手)是为了在发送数据之前,客户端和服务器之间建立可靠的连接。这个过程确保双方已经准备好发送和接收数据。三次握手的步骤如下:

假如你(客户端)和你朋友(服务器)在打电话,你和朋友之间需要确认双方都在线并准备好交流。类似于 TCP 的三次握手过程。

    1.    SYN (Synchronize)
    客户端向服务器发送一个 SYN 报文,表示请求建立连接,并且包含一个初始序列号。

客户端(你):拨通了朋友的电话(发送 SYN 报文),说“喂,在吗?能听到吗?我想跟你聊聊。”(告诉服务器你想建立连接)

2.    SYN-ACK (Synchronize-Acknowledge)
   服务器收到 SYN 报文后,回复一个包含 SYN 和 ACK 标志的报文,确认收到了客户端的 SYN 请求,同时也向客户端发送一个自己的初始序列号

服务器(你的朋友):接听电话并回复“我在,我能听到。(发送 SYN-ACK 报文)你也能听到我说话吗?”(告诉客户端它准备好了,同时确认收到了客户端的请求)。

 

3.    ACK (Acknowledge)
    客户端收到 SYN-ACK 报文后,发送一个 ACK 报文,确认收到了服务器的序列号。此时,连接建立完成。

客户端(你):听到朋友的回复后说“OK,我能听到,........”(发送 ACK 报文,确认收到了服务器的回应)。

 

TCP 四次断开(Four-Way Termination)

TCP(四次断开)是为了在数据传输完成后,安全地关闭连接。这个过程确保所有数据都已经传输并且双方同意关闭连接。四次断开的步骤如下:

打完电话后,你和朋友需要确保双方都同意结束通话。这类似于 TCP 的四次断开过程。

    1.    FIN (Finish)
    客户端向服务器发送一个 FIN 报文,表示它已经完成了数据传输,并且请求关闭连接。

客户端(你):说“我这边说完了,可以挂电话了。”(发送 FIN 报文,表示你已经发送完数据,准备关闭连接)。

 

2.    ACK (Acknowledge)
    服务器收到 FIN 报文后,发送一个 ACK 报文,确认收到了客户端的 FIN 请求,但此时连接还未关闭,服务器可能还需要发送剩余的数据。

服务器(你的朋友):说“我知道你说完了,但我还有点话要说。”(发送 ACK 报文,确认收到了客户端的请求,但服务器可能还有数据要发送)。

 

3.    FIN (Finish)
    服务器发送完剩余的数据后,向客户端发送一个 FIN 报文,表示它也完成了数据传输,并且请求关闭连接。

服务器(你的朋友):说完自己的话后说“好了,我也说完了,现在可以挂电话了。”(发送 FIN 报文,表示服务器也发送完了数据,准备关闭连接)。

 

4.    ACK (Acknowledge)
    客户端收到 FIN 报文后,发送一个 ACK 报文,确认收到了服务器的 FIN 请求。此时,连接完全关闭。

客户端(你):说“好的,我听到了,拜拜!”(发送 ACK 报文,确认收到了服务器的请求)。

通过这些步骤,TCP 确保了在建立和断开连接时,双方都能正确地进行通信并确认对方的状态。

此时,电话挂断,连接正式关闭。通过这个过程,TCP 确保了在断开连接时,双方都能够安全地完成数据传输并确认对方的状态。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TCP (Transmission Control Protocol) 是一种基于连接的、可靠的传输层协议,它的通信过程包括三次握手建立连接和四次挥手关闭连接。 **三次握手(Three-way Handshake)**: 1. **SYN(同步序号)阶段**:客户端发送一个 SYN 包到服务器,请求建立连接,包中包含随机生成的初始序列号(seq)。 2. **ACK(确认应答)阶段**:服务器接收到 SYN 包后,回应一个 SYN+ACK 包,确认序列号(ack),并设置自己的初始序列号(seq)。 3. **FIN(结束连接)阶段**:当服务器准备好接收数据后,会发送一个 FIN 包给客户端,表明它已经不再需要进一步的数据了。此时连接还未完全关闭,客户端还会等待一段时间后再发送一个 ACK 包确认关闭。 **四次挥手(Four-way handshake)**: 1. **FIN(结束连接)阶段续**:客户端收到服务器的 FIN 包后,如果还有未发送的数据,则先发送一个 ACK 包确认,然后发送自己的 FIN 包,表示客户端也准备断开连接。 2. **ACK(确认应答)阶段续**:服务器收到客户端的 FIN 包后,回复一个 ACK 包确认,并进入半关闭状态。 3. **FIN(结束连接)阶段再续**:服务器等待一段时间后,如果没有新的数据传输,再发送一个 FIN 包给客户端,正式断开连接。 4. **ACK(确认应答)阶段终结**:客户端接收到服务器的 FIN 包后,发送最后一个 ACK 包,至此,整个连接才真正关闭。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值