zoukankan      html  css  js  c++  java
  • tcp协议详解(三)

      tcp状态转移

    1.CLOSED:起始点,在超时或者连接关闭时候进入此状态。

    2.LISTEN:ser端在等待连接过来时候的状态,ser端为此要调用socket,bind,listen函数,就能进入此状态。此称为应用程序被动打开(等待客户端来连接)。

    3.SYN_SENT:客户端发起连接,发送SYN给服务器端。如果服务器端不能连接,则直接进入CLOSED状态。

    4.SYN_RCVD:服务器端接受客户端的SYN请求,服务器端由LISTEN状态进入SYN_RCVD状态。并且回应一个ACK报文和SYN报文给客户端;客户端在接收到服务器端回复的SYN请求后,客户端就会由SYN_SENT到SYN_RCVD状态。

    5.ESTABLISHED:服务器端和客户端完成3次握手。

    四次挥手:(默认客户端主动断开连接)

    6.FIN_WAIT_1:客户端由ESTABLISHED(完成连接时的状态)进入此状态。并且发送FIN给对方。

    7.CLOSE_WAIT:服务器接收到FIN以后,服务器进入close_wait状态。并且发送ACK给客户端。(此时进入半连接状态,服务器还可以发送数据给客户端)

    8.LAST_ACK:当服务器想断开连接时,发送FIN给客户端,服务器进入LAST_ACK状态(等待客户端确认收到了FIN请求)

    9.FIN_WAIT_2:客户端接收到对方的ACK进入FIN_WAIT_2。

    10.TIME_WAIT:客户端接收到对方的FIN进入TIME_WAIT。并且发送ACK给服务器(回应服务器的关闭请求)

    TIME_WAIT状态的意义:2MSL(两个最大报文段的生存时间)

      1.可靠的终止tcp连接。

      2.保证让迟来的tcp报文段有足够的时间被识别并丢弃。

  • 相关阅读:
    Unique ID Generate Notes
    My Apple Developer Library Catalog
    Flickr Hosts
    JqGrid 使用方法详解
    动态加载JS代码
    如何让Asp.net webAPI返回JSON格式数据
    谷歌(Chrome)安装Advanced REST Client插件
    .net chart(图表)控件的使用-System.Windows.Forms.DataVisualization.dll
    ASP.NET伪静态 UrlRewrite(Url重写) 实现和配置
    WebService开发常用功能详解
  • 原文地址:https://www.cnblogs.com/xcb-1024day/p/11272694.html
Copyright © 2011-2022 走看看