美文网首页
面试问题_TCP\IP三次握手、四次挥手的个人理解方式

面试问题_TCP\IP三次握手、四次挥手的个人理解方式

作者: 金鱼座 | 来源:发表于2020-04-10 10:56 被阅读0次

    大家好,我是金鱼座,一个走在测试领域这片蓝海中, 蹉跎前行的技术渣渣,唯有一直走下去,也许能改变点什么,加油!

    这两天看到群里有人在说自己的面试历程,其中多次提到了tcp-ip的中的三次握手和四次握手,并且让详细说明,实际上这玩意,我也是看了很多次,但是对于一个测试来说,这玩意真心不怎么常用,所以很容易就忘记了,最近又看了以下别人的总结,想了想还是增加了自己的一套快速理解思路,方便大家后面回忆这个过程

    先贴以下我看的博客内容:https://blog.csdn.net/younglao/article/details/79453777

    先给大家普及几个概念:

    报文格式
    上图中有几个字段需要重点介绍下:
    (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
    (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
    (3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:
    (A)URG:紧急指针(urgent pointer)有效。
    (B)ACK:确认序号有效。
    (C)PSH:接收方应该尽快将这个报文交给应用层。
    (D)RST:重置连接。
    (E)SYN:发起一个新连接。
    (F)FIN:释放一个连接。

    普及了一些概念后,下面我们来说下我对于三次握手和四次挥手的自己速记方式吧

    三次挥手

    三次挥手

    客户端小伙和服务器小姑凉的一段结婚之旅

    客户端说: 小姑凉,我想娶你(SYN=1), 带着彩礼(seq)来跟你求婚了
    服务器说:嗯, 小伙子,我确认收到了(ASK=1),你来确定下是不是这些都东西(ack=J+1), 我想嫁你(SYN=1), 偷偷告诉你我也带了嫁妆呢(seq=K),你要查收下
    客户端说:哇,好幸福,我也确认收到了(ASK=1),你的嫁妆(ask=K+1)我们是结婚了

    四次挥手

    四次挥手

    客户端小伙和服务器小姑凉的一段分手故事

    客户端说: 妹子,我有点想分手(FIN=M)
    服务器说:你确定?(ACK=1, ack=M+1)
    服务器说:我最后一次在问你,要不要分手(FIN=N)
    客户端说:确定,我想好了(ACK=1, ack=N+1)

    两端故事悲欢离合

    现实中考官希望问的一个问题就是:为什么结婚只要三次握手,而离婚分手却需要四次??
    主要是因为:结婚很高兴, 所以妹子在回复ACK的时候,同时就把自己的嫁妆给老公了,而离婚分手的时候由于比较伤心, 所以ACK和FIN时做为两下来说的。

    相关文章

      网友评论

          本文标题:面试问题_TCP\IP三次握手、四次挥手的个人理解方式

          本文链接:https://www.haomeiwen.com/subject/nymlmhtx.html