TCP

一、三次握手 

  三次握手流程: 

    甲:客户端机器发送链接请求:SYN=1,seq=x ;
    乙:服务器机器响应链接请求:SYN=1,ACK=1,seq=y ; (y = x+1)
    丙:客户端机器响应服务端:ACK=1,seq=x+1,ack=y+1 ;

    

 

 

  三次握手的原因:

    

    a:确认双方都能首发报文。

    b:防止出现请求超时导致脏链接。

      甲机器第一次请求链接超时。

      甲机器第二次请求链接发送成功,建立链接。

      此时:服务器收到甲机器的第一次建立链接请求。

       

 

二、四次挥手

  四次挥手的流程:

    甲:客户机发送断开链接请求:FIN =1,seq=u

    乙:服务端发送应答:ACK=1,seq=v,ack=u+1

    丙:客户端处于半关闭状态,只能接受数据,不能发送数据。

    丁:服务端传输完成:FIN=1,ACK=1,seq=w,ack=u+1

    己:服务端进入半关闭状态

    庚:客户端应答服务器"丁"步骤的消息:ACK=1,seq=u+1,ack=w+1

    辛:客户端等待2MSL,收不到服务端的消息,关闭链接。

    壬:服务器收到客户端的消息,断开链接。

   流程图:

      

 

    四次挥手的原因:

      1、确保数据全部接收。

      2、TIME_WAIT 非常重要,不可省略。

   

 

三、实际使用

  1、减少服务器的TIME_WAIT超时,能增加服务器并发。

    /etc/sysctl.conf    net.ipv4.tcp_fin_timeout=30

  

 

 

  

posted @ 2020-01-11 18:06  陈标  阅读(129)  评论(0编辑  收藏  举报