TCP为什么需要3次握手,为什么2次不行,4次可以吗?

结论:2次不够,4次冗余。
本文简述自己的理解,没有过多的技术用语,若有错误望指正。

TCP的连接建立

A:您好,我是 A。 (SYN)
B:您好 A,我是 B。 (SYN + ACK)
A:您好 B。 (ACK)

TCP的设计初衷

1.认为网络环境恶劣,因此在设计时,需要算法来保证传输的可靠
2.TCP是全双工协议,收到的消息一定有回复,因此达到三次

为什么一定是3次

下面分别解释为什么1次和2次不行,而4次就冗余。

1. 为什么1次不行

A发送的包一定需要得到B的回复。

2. 为什么2次不行

1.对于B发送的回复,B需要收到对应该回复的回复。
2.假设2次握手后,连接建立:在断开连接后,若B收到A在断开连接之前发送的,但是由于堵塞延迟等原因此时才到达B的包,B会误认为A要建立连接。这导致连接重新建立,而实际发送端A并没有连接需求。

3. 为什么4次冗余

按照上面的逻辑,B在接收到A对B的应答的应答之后,应该发送一个对该“应答的应答”的应答。但实际上继续按照这样下去,发送4次、40次都400次都不足够。因此,达到最基本的有去有回的状态就可以了,即3次。

补充

这里再提一下,TCP在握手过程中,还有发送包序号的确认,A和B均会给出发送的包的起始序号。这种序号是跟随时间的变化而变化的,这样就可以确保不会收到“乱入”的包。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值