TCP三次握手四次断开

在TCP(Transmission Control Protocol,传输控制协议)的三次握手和四次断开是其建立连接和关闭连接的重要机制。

三次握手是在建立连接时进行的,顺序依次完成。而四次断开是在关闭连接时发生的,只有在连接已经建立并完成数据传输等操作后,才会按照特定的四次断开顺序来关闭连接。

也就是说,三次握手全部完成,连接建立成功,之后才会在需要关闭连接时按照四次断开的顺序来操作。

 

三次握手:

第一次握手:

客户端向服务器发送一个同步包,其中包含客户端选择的初始序列号。此时客户端进入 SYN_SENT(同步 发送)状态。

第二次握手:

服务器收到客户端的 同步包后,向客户端发送一个同步确认包(SYN/ACK),其中包含服务器选择的初始序列号,以及对客户端同步包的确认(ACK)。此时服务器进入 SYN_RECV (同步 接收)状态。

第三次握手:

客户端收到服务器的 同步确认包 后,向服务器发送一个 确认包 ,确认服务器的 同步包。此时客户端和服务器进入 ESTABLISHED(确立) 状态,连接建立成功。

 

三次握手的主要目的是:

- 确认双方的接收和发送能力是否正常。

- 协商初始序列号,为后续的数据传输做准备。

 

四次断开:

1. 第一次断开:

客户端向服务器发送一个 结束包(FIN),表示客户端没有数据要发送了,想要关闭连接。此时客户端进入 FIN_WAIT_1(等待结束1) 状态。

2. 第二次断开:

服务器收到客户端的 FIN 包后,向客户端发送一个 确认包,表示已经收到客户端的关闭请求。此时服务器进入 CLOSE_WAIT(等待关闭) 状态,客户端进入 FIN_WAIT_2 (等待结束2)状态。

3. 第三次断开:

服务器处理完剩余的数据后,向客户端发送一个 结束包,表示服务器也没有数据要发送了,想要关闭连接。此时服务器进入 LAST_ACK(最后确认) 状态。

4. 第四次断开:客户端收到服务器的 结束包后,向服务器发送一个 确认包,表示已经收到服务器的关闭请求。此时客户端进入 TIME_WAIT(时间等待) 状态,经过一段时间后进入 CLOSED(关闭) 状态,服务器收到客户端的 ACK 包后直接进入 CLOSED 状态,连接关闭。

 

四次断开的原因是:

- 由于 TCP 是全双工的,即双方可以同时进行数据的发送和接收,所以关闭连接时需要分别关闭发送和接收通道。

- 确保数据能够完整传输和接收,避免出现数据丢失或混乱的情况。

 

在 TIME_WAIT 状态中,客户端会等待一段时间,这是为了确保服务器能够收到最后一个 确认包,如果服务器没有收到,会重发 结束包,客户端在这段时间内还能够进行处理。

 

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星辰 曦月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值