TCP建立连接和关闭连接的流程及状态变化

TCP建立连接和关闭连接的流程及状态变化,第1张

TCP建立连接和关闭连接的流程及状态变化

在平时ss="superseo">ss="superseo">网络服务器运维管理的情况下,需要查询各种连接状态,所以只有很好的了解TCP连接状态,才能知道每种状态的实际意义,这一点很重要。只有知道了这个主要参数的实际意义,才能相应的提高。

查询状态指令:

[root@tomcat10 logs]# netstat -na | awk '/^tcp/{s[$6]}END{for(key in s) print key,s[key]}' TIME_WAIT 1443 CLOSE_WAIT 1122 SYN_SENT 3 FIN_WAIT1 2074 FIN_WAIT2 195 ESTABLISHED 89782 SYN_RECV 7314 LISTEN 9 CLOSING 9 LAST_ACK 2372

每个状态的实际含义如下:

  • LISTEN:表示被监控的TCP端口已经打开;

  • SYN_SENT:客户端发送创建连接请求后的状态(SYN);

    SYN_RECV:服务器收到SYN请求创建连接后发送SYNACK后的状态;

    ESTABLISHED:宣布连接建立时,客户端发送ACK后的状态和服务器收到ACK后的状态;

    FIN_WAIT1:客户端发送FIN后的状态;

    CLOSE_WAIT:服务器收到客户端的FIN请求后,向FIN发送ACK后的状态;

    FIN_WAIT2:收到服务器发送给上一个FIN的ACK后的状态;

    LAST_ACK:服务器解完最终数据信息发送FIN后的状态;

    TIME_WAIT:接收到服务器发送的FIN后的状态,表示处于空等待阶段;

    CLOSED:time_wait时间到达后,向FIN发送明确ACK后的状态。发送ACK后,连接已经关闭;

    关闭:连接对方发送关闭请求和确认时的状态;

    三次握手断四次的小技巧:

    关于四次休息:

    A.首先,客户端向服务器发送FIN,请求关闭传输的数据。

    b、网络服务器收到客户端的FIN时,向客户端发送ack,ACK的值相当于FINSEQ。

    C.然后,web服务器向客户端发送FIN,告诉客户端关闭应用软件。

    D.当客户机从服务器收到FINYes时,它向服务器发送一个ACK作为响应。其中ack的值等同于FINSEQ。

    为什么要4次才能破?
    A.确保数据信息可以传输。

    B.但是当连接关闭,收到对方FIN报文格式公告的时候,只说明对方没有数据信息给你发送;

    C.但是你的数据信息并不是都已经发送给对方了,那么能不能关掉SOCKET,也就是你大概要发送一些数据信息给对方?

    D.发送FIN报文格式给对方,表示你现在愿意关闭连接,所以这里的ACK报文格式和FIN报文格式在大多数情况下都是分开发送的。



    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/777652.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存