今天给大家分享网络协议面试中最有可能会被问到的几个问题,大家可以收藏起来,以防以后面试中被问到。
第一个最常见的面试问题
请详细描述一下“三次握手”:
TCP协议建立链接需要通过三次握手,让传输更加可靠。
来,接下来,小编通过一幅图来带大家直观的感受一下,三次握手的具体流程
我们用文字来描述一下这个过程:
第一次握手
客户端向服务器发出请求连接,这时报文首部中的同部位为SYN=1,同时随机生成初始序列号为 seq=x,这是第一次握手,表示客户端想和服务端建立连接。
第二次握手
服务端收到客户端请求后,同意接受连接,会向客户端返回确认报文。确认报文中应该 ACK=1,SYN=1,确认号是 ack=x+1,同时为自己随机初始化一个序列号 seq=y。在返回确认报文的同时,也会询问客户端是否准备好接受。这是第四次握手。
第三次握手
客户端收到服务端返回的确认后,还要向服务器给出确认,确认已经准备好接受。确认报文的 ACK=1,ack=y+1,此时,TCP 正式连接建立。这是第三次握手。
什么,是不是有小伙们还是不太理解三次握手是什么意思,哈哈哈,贴心的小编已经发现了,所以小编再通过一个非常浪漫的案例给大家介绍一下,三次握手到底是什么意思。来,我们来看一下这幅图
哈哈哈,是不是很浪漫,小编用文字来描述一下,tcp的三次握手可以看成男生追求女生的三次握手。
第一次握手
校草向校花表白,表示非常喜欢她,想跟她交往。
第二次握手
校花收到校草的表白后,给校草返回了一个信息,表示自己已经收到他的表白了,其实自己也挺喜欢他的,也愿意接受和他交往。
第三次握手
校草收到校花的回信开心的飞起来了,知道校花接受了自己,也愿意跟自己交往。于是就再回信给校花,表示校花的回信,自己已经收到了,自己也准备好咱俩交往的规划了。
到此为止,三次握手结束,校草与校花正式开始交往。
这里面,我们可以把校草看成客户端,校花看成服务端。通过这个案例,小伙伴们是不是瞬间对三次握手有了更清楚的理解了。但是为什么TCP协议建立连接需要进行三次握手呢?
为什么需要建立三次握手?
其实建立三次握手的主要目的是确保建立可靠的连接。不会因为网络的一些问题导致这个传输过程失效。如果客户端没有正常回应,那么就可以直接结束连接过程了,以防止最终的连接失效。
好了,今天小编就分享到这了,这次主要分享的是面试中经常会被问到的三次握手,其实呢,除了三次握手,还有四次断开在面试中也会被经常问到,如果有小伙伴想看四次断开的,可以在评论区留言,小编就马上安排更新。