tcp连接为什么是三次握手不是两次

TCP的三次握手主要是为了防止已失效的连接请求报文段突然到达服务器,导致服务器资源浪费。通过三次握手,可以确保双方都有发送和接收能力,并避免旧的连接请求报文段引起错误连接。此外,这一过程也保证了连接的可靠性。
摘要由CSDN通过智能技术生成

原因:第三次握手时为了防止已失效的连接请求报文段有传送到服务端,因而产生错误。
详细解释:
所谓“防止已失效的连接请求报文”是这样产生的。考虑一种正常情况。A发出连接请求,但因连接请求报文丢失而未收到确认。于是A再重传一次请求连接。后来收到了确认,建立了连接。数据传输完毕后,就释放了连接。A共发送了两个连接请求报文段。其中第一个丢失,第二个到达了B。没有“已失效的请求连接报文段”。

现假定出现一种异常情况,即A发出的第一个请求连接报文段并没有丢失,而是在某些网络结点长时间滞留了,以至到连接释放以后的某个时间才到达B。本来这是一个已失效的报文段。但B收到此失效的连接请求报文段后,就误认为是A又发出一次新的连接请求。于是就向A发出确认报文段,同意建立连接。假定不采用三次握手,那么只要B发出确认,新的连接就建立了。

由于现在A并没有发出建立请求的连接,因此不会理睬B的确认,也不会向B发送数据,但B却以为新的运输连接已经建立了,并一直等待A发来的数据。B的许多资源就这样白白浪费了。

采用三次握手的办法可以防止上述现象发生。例如在刚才的情况下,A不会向B的确认发出确认。B由于收不到确认,就知道A并没有要求建立连接,所以就不会分配资源给这个连接。

然后看外面的有另外一种解释,如:说第三次握手是为了保证服务器确认客户端的接收能力正常和自己的发送能力正常。感觉理解起来也不错,这样确实说的过去。所以放在这里供大家参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值