zoukankan      html  css  js  c++  java
  • 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能送达服务器

  • 相关阅读:
    css文字两端对齐,而且居中
    vue项目做微信分享总结
    js获取url参数
    vue微信支付遇到的坑
    Win7的环境变量下的系统变量path不小心修改了,怎么恢复
    解决ios上滑动不流畅及滚动条隐藏无效问题
    数组更新检测
    列表渲染
    条件渲染
    vue调试工具的安装
  • 原文地址:https://www.cnblogs.com/qifeng1024/p/11696082.html
Copyright © 2011-2022 走看看