美文网首页
为什么 TCP 建立会话要三次握手?

为什么 TCP 建立会话要三次握手?

作者: Lol刀妹 | 来源:发表于2019-08-19 19:43 被阅读0次

TCP 位于传输层,提供可靠的字节流服务。

所谓可靠的传输服务是指,能够把数据准确可靠的传给对方,并且 TCP 协议能够确认数据最终是否达到对方。

为了准确无误的将数据送达目标,TCP 协议采用了三次握手(three-way handshaking)策略。用 TCP 协议把数据包送出去后,TCP 不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。

简而言之:TCP连接的双方都要确保双方发送和接收消息的能力都是OK的。

网图
  • 第一次握手:客户端发送一个带 SYN 标志的数据包给服务端。服务端收到后,此时客户端不知道自己的接收发送能力是否OK,也不知道服务端的接收发送能力是否OK。服务端只知道客户端的发送能力OK,以及自己的接收能力OK。
  • 第二次握手:服务端回传一个带有 SYN/ACK 标志的数据包给客户端。当客户端接收到服务端发送来的消息后,客户端可以确认自己和服务端发送和接收能力都是OK的,但是服务端此时只能确定自己的接收能力OK以及客户端的发送OK。
  • 第三次握手:客户端再回传一个带 ACK 标志的数据包。服务端接收到后可以确定客户端接收能力OK,自己的发送能力也OK。

经过这三次握手,客户端确定客户端和服务端的接收发送能力OK,服务端也确定了客户端和服务端的接收发送能力OK,准备工作完成。


回到最初的问题:为什么 TCP 建立会话要三次握手?

因为双方确认彼此都能收发消息至少需要三次,两次不够,四次浪费。

注:这只是目前我个人的理解,实际上问题的答案比这复杂,等以后我了解得更深入了再补充。

相关文章

  • TCP的三次握手和四次挥手

    目录 名词解释 TCP的三次握手TCP建立链接的步骤TCP的三次握手步骤思考:TCP握手为什么不是两次 or 四次...

  • 保持会话连接

    网站使用TCP协议,每次连接建立会话需要三次握手,为了提高效率,一次建立会话后连接保持一定时间,不许要每次请求都进...

  • TCP10问

    1.TCP建立连接时需要几次握手, 断开连接需要几次握手? TCP建立连接需要三次握手, 断开连接要四次握手。现有...

  • 为什么 TCP 建立会话要三次握手?

    TCP 位于传输层,提供可靠的字节流服务。 所谓可靠的传输服务是指,能够把数据准确可靠的传给对方,并且 TCP 协...

  • Socket连接和释放

    socket中TCP的三次握手建立连接详解 我们知道tcp建立连接要进行“三次握手”,即交换三个分组。大致流程如下...

  • TCP三次握手四次挥手

    为什么要“三次握手,四次挥手”? 1)所谓三次握手(Three-way Handshake),是指建立一个TCP连...

  • 简明理解三次握手和四次挥手

    三次握手与四次挥手分别对应TCP连接建立过程与断开过程,先上TCP报文格式: 三次握手过程: 问题1: 为什么要三...

  • TCP三次握手和四次挥手以及缺陷

    建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 1、TCP连接建立——三次握手 几...

  • Alamofire前奏之TCP三握四挥

    建立TCP需要三次握手才能建立,而断开连接则需要四次挥手。 一、TCP三次握手? TCP有6种标识:SYN(建立联...

  • Alamofire -- TCP三握四挥理解(转载)

    建立TCP需要三次握手才能建立,而断开连接则需要四次挥手。 一、TCP三次握手? TCP有6种标识:SYN(建立联...

网友评论

      本文标题:为什么 TCP 建立会话要三次握手?

      本文链接:https://www.haomeiwen.com/subject/xughsctx.html