TCP三次握手如果使用二次握手代替则会出现的问题

简述

  1. 第一次握手,发送SYN报文,传达信息:“你好,我想建立连接”;
  2. 第二次握手,回传SYN+ACK报文,传达信息:“好的,可以建立链接”;
  3. 第三次握手,回传ACK报文,传到信息:“好的,我知道了,那我们连接”。然后就建立连接了。在发送报文之前各方都要确认可以进行连接。

建立连接的过程是利用客户服务器模式,假设主机A为客户端,主机B为服务器端。

  1. TCP的三次握手过程:主机A向B发送连接请求;主机B对收到的主机A的报文段进行确认;主机A再次对主机B的确认进行确认。
  2. 采用三次握手是为了防止失效的连接请求报文段突然又传送到主机B,因而产生错误。失效的连接请求报文段是指:主机A发出的连接请求没有收到主机B的确认,于是经过一段时间后,主机A又重新向主机B发送连接请求,且建立成功,顺序完成数据传输。考虑这样一种特殊情况:主机A第一次发送的连接请求并没有丢失,而是因为网络节点导致延迟达到主机B,主机B以为是主机A又发起的新连接,于是主机B同意连接,并向主机A发回确认,但是此时主机A根本不会理会,主机B就一直在等待主机A发送数据,导致主机B的资源浪费。
  3. 采用两次握手不行,原因就是上面说的失效的连接请求的特殊情况。
  • 如果采取两次握手,相当于第二次握手结束便建立连接,如果发送SYN的一方不想连接了,也不会有反馈,另一方却一直在等待,浪费了时间。
  • 当然可以采取4次甚至N次握手,但是建立连接的时间太长,效果也会大打折扣。
  • 因此3次握手属于最佳方案,既保证了可靠性,又节俭了建立连接的时间
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值