TCP三次握手


最近听见许许多多面试官反馈,许多来公司面试的小伙伴连TCP三次握手都不甚理解.为啥我们觉得很平常的东西,仍旧有许多小伙伴不甚理解呢,
觉得可能是技术相关文档太枯燥,导致大家只是记住了,而没有理解,今天我白话的阐述一下,为啥TCP需要三次握手.
我们都知道,TCP要保证可靠的传输,一定需要经过三次握手,那么为什么是三次呢?不是二次呢?或者更多次握手??
  
  在这里我举个例子,应该很简单的就能帮助小伙伴去理解了~[我的博客]
 
  现实生活中有一个村子,有许许多多的村民,很少来往,有天村民A想去找一个他自己不认识的村民B, 但是A不认识B人,只知道B的门牌号,
  于是A根据门牌号找到了B的住址, 这里就是计算器A想和计算B想要建立连接的第一步,你得知道人家的IP地址.
  1. 村名A找到B的地址之后,看见了村民B本人,于是发出了亲切的问候:"雷猴呀",这就相当于计算机A发出的请求建立连接的请求信息syn=雷猴呀
  2. B听见A跟自己打招呼,虽然很困惑,但是还是回复了:"雷猴呀, 你是?",这就相当于计算机B表示收到了信息,SYN+ACK=(雷猴呀+ 你是)
  3. A听见B给了自己回复,就继续说自己找A的原因:"xxxxooo.......",这就相当于计算机A表示收到了信息,ACK=(.....)
 

  至此三次握手完成...
  那么很多人疑惑,为啥要三次呢?这里打个比方:村民A和村民B之前并不认识, 不知道对方是不是聋哑人,二个人想要沟通,必须同时能听见和说话,有任何一方是聋哑人,那么沟通都无法进行,也是就是我们说没法进行可靠的沟通,[拒绝任何说打手语或者其他沟通途径]
 
在1处,村民A发出了亲切的问候,我们可以知道,村民A是有说话的能力的[计算器A发包没有任何问题].
村民B收到A的问候,发出反问候,说明了什么? 说明了村民B不是聋子,同时发出反问候,说明他也不是哑巴,不然也没法发出反问候
[计算机B是可以正常接收到数据包,也可以正常发出数据包],
在2处 对于村民A来说,A现在知道了:村民B可以正常听见我说话,也可以给我反馈, 说明对于村民A来说 村民B是正常人,完全可以正常沟通.
但是,在2处 村民B还不知道村民A能不能听见自己说的话,因为村民A还没有给自己反馈,所以在这里,二次握手肯定是不可靠的.因为计算机B
只是知道计算机A能发数据包,还不知道计算机A能不能收数据包,这一起还要等到3处才能完成,这时候村民A霹雳巴拉说出自己找村民B的原因,

可以视为村民B知道了A是能说话的,这时候二人可以进行可靠的交流,这就是第三次的握手..
 
说到这里,小伙伴是不是知道TCP三次握手的原因呢?知其然知其所以然才能更加了解,不然死记硬背是很难长久记忆的
 ———————————————— 
版权声明:本文为CSDN博主「xiejin90314」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xj90314/article/details/100079796

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值