口试突击:为什么 TCP 须要 3 次握手?

分享
程序员 2024-9-19 12:45:48 168 0 来自 中国
TCP 三次握手是一道经典的口试题,它是指 TCP 在通报数据之前,须要举行 3 次交互才气正式创建起毗连,并举行数据通报。TCP 之以是须要 3 次握手是由于 TCP 双方都是全双工的。所谓全双工指的是,TCP 任何一端既是发送数据方,又是接收数据方,因此这就要求 TCP 通讯双方既要包管自己的发送能力,又要包管自己的接收能力才行。这就似乎打电话时,通讯双方都要包管自己能话筒(通报声音)和耳机(接收声音)都是正常的才行,如许才气举行有效的交换,通常打电话时,都是如许开头的:

  • 我:喂,能听到我语言吗?
  • 对方:能听到你语言,你能听到我语言吗?
  • 我:能听到你语言,那我们就来聊正事吧。
TCP 三次握手也是雷同的原理,3 次握手证明的能力详情如下:
TCP 三次握手流程

TCP 三次握手流程如下:

  • 客户端发送 SYN 给服务器端,表示渴望创建毗连;
  • 服务器端接收到消息之后,回应一个 SYN 和 ACK(确认应答)给客户端;
  • 客户端收到服务器端的 SYN 报文之后,回应一个 ACK 报文。
具体实验流程如下图所示:
总结

TCP 之以是须要 3 次握手,是由于 TCP 通讯双方都是全双工的,以是要颠末 3 次交互才气确认双方的发送能力和接收能力,而且 TCP 握手必须是 3 次,如果是 2 次握手,不能证明服务器端的发送能力和客户端的接收能力;也不能是 4 次握手,由于 3 次已经能证明的事情,再交互握手 1 次完全没有须要。
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2025-3-10 20:45, Processed in 0.202127 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表