您现在的位置是:首页 > 编程 > 

TCP 为什么采用三次握手和四次挥手以及 TCP 和 UDP 的区别

2025-07-23 20:29:45
TCP 为什么采用三次握手和四次挥手以及 TCP 和 UDP 的区别 1. TCP 为什么采用三次握手和四次挥手采用三次握手的原因:确认双方的收发能力。第一次握手,客户端发送 SY 报文,告诉服务器自身具备发送数据的能力,第二次握手,服务器回应 SY + ACK 报文,表名自己既能发送数据也能接受数据,第三次握手,客户端发送 ACK 报文,确认自己也具备接受数据能力,以此来确保双方的收发能力处

TCP 为什么采用三次握手和四次挥手以及 TCP 和 UDP 的区别

1. TCP 为什么采用三次握手和四次挥手

采用三次握手的原因:

  1. 确认双方的收发能力。第一次握手,客户端发送 SY 报文,告诉服务器自身具备发送数据的能力,第二次握手,服务器回应 SY + ACK 报文,表名自己既能发送数据也能接受数据,第三次握手,客户端发送 ACK 报文,确认自己也具备接受数据能力,以此来确保双方的收发能力处于正常情况。
  2. 防止失效连接请求干扰。如果客户端发送的连接请求因为网路延迟或其他原因停滞,之后客户端重新发送请求并成功建立连接,此时上一次停滞的连接请求到达服务器,如果服务器仅使用两次握手就建立连接,就会导致错误连接,通过三次握手,服务器收到延迟请求后回应,客户端并不知道这次回应是回应上次的消息,所以也不会向服务端发送 ACK 报文。
  3. 避免重复连接请求。如果没有第三次握手,客户端发送连接请求后未收到服务器响应而重发,服务器可能受到重复请求建立多个相同连接,造成资源浪费和混乱,第三次握手可以确认连接请求的唯一性。

采用四次挥手的原因:

  1. 全双工通信模式。由于 TCP 连接是全双工的,数据可在两个方向上同时传输,关闭连接时,每个方向的通信都需要单独关闭,所以需要双方分别发送 FI 报文来通知对方自己不再发送数据了,再由对方发送 ACK 报文确认,这样另一端关闭时也需要向对方重复上述步骤,就是四次挥手。
  2. 确认数据完整传输。当一方发送 FI 报文表示不再发送数据时,另一方可能还有数据没有发送完,接受 FI 报文的一方先发送 ACK 确认,等到自身的数据发送完毕后,再发送 FI 报文通知对方,这样就确保双方的数据都完整传输,避免数据丢失。
  3. 保证可靠的连接终止。每一次报文交互都是对对方关闭操作的确认,这种确认方式保证了连接关闭的可靠性和有序性,使双方都能明确连接的状态变化,正确释放与连接相关的资源。
  4. 等待时间保障。在第四次挥手中,最开始发送 FI 报文的一方接收到对方的 FI 报文并发送 ACK 后需要进入 TIME_WAIT 状态等待一段时间(通常为 2 倍的最大报文段寿命),这是为了确保对方能收到 ACK 报文,防止因为 ACK 丢失导致对方重发 FI 报文,而这一方先结束了,也就保证了连接能够可靠的终止。
2. TCP 和 UDP 的区别:
  1. 连接方式:TCP 是有链接的协议(通信双方保存了通信对端的信息),UDP 是无连接的协议(没有保存)
  2. 可靠性:TCP 提供可靠的数据传输,通过确认应答,超时重传等机制来确保数据的完整性和准确性,如果说发送方发送的数据没有被接收方正确接收,发送方就会重新发送数据。UDP 则不提供可靠的数据传输,不会关心发送的数据是否被正确接收
  3. 传输效率:TCP 相对与 UDP 来说效率较低
  4. 传输的大小:TCP 传输是面向字节流的,UDP 传输是面向数据报的,传输的单位就不是字节了,一次发送 / 接收完整的数据报
  5. TCP 支持全双工(一个通信链路可以发送数据,也可以接收数据),UDP 支持全双工和半双工(一个通信链路只能发送/接收)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2024-12-29,如有侵权请联系 cloudcommunity@tencent 删除tcp服务器连接数据udp

#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格

本文地址:http://www.dnpztj.cn/biancheng/1189592.html

相关标签:无
上传时间: 2025-07-22 18:38:02
留言与评论(共有 10 条评论)
本站网友 北京二炮总医院
12分钟前 发表
确认自己也具备接受数据能力
本站网友 怎样瘦腿
7分钟前 发表
表名自己既能发送数据也能接受数据
本站网友 股指期货一手多少钱
10分钟前 发表
第三次握手可以确认连接请求的唯一性
本站网友 上海音乐学院实验学校
0秒前 发表
保证可靠的连接终止
本站网友 薇婷脱毛膏怎么用
26分钟前 发表
客户端并不知道这次回应是回应上次的消息
本站网友 mops
6分钟前 发表
最开始发送 FI 报文的一方接收到对方的 FI 报文并发送 ACK 后需要进入 TIME_WAIT 状态等待一段时间(通常为 2 倍的最大报文段寿命)
本站网友 太原蒙山大佛
16分钟前 发表
这样就确保双方的数据都完整传输
本站网友 海南房产网
28分钟前 发表
此时上一次停滞的连接请求到达服务器
本站网友 城市绿化树木
4分钟前 发表
表名自己既能发送数据也能接受数据