热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

netstat状态详解

一、生产服务器netstattcp连接状态

一、生产服务器netstat tcp连接状态................................................................................ 2

1.1生产服务器某个业务LVS负载均衡上连接状态数量............................................... 2

1.2生产服务器某个业务web上连接状态数量............................................................ 3

1.3 生产服务器某个业务db上连接状态数量.............................................................. 3

二、tcp连接状态的描述说明(netstat输出)........................................................................ 4

2.1 执行netstat -n查看输出结果共6..................................................................... 4

2.2 通过man netstat查看netstat输出结果信息......................................................... 4

2.3netstat第六列State的状态信息......................................................................... 5

2.4netstat第六列State状态信息转换图表.............................................................. 6

2.4.1 状态参考图一................................................................................................... 7

2.4.2 状态参考图二................................................................................................... 9

2.4.3 状态参考图三................................................................................................. 10

2.4.4 客户端的状态变化描述............................................................................ 10

2.4.5 服务器的状态变化描述............................................................................ 10

2.4.6 其他的状态变化描述总结......................................................................... 11

            更多目录见博文结尾。

一、生产服务器netstat tcp连接状态

1.1生产服务器某个业务LVS负载均衡上连接状态数量

[oldboy@LVS-1-1 ~]$ netstat -n |awk ‘/^tcp/ {++oldboy[$NF]} END {for(a in oldboy) print a, oldboy[a]}‘

TIME_WAIT 9137

CLOSE_WAIT 207

FIN_WAIT1 547

ESTABLISHED 597

FIN_WAIT2 74

SYN_RECV 70

CLOSING 55

LAST_ACK 8

 

[root@lvs_nginx~]#netstat -n |awk ‘/^tcp/ {++oldboy[$NF]} END {for(a in oldboy) print a, oldboy[a]}‘
TIME_WAIT 422
CLOSE_WAIT 590
FIN_WAIT1 56
FIN_WAIT2 28
ESTABLISHED 1731

1.2生产服务器某个业务web上连接状态数量

[root@web1 ~]# netstat -n |awk ‘/^tcp/ {++oldboy[$NF]} END {for(a in oldboy) print a, oldboy[a]}‘
TIME_WAIT 418
FIN_WAIT1 7
FIN_WAIT2 3
ESTABLISHED 1097
LAST_ACK 2

[root@web2 ~]# netstat -n |awk ‘/^tcp/ {++oldboy[$NF]} END {for(a in oldboy) print a, oldboy[a]}‘
TIME_WAIT 250
FIN_WAIT1 2
FIN_WAIT2 3
ESTABLISHED 1032
LAST_ACK 2

[root@old_web ~]# netstat -n |awk ‘/^tcp/ {++oldboy[$NF]} END {for(a in oldboy) print a, oldboy[a]}‘
TIME_WAIT 342
CLOSE_WAIT 618
FIN_WAIT1 37
FIN_WAIT2 3
ESTABLISHED 1681
SYN_RECV 1

[root@K32_50718 ~]# netstat -n |awk ‘/^tcp/ {++oldboy[$NF]} END {for(a in oldboy) print a, oldboy[a]}‘

TIME_WAIT 4146

FIN_WAIT1 352

FIN_WAIT2 1112

ESTABLISHED 8451

SYN_RECV 186

CLOSING 9

LAST_ACK 102

1.3 生产服务器某个业务db上连接状态数量

[root@web_slave ~]# netstat -n |awk ‘/^tcp/ {++oldboy[$NF]} END {for(a in oldboy) print a, oldboy[a]}‘
TIME_WAIT 263
FIN_WAIT1 1
FIN_WAIT2 48
ESTABLISHED 918

二、tcp连接状态的描述说明(netstat输出)

2.1 执行netstat -n查看输出结果共6

[root@OLDBOY ~]# netstat -n 

Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local AddressForeign AddressState

tcp00 10.0.0.183:5058410.0.0.181:22ESTABLISHED 

2.2 通过man netstat查看netstat输出结果信息

[root@oldboy ~]# man netstat 

OUTPUT

Active Internet connections (TCP, UDP, raw)

Proto

The protocol (tcp, udp, raw) used by the socket.

第一列为socket使用的协议。

Recv-Q

The count of bytes not copied by the user program connected to this socket.

第二列为接到的但是还没处理的字节数。

Send-Q

The count of bytes not acknowledged by the remote host.

第三列为已经发送的但是没有被远程主机确认收到的字节数。

Local Address

Address and port number of the local end of the socket.Unless the --numeric(-n)

optionisspecified,thesocketaddress is resolved to its canonical host name

(FQDN), and the port number is translated into the corresponding service name.

第四列为 本地的地址及端口。

Foreign Address

Address and port number of the remote endofthesocket.Analogousto"Local Address."

第五列为外部的地址及端口。

State

Thestateofthesocket.Sincethere are no states in raw mode and usually no

