面试官,请别再问我3次握手与4次挥手了!

在面试中,三次握手和四次挥手可以说是问的最频繁的一个常识点了,我相信人人也都看过多少关于三次握手与四次挥手的文章。 [原创文章:www.11jj.com]


[好文分享:www.11jj.com]

面试官,请别再问我3次握手与4次挥手了!

图片来自包图网


今天的这篇文章,重点是围绕着面试,我们应该把握哪些对照首要的点,哪些是对照多被面试官给问到的,我感受若是你能把我下面列举的一些点都记住、懂得,我想就差不多了。


三次握手


当面试官问你为什么需要有三次握手、三次握手的浸染、讲讲三次握手的时候,我想多少人会这样回覆。


首先多少人会先讲下握手的过程:

  • 第一次握手:客户端给处事器发送一个 SYN 报文。

  • 第二次握手:处事器收到 SYN 报文之后,会应答一个 SYN+ACK 报文。

  • 第三次握手:客户端收到 SYN+ACK 报文之后,会回应一个 ACK 报文。

  • 处事器收到 ACK 报文之后,三次握手竖立完成。


浸染是为了确认双方的领受与发送能力是否正常。


这里我顺便注释一下为啥只有三次握手才能确认双方的接管与发送能力是否正常,而两次却弗成以:

  • 第一次握手:客户端发送收集包,处事端收到了。

    这样处事端就能得出结论:客户端的发送能力、处事端的领受能力是正常的。

  • 第二次握手:处事端发包,客户端收到了。

    这样客户端就能得出结论:处事端的领受、发送能力,客户端的领受、发送能力是正常的。不过此时处事器并不克确认客户端的领受能力是否正常。

  • 第三次握手:客户端发包,处事端收到了。

    这样处事端就能得出结论:客户端的领受、发送能力正常,处事器自己的发送、领受能力也正常。


是以,需要三次握手才能确认双方的领受与发送能力是否正常。


这样回覆其实也是可以的,但我感受,这个过程我们应该要描述的更具体一点,因为三次握手的过程中,双方是由多少状况的改变的,而这些状况,也是面试官或许会问的点。


所以我感受在回覆三次握手的时候,我们应该要描述的具体一点,而且描述的具体一点意味着可以扯久一点。


加分的描述我感受应该是这样:刚起头客户端处于 Closed 的状况,处事端处于 Listen 状况。

面试官,请别再问我3次握手与4次挥手了!

然后:

  • 第一次握手:客户端给处事端发一个 SYN 报文,并指明客户端的初始化序列号 ISN(c)。此时客户端处于 SYN_Send 状况。

  • 第二次握手:处事器收到客户端的 SYN 报文之后,会以自己的 SYN 报文作为应答,并且也是指定了自己的初始化序列号 ISN(s)。

    同时会把客户端的 ISN + 1 作为 ACK 的值,透露自己已经收到了客户端的 SYN,此时处事器处于 SYN_REVD 的状况。

  • 第三次握手:客户端收到 SYN 报文之后,会发送一个 ACK 报文,当然,也是一样把处事器的 ISN + 1 作为 ACK 的值,透露已经收到了处事端的 SYN 报文,此时客户端处于 establised 状况。

  • 处事器收到 ACK 报文之后,也处于 establised 状况,此时,双方已竖立起了链接。


三次握手的浸染


三次握手的浸染也是有几多的,多记住几个,保证不亏。例如:

  • 确认双方的接管能力、发送能力是否正常。

  • 指定自己的初始化序列号,为后背的靠得住传送做预备。

  • 若是是 HTTPS 和谈的话,三次握手这个过程,还会进行数字证书的验证以及加密密钥的生成。


单单这样还不足以应付三次握手,面试官或许还会问一些其他的问题,例如:


①(ISN)是固定的吗


三次握手的一个首要功能是客户端和处事端交流 ISN(Initial Sequence Number),以便让对方知道接下来领受数据的时候若何顺次列号组装数据。


若是 ISN 是固定的,冲击者很随意猜出后续切实认号,是以 ISN 是动态生成的。


