今天给大家分享网络协议面试中最有可能会被问到的一个问题,大家可以收藏起来,以防以后面试中被问到。
最常见的面试问题:请详细描述一下“三次握手”:
TCP协议建立链接需要通过三次握手,让传输更加可靠。
来,接下来,通过一幅图来带大家直观的感受一下,三次握手的具体流程。
一、先来干货
我们用文字来描述一下这个过程:
第一次握手
客户端向服务器发出请求连接,这时报文首部中的同部位为SYN=1,同时随机生成初始序列号为 seq=x,这是第一次握手,表示客户端想和服务端建立连接。
服务端收到客户端请求后,同意接受连接,会向客户端返回确认报文。确认报文中应该 ACK=1,SYN=1,确认号是 ack=x+1,同时为自己随机初始化一个序列号 seq=y。在返回确认报文的同时,也会询问客户端是否准备好接受。这是第四次握手。
客户端收到服务端返回的确认后,还要向服务器给出确认,确认已经准备好接受。确认报文的 ACK=1,ack=y+1,此时,TCP 正式连接建立。这是第三次握手。
二、再来软文
什么,是不是有小伙们还是不太理解三次握手是什么意思,哈哈哈,贴心的我已经发现了,所以我再通过一个非常浪漫的案例给大家介绍一下,三次握手到底是什么意思。来,我们来看一下这幅图
哈哈哈,是不是很浪漫,我用文字来描述一下,tcp的三次握手可以看成男生追求女生的三次握手。
第一次握手
校草向校花表白,表示非常喜欢她,想跟她交往。
第二次握手
校花收到校草的表白后,给校草返回了一个信息,表示自己已经收到他的表白了,其实自己也挺喜欢他的,也愿意接受和他交往。
第三次握手
校草收到校花的回信开心的飞起来了,知道校花接受了自己,也愿意跟自己交往。于是就再回信给校花,表示校花的回信,自己已经收到了,自己也准备好咱俩交往的规划了。
到此为止,三次握手结束,校草与校花正式开始交往。
这里面,我们可以把校草看成客户端,校花看成服务端。通过这个案例,小伙伴们是不是瞬间对三次握手有了更清楚的理解了。但是为什么TCP协议建立连接需要进行三次握手呢?
三、为什么需要建立三次握手?
其实建立三次握手的主要目的是确保建立可靠的连接。不会因为网络的一些问题导致这个传输过程失效。如果客户端没有正常回应,那么就可以直接结束连接过程了,以防止最终的连接失效。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
qq群号:485187702【暗号:csdn11】
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 希望能帮助到你!【100%无套路免费领取】