共计 562 个字符,预计需要花费 2 分钟才能阅读完成。
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 次齐全没有必要。
正文完