②什么是半连结队列


处事器第一次收到客户端的 SYN 之后,就会处于 SYN_RCVD 状况,此时双方还没有完全竖立其连结,处事器会把此种状况下请求连结放在一个队列里,我们把这种队列称之为半连结队列。


当然还有一个全连结队列,就是已经完成三次握手,竖立起连结的就会放在全连结队列中。若是队列满了就有或许会展现丢包现象。


这里在补充一点关于SYN-ACK 重传次数的问题:

  • 处事器发送完SYN-ACK包,若是未收到客户确认包,处事器进行首次重传,守候一段时间仍未收到客户确认包,进行第二次重传。

  • 若是重传次数跨越系统规定的最大重传次数,系统将该连结信息从半连结队列中删除。


留意,每次重传守候的时间不一定沟通,一般会是指数增进,例如距离时间为 1s,2s,4s,8s......


③三次握手过程中可以携带数据吗


多少人或许会认为三次握手都不克携带数据,其实第三次握手的时候,是可以携带数据的。


也就是说,第一次、第二次握手弗成以携带数据,而第三次握手是可以携带数据的。


为什么这样呢?人人可以想一个问题,假如第一次握手可以携带数据的话,若是有人要恶意冲击处事器,那他每次都在第一次握手中的 SYN 报文中放入大量的数据。


因为冲击者根基就不理处事器的领受、发送能力是否正常,然后疯狂着频频发 SYN 报文的话,这会让处事器破费多少时间、内存空间来领受这些报文。


也就是说,第一次握手可以放数据的话,个中一个简练的原因就是会让处事器加倍随意受到冲击了。


而对于第三次的话,此时客户端已经处于 established 状况,也就是说,对于客户端来说,他已经竖立起连结了,并且也已经知道处事器的领受、发送能力是正常的了,所以能携带数据页没啥误差。


关于三次握手的,HTTPS 的认证过程能知道一下更好,不过我就不说了,留着写 HTTP 面试相关时的文章再说。


四次挥手


四次挥手也一样,切切不要对方一个 FIN 报文,我方一个 ACK 报文,再我方一个 FIN 报文,对方一个 ACK 报文。


然后结束,要说的具体一点,例如像下面这样就差不多了,要把每个阶段的状况记好,我上次面试就被问了几个了,呵呵。我答错了,还认为自己答对了,当时还注释的头头是道,呵呵。

面试官,请别再问我3次握手与4次挥手了!

刚起头双方都处于 establised 状况,假如是客户端先提议关闭请求,则:

  • 第一次挥手:客户端发送一个 FIN 报文,报文中会指定一个序列号。此时客户端处于 FIN_WAIT1 状况。

  • 第二次握手:处事端收到 FIN 之后,会发送 ACK 报文,且把客户端的序列号值 +1 作为 ACK 报文的序列号值,表明已经收到客户端的报文了,此时处事端处于 CLOSE_WAIT 状况。

  • 第三次挥手:若是处事端也想断开连结了,和客户端的第一次挥手一样,发给 FIN 报文,且指定一个序列号。此时处事端处于 LAST_ACK 的状况。

  • 第四次挥手:客户端收到 FIN 之后,一样发送一个 ACK 报文作为应答,且把处事端的序列号值 +1 作为自己 ACK 报文的序列号值,此时客户端处于 TIME_WAIT 状况。

    需要过一阵子以确保处事端收到自己的 ACK 报文之后才会进入 CLOSED 状况

  • 处事端收到 ACK 报文之后,就处于关闭连结了,处于 CLOSED 状况。


这里稀奇需要留意的就是 TIME_WAIT 这个状况了,这个是面试的高频考点,就是要懂得,为什么客户端发送 ACK 之后不直接关闭,而是要等一阵子才关闭。


这个中的原因就是,要确保处事器是否已经收到了我们的 ACK 报文,若是没有收到的话,处事器会从新发 FIN 报文给客户端,客户端再次收到 ACK 报文之后,就知道之前的 ACK 报文丢失了,然后再次发送 ACK 报文。