states used in UDP, this column may be left blank. Normally this can be one of sev-

eral values:

第六列为socket的状态,通常仅仅有tcp的状态,状态值可能有ESTABLISHED,SYN_SENT,SYN_RECV FIN_WAIT1,FIN_WAIT2,TIME_WAIT等,详见下文。其中,最重要的是第六列。

2.3 netstat第六列State的状态信息

如果我们执行man netstat可以找到如下的帮助信息

State

Thestateofthesocket.Sincethere are no states in raw mode and usually no

states used in UDP, this column may be left blank. Normally this can be one of sev-

eral values:

第六列为socket的状态,通常仅仅有tcp的状态,状态值可能有ESTABLISHED,SYN_SENT,SYN_RECV FIN_WAIT1,FIN_WAIT2,TIME_WAIT等,详见下文。其中,最重要的是第六列。

ESTABLISHED

The socket has an established connection.

socket已经建立连接,表示处于连接的状态,一般认为有一个ESTABLISHED认为是一个服务的并发连接。这个连接状态在生产场景很重要,要重点关注。

SYN_SENT

The socket is actively attempting to establish a connection. 

socket正在积极尝试建立一个连接,即处于发送后连接前的一个等待但未匹配进入连接的状态。

SYN_RECV

A connection request has been received from the network.

已经从网络上收到一个连接请求。

FIN_WAIT1

The socket is closed, and the connection is shutting down. 

socket已关闭,连接正在或正要关闭。

FIN_WAIT2

Connectionisclosed,andthesocket is waiting for a shutdown from the remote end.

连接已关闭,并且socket正在等待远端结束。

TIME_WAIT

The socket is waiting after close to handle packets still in the network.

socket正在等待关闭处理仍在网络上的数据包,这个连接状态在生产场景很重要,要重点关注。

CLOSED The socket is not being used.| socket不在被占用了。

CLOSE_WAIT

The remote end has shutdown, waiting for the socket to close.

远端已经结束,等待socket关闭。

LAST_ACK

The remote end has shut down, and the socket is closed. Waiting for acknowl-edgement.|

远端已经结束,并且socket也已关闭,等待acknowl-edgement。

LISTEN Thesocketislisteningforincoming connections.Such sockets are not

included in the output unless you specify the --listening (-l) or --all (-a)

option.

socket正在监听连接请求。

CLOSING

Both sockets are shut down but we still don’t have all our data sent.

sockets关闭,但是我们仍旧没有发送数据。

UNKNOWN

The state of the socket is unknown

未知的状态。

2.4 netstat第六列State状态信息转换图表

TCP的状态图,这是一个看起来比较复杂的状态迁移图,因为它包含了两个部分---服务器的状态迁移和客户端的状态迁移,如果从某一个角度出发来看这个图,就会清晰许多,这里面的服务器和客户端都不是绝对的,发送数据的就是客户端,接受数据的就是服务器。

2.4.1 状态参考图一
见后续博文

2.4.2 状态参考图二

见后续博文

2.4.3 状态参考图三

见后续博文

2.4.4 客户端的状态变化描述

通过状态参考图三,客户端的状态可以用如下的流程来表示:
CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED
以上流程是在程序正常的情况下应该有的流程,在建立连接时,当客户端收到SYN报文的ACK以后,客户端就打开了数据交互地连接。而结束连接则通常是客户端主动结束的,客户端结束应用程序以后,需要经历FIN_WAIT_1,FIN_WAIT_2等状态,这些状态的迁移就是前面提到的结束连接的四次握手。

2.4.5 服务器的状态变化描述

通过状态参考图三,服务器的状态可以用如下的流程来表示:
CLOSED->LISTEN->SYN_RECVD->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSED
在建立连接的时候,服务器端是在第三次握手之后才进入数据交互状态,而关闭连接则是在关闭连接的第二次握手以后(注意不是第四次)。而关闭以后还要等待客户端给出最后的ACK包才能进入初始的状态。

2.4.6 其他的状态变化描述总结

针对服务器和客户端两方面的总结如下

?1)LISTEN->SYN_SENT,对于这个解释就很简单了,服务器有时候也要打开连接的嘛。

?2)SYN_SENT->SYN_RECVD,服务器和客户端在SYN_SENT状态下如果收到SYN数据报,则都会发送SYN的ACK数据报并把自身状态调整到SYN_RECVD,准备进入ESTABLISHED 

?3)SYN_SENT->CLOSED,在发送超时的情况下,会返回到CLOSED状态。

?4)SYN_RECVD->LISTEN,如果受到RST包,会返回到LISTEN状态。

?5)SYN_RECVD->FIN_WAIT_1,这个迁移是说,可以不用到ESTABLISHED状态,而可以直接跳转到FIN_WAIT_1状态并等待关闭。

 

netstat状态详解,编程笔记,mamicode.com

netstat状态详解


推荐阅读
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
author-avatar
mysrain3
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有