TCP为什么需要三次握手四次挥手

本文深入解析TCP三次握手的原理,阐述了为何TCP建立连接需要三次握手而非两次,以及每次握手的作用。同时,对比了四次挥手的过程,解释了为什么在断开连接时中间两次不能合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先需要知道,TCP是双向连接,即通信两端能互相发送数据,而单向连接是只能一端发一端收。

其次,每个TCP报文都需要一个应答消息,确认报文收到了。

所以,需要三次握手,原因如下:

A -----> B  :   

        请求建立连接(第一次握手,SYN=1)。

B----->A  :   

        应答上面的报文,这个时候,只是建立了A到B的单向连接,也就是只能A发送,B接收(第二次握手,ACK=1)。

B----->A :

        请求建立连接,这次建立连接的方向和第一次是相反的(第三次握手,SYN=1)。

A------>B:

        应答上面的报文,到这里TCP的双向连接才建立完成(第四次握手,ACK=1)。

但是,第二次和第三次都是B向A发送报文,有必要分两次发送吗?于是将中间两次合并到一起(SYN=1,ACK=1),就成了现在的三次握手。

四次挥手是一样的,但是A请求断开连接的时候,B可能还有数据要发送,所以B不能在这个时候也请求断开连接,也就是中间两次不能合并。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值