• TCP的三次握手四次挥手


    三次握手

    第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务端,客户端进入SYN_SENT状态,等待服务端确认。
            (2)第二次握手:服务端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务端进入SYN_RCVD状态。
            (3)第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务端,服务端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务端进入ESTABLISHED状态,完成三次握手,随后客户端与服务端之间可以开始传输数据了。

    四次挥手

    三次握手耳熟能详,四次挥手估计就,所谓四次挥手即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。

    1.第一次挥手:主动关闭方发送一个FIN,用来关闭主动关闭方关闭被动方的数据传送,主动关闭方进入FIN_WAIT_1状态。
        2.第二次挥手:被动关闭方收到FIN后,发送一个ACK给主动关闭方,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),被动关闭方进入CLOSE_WAIT状态。
       3.第三次挥手:被动被关闭方发送一个FIN,用来关闭被动关闭方主动关闭方的数据传送,被动关闭方进入LAST_ACK状态。

    4.第四次挥手:主动关闭方收到FIN后,主动关闭方进入TIME_WAIT状态,接着发送一个ACK给被动关闭方,确认序号为收到序号+1,被动关闭方进入CLOSED状态,完成四次挥手。

  • 相关阅读:
    js正则小记
    github相关
    js设置 获取 删除cookie
    js传递数据一些方式
    js call()方法
    DOM节点相关操作(兼容)
    git 常用命令总结
    js中的this指向
    angular 中 directive中的多个指令
    指令中 controller && controllerAs
  • 原文地址:https://www.cnblogs.com/fengfen/p/10265436.html
Copyright © 2020-2023  润新知