• TCP三次握手 四次挥手


    三次握手:

    最初,客户端服务器端都处于CLOSED状态
    服务器处于LISTEN状态,等待客户端发送请求(SYN=1(标志位,意思是请求连接) seq=x(随机产生的数))
    客户端发送请求后,进入SYN-SENT状态,等待服务器确认。
    服务器端收到请求,进入SYN-RCVD状态,同时发送给客户端应答信号SYN=1 ACK=1 seq=y ack=x+1
    客户端收到应答后,进入ESTABLISHED状态,同时给服务器端回复应答信号 ACK=1 seq=x+1 ack=y+1
    服务器端收到应答,进入ESTABLISHED状态。

    四次挥手:

     

    最初,客户端服务器端都处于ESTABLISHED状态
    客户端向TCP发送连接释放报文(FIN=1,序号seq=u),同时停止发送数据,进入终止等待状态1 FIN-WAIT-1
    服务器端收到释放报文后,给出回复确认(ACK=1,确认号ack=u+1,序号seq=v),并进入关闭等待状态CLOSE-WAIT
    客户端收到了来自服务器的确认,进入终止等待2状态FIN-WAIT-2,等待服务器发出释放报文
    等到服务器端没有需要发给客户端的数据后,服务器端发出释放报文(FIN=1,ACK=1,序号seq=w,确认号ack=u+1)并进入最后确认状态,等待客户端的回复
    客户端收到来自服务器端的释放报文后,回复确认(ACK=1,seq=u+1,ack=w+1)并进入时间等待状态TIME-WAIT
    经过2MSL(最长报文段寿命Maximum Segment Lifetime)时间后,TCP彻底释放,两端再次进入CLOSED状态
    用2MSL的时间,是为了保证客户端的最后一个报文ACK能送达服务器

  • 相关阅读:
    线程安全,syncronized 用法
    线程
    Log4j2
    线性规划
    不要在using语句中调用WCF服务
    kibana 查询语法
    ES中DSL查询相关
    ES通过API调整设置
    ElasticSearch架构思考(转)
    Elasticsearch集群UNASSIGNED
  • 原文地址:https://www.cnblogs.com/qifeng1024/p/11696082.html
Copyright © 2020-2023  润新知