• TCP三次握手和四次挥手(一)


    (一)什么是三次握手?

    ①为什么要三次握手?

         建立TCP需要三次握手才能建立

    ②过程:

        1.Client端发送连接请求报文,Server端接受连接后回复ACK报文并为连接分配资源; 2.Client端收到ACK报文后也向Server端发送ACK报文,并分配资源【这样TCP连接就建立了】

     图解:

    通俗描述3次握手就是:

    A对B说:我的序号是x,我要向你请求连接;(第一次握手,发送SYN包,然后进入SYN-SEND状态)

    B听到之后对A说:我的序号是y,期待你下一句序号是x+1的话(意思就是收到了序号为x的话,即ack=x+1),同意建立连接。(第二次握手,发送ACK-SYN包,然后进入SYN-RCVD状态)

    A听到B说同意建立连接之后,对A说:与确认你同意与我连接(ack=y+1,ACK=1,seq=x+1)。(第三次握手,A已进入ESTABLISHED状态)

    B听到A的确认之后,也进入ESTABLISHED状态。

    (二)什么是四次挥手?

    ①为什么需要四次挥手?

         断开TCP连接,需要四次挥手

    ②过程:

       中断连接可以是Client端发起:

       也可以是Server端发起:

       图解:

    描述四次挥手就是:

    1.A与B交谈结束之后,A要结束此次会话,对B说:我要关闭连接了(seq=u,FIN=1)。(第一次挥手,A进入FIN-WAIT-1)

    2.B收到A的消息后说:确认,你要关闭连接了。(seq=v,ack=u+1,ACK=1)(第二次挥手,B进入CLOSE-WAIT)

    3.A收到B的确认后,等了一段时间,因为B可能还有话要对他说。(此时A进入FIN-WAIT-2)

    4.B说完了他要说的话(只是可能还有话说)之后,对A说,我要关闭连接了。(seq=w, ack=u+1,FIN=1,ACK=1)(第三次挥手)
    5.A收到B要结束连接的消息后说:已收到你要关闭连接的消息。(seq=u+1,ack=w+1,ACK=1)(第四次挥手,然后A进入CLOSED)
    6.B收到A的确认后,也进入CLOSED。

    (三)整个过程:

  • 相关阅读:
    【BZOJ1831】[AHOI2008]逆序对(动态规划)
    【agc030f】Permutation and Minimum(动态规划)
    【BZOJ3167】[HEOI2013]SAO(动态规划)
    【CF802C】Heidi and Library(网络流)
    【CF671D】Roads in Yusland(贪心,左偏树)
    对偶问题
    【BZOJ2324】[ZJOI2011]营救皮卡丘(网络流,费用流)
    【BZOJ3691】游行(网络流)
    【CF908G】New Year and Original Order(动态规划)
    【CF809C】Find a car(动态规划)
  • 原文地址:https://www.cnblogs.com/not-alone/p/8476079.html
Copyright © 2020-2023  润新知