美文网首页
TCP的三次握手

TCP的三次握手

作者: Colors_boy | 来源:发表于2020-09-01 11:57 被阅读0次

    在Tcp/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接

    1. 客户端发送SYN(syn=x)包到服务端,客户端此时进入SYN_SEND状态。
    2. 服务端确认接收客户端的SYN包,必须确认客户的SNY(x+1),同时也发送自己的SNY(syn=k)+ACK包,服务端此时进入SYN_RECV
    3. 客户端接收服务端发送的SNY+ACK包,向服务器发送确认包ACK(k+1),ACK包发送完毕,客户端和服务器进入established状态

    为什么需要三次握手才能建立连接:

    • 初始化SequenceNumber的初始值

    首次握手的隐患:

    • 服务端收到客户端的SYN包回复SYN-ACK的时候未收到ACK确认
    • 服务端不断重试直到超时,Linux默认63秒断开连接
    • 针对恶意攻击,当SYN队列满了之后,通过tcp_syncookies参数返回SYN Cookie,若为正常连接则客户端会返回SYN Cookie,直接建立连接。
    • 若连接后客户端出现故障,服务端会发送保活报文,直到饱和则断开连接
    Ps:
    • ACK:确定序号标志
    • SYN:同步序号,用于建立连接过程

    相关文章

      网友评论

          本文标题:TCP的三次握手

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