为什么是三次握手而不是二次握手或者四次握手呢?

只进行两次握手会出现什么问题?

如果只进行两次握手就可以建立连接的话,比如,客户端发送的某一个连接报文段并没有丢失,而是长时间滞留在某个网络节点,以导致延误到连接释放以后的某个时间段才到达服务器端。服务器端误以为这是客户端发出的又一次新的连接请求。于是就向客户端发出确认报文,同意建立连接,若只有两次握手,此时新的连接已经建立了。服务器端会一直等待客户端发来数据,服务器的许多资源会被浪费。
如果采用了三次握手,由于客户端并没有发送新的连接请求,服务器端接收到的只是一个失效的报文段,所以客户端并不会理踩服务器端发送的确认,也不会向服务器端发送确认,此时服务器端就会知道客户端并没有请求建立连接,连接不会建立,也不会一直等待。

不需要四次握手的原因:

客户端发出第三次握手信息后没有接收到服务器的请求就进入连接状态,若客户端的确认包丢失或滞留怎么办?

由于完全可靠的通信协议是不存在的,在经过三次握手之后,客户端和服务端双方已经确认了自己和对方的通信情况,确保了接受和发送是正常的,所以即便再增加握手次数也不能保证之后的通信完全可靠,所以没必要!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值