至于 TIME_WAIT 持续的时间至少是一个报文的往返时间。一般会设置一个计时,若是过了这个计时没有再次收到 FIN 报文,则代表对方成功,就是 ACK 报文,此时处于 CLOSED 状况。


这里我给出每个状况所包含的含义,有情趣的可以看看:

  • LISTEN:侦听来自远方 TCP 端口的连结请求。

  • SYN-SENT:在发送连结请求后守候成家的连结请求。

  • SYN-RECEIVED:在收到和发送一个连结请求后守候对连结请求切实认。

  • ESTABLISHED:代表一个打开的连结,数据可以传送给用户。

  • FIN-WAIT-1:守候远程 TCP 的连结休止请求,或先前的连结休止请求切实认。

  • FIN-WAIT-2:从远程 TCP 守候连结休止请求。

  • CLOSE-WAIT:守候从内陆用户发来的连结休止请求。

  • CLOSING:守候远程 TCP 对连结休止切实认。

  • LAST-ACK:守候正本发向远程 TCP 的连结休止请求切实认。

  • TIME-WAIT:守候充足的时间以确保远程 TCP 领受到连结休止请求切实认。

  • CLOSED:没有任何连结状况。


最后,再放下三次握手与四次挥手的图:

面试官,请别再问我3次握手与4次挥手了!

作者:帅地

编纂:陶家龙、孙淑娟

出处:转载自微信公家号:吃力逼的码农(ID:di201805)

面试官,请别再问我3次握手与4次挥手了!

超卓文章介绍:

互联网公司为何要“杀死”中年人

Hello Redis,我有7个问题想请问你!

阿里手艺大牛:一份架构师成神路线图!

自媒体 微信号:11jj 扫描二维码关注公众号
爱八卦,爱爆料。

小编推荐

  1. 1

    本周天气上新!有风有雨有浮尘~

    新的一周又起头啦本周仍会有大风、浮尘、降水天色将对平常生活和农业生产造成影响请做好防护具体若何?一路来看↓↓↓将来一周天色估计:1

  2. 2

    这些古诗句富有哲理,写议论文真好用,快摘抄!

    这部门内容节选自寨主作文资料,迎接在文末订购全套资料!1.已识乾坤大,犹怜草木青。(马一浮)适用主题:软和硬寨主示范:哪怕是猛火焚烧、

  3. 3

    雷雨+冰雹+大风返场!广东将有强对流天气,南雄将迎来中雨、局部大雨

    热҉热҉热҉热҉热҉这几天广东气温狂飙多地打破30℃想必这初夏的“魅力”人人都已感触到了短袖、短裤、空调是要成为广东人比来的标配了?注重!

  4. 4

    痛别!著名演员去世!曾带来无数笑声

    起原:北京戏曲曲艺圈、北京曲艺大观园、北京电视台文艺频道、央广网、新京报、新浪微博等4月14日,北京曲艺团有名相声表演艺术家陈涌泉家人

  5. 5

    以色列:将对伊朗做出前所未有的反应

    本地时间14日,一名以色列高级官员透露,他承诺将对伊朗的袭击做出“空前未有的回响”,并催促以色列人不要睡眠,以目睹德黑兰即将发生的事情

  6. 6

    【创建全国文明城市】公益广告:“课本封面”文明礼仪

    起原:文明一号快长按二维码 存眷松原发布中共松原市委宣传部 主办

  7. 7

    周凯(周楷恒身高)

    大家好,小丽今天来为大家解答周凯以下问题,周楷恒身高很多人还不知道,现在让我们一起来看看吧!1、周凯运动生涯介绍 1、2017年1月参加国家队

  8. 8

    虐心句子(虐心句子)

    大家好,小豪今天来为大家解答虐心句子以下问题,虐心句子很多人还不知道,现在让我们一起来看看吧!1、1,忘川之水,在于忘情。2、展开全部

Copyright 2024.依依自媒体,让大家了解更多图文资讯!