netstat -anop|more 查看网络队列
nux下netstat --timers / -o详解及keepalive相关
第一列,一般有一下几种状态;
keepalive - #表示是keepalive的时间计时
on - #表示是重发(retransmission)的时间计时
off - #表示没有时间计时
timewait - #表示等待(timewait)时间计时
第二列,
(576.47/0/0) -> (a/b/c)
a - #计时时间值(当第一列为keepalive的时候,a代表keepalive计时时间;当第一列为on的时候,a代表重发(retransmission)的时间计时;当第一列为timewait的时候,a代表等待(timewait)的时间计时)
b - #已经产生的重发(retransmission)次数
c - #keepalive已经发送的探测(probe)包的次数
注:
1、keepalive的最大时间值跟tcp_keepalive_time的值有关系,tcp_keepalive_time的值,linux默认为7200秒,即2小时,代表的意思为:建立连接后,如果7200秒内连接没有任何数据交互传输,那么服务器将发送探测(probe)包。这里的探测(probe)包也相当于心跳一样。
2、探测(probe)包的相关内核参数跟tcp_keepalive_intvl和tcp_keepalive_probes有关系,tcp_keepalive_probes代表总共发送探测(probe)包的个数(默认为9个),tcp_keepalive_intvl代表发送一个探测(probe)包后,多少秒没有收到回复,则再发送个探测(probe)包,也代表了之前发送的探测(probe)包超时失效(默认为75秒)。再所有的探测(probe)包都发完之后还是没收到回应,那么服务器会主动端口这个连接(长连接)。所以一般如果第二列的c为0的话,a的范围在0 ~ 7200之间,7200为tcp_keepalive_time的值,比如keepalive (178.06/0/0);如果c不为0,但是不可能大于tcp_keepalive_probes的值的,那么a的范围在0 ~ 75, 75为tcp_keepalive_intvl的值。比如keepalive (18.06/0/2)。
3、这里再说一下keepalive的工作原理
若在一个给定连接上,7200秒之内无任何活动,服务器便向客户端发送一个探测段。(我们将在下面的例子中看到探测段的样子。)客户端主机必须是下列四种状态之一:
1) 客户端主机依旧活跃(up)运行,并且从服务器可到达。从客户端TCP的正常响应,服务器知道对方仍然活跃。服务器的TCP为接下来的两小时复位存活定时器,如果在这两个小时到期之前,连接上发生应用程序的通信,则定时器重新为往下的两小时复位,并且接着交换数据。
2) 客户端已经崩溃,或者已经关闭(down),或者正在重启过程中。在这两种情况下,它的TCP都不会响应。服务器没有收到对其发出探测的响应,并且在75秒之后超时。服务器将总共发送10个这样的探测,每个探测75秒。如果没有收到一个响应,它就认为客户端主机已经关闭并终止连接。
3) 客户端曾经崩溃,但已经重启。这种情况下,服务器将会收到对其存活探测的响应,但该响应是一个复位,从而引起服务器对连接的终止。
4) 客户端主机活跃运行,但从服务器不可到达。这与状态2类似,因为TCP无法区别它们两个。它所能表明的仅是未收到对其探测的回复。
4、等待(timewait)时间计时,第二列的a值,最大为60,这里说一下为什么为60,这里存在一个MSL(Maximum Segment Lifetime)的概念,tcp如果在time_wait状态下,会保持两倍MSL的时间值,然后连接才会断开,当然存在time_wait这种状态的话,那么肯定是主动关闭tcp连接那一方,这个如果了解tcp的四次握手概念就知道是为啥了。RFC793定义了MSL为2分钟,Linux设置成了30s,所以linux系统上,time_wait的值最大为60s。所以第一列为timewait时,第二列只有a有值,b、c都为0,比如
timewait (48.32/0/0)。
5、如果State列为CLOSE_WAIT状态是,Timer列多为off (0.00/0/0),这又是为何,因为CLOSE_WAIT的是属于被动关闭那一方,这个是没有超时(timeout)设置的,所以也就不用计时了。CLOSE_WAIT除非你杀进程,CLOSE_WAIT是不会自动消失的。一个CLOSE_WAIT会维持至少2个小时的时间。当然不消失意味着占着资源呢,这里就是占着FD。
6、第一列为on的情况,第二列一般的a,b是有值的,代表重发时间计时和重发的次数,比如on (3.93/4/0),但是也有可能第二列的c也有值,比如:on (2.28/5/2),这种情况,一般都是从keepalive状态转化为on的状态的,而且在on的状态下,第二列的c的值是不会变的,因为c代表着是keepalive的已经发送的探测(probe)包的次数。
netstat -anop|more 查看网络队列的更多相关文章
- netstat 和 lsof 查看网络状态
netstat和lsof都是linux下的工具,可以用于查看系统的网络状态. netstat netstat可以打印 网络连接,路由表,接口统计数据,还有多播和masquerade连接相关的东西(不熟 ...
- Linux下用netstat查看网络状态、端口状态(转)
转:http://blog.csdn.net/guodongdongnumber1/article/details/11383019 在linux一般使用netstat 来查看系统端口使用情况步. ...
- 在Linux下用netstat查看网络状态、端口状态
在Linux下用netstat查看网络状态.端口状态 在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实 ...
- Linux下用netstat查看网络状态、端口状态
在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实际的网络连接以及每一个网络接口设备的 netstat命 ...
- linux查看网络链接状况命令netstat
linux查看网络链接状况命令 netstat 参数如下: -a 显示所有socket,包括正在监听的. -c 每隔1秒就重新显示一遍,直到用户中断它. -i 显示所有网络接口的信息,格式同“ifco ...
- Linux使用netstat查看网络状态
查看本机的网络状态.使用netstat查看网络状态.显示系统端口使用情况.UDP类型的端口.TCP类型的端口.只显示所有监听端口.只显示所有监听tcp端口. 命令使用举例 命令 说明 netstat ...
- 用netstat查看网络状态详解
--用netstat查看网络状态详解 -----------------------------2014/06/11 一.Linux服务器上11种网络连接状态: ...
- iostat iotop 查看硬盘的读写、 free 查看内存的命令 、netstat 命令查看网络、tcpdump 命令
iostat 命令 查看硬盘的使用情况: iostat iostat -x iotop 命令: 若没安装先安装: yum install iotop -y free 命令,用于查看内存的使用量: fr ...
- FreeBSD查看网络情况
FreeBSD查看网络情况 记录一下FreeBSD下常用的统计当前系统网络连接状态的一些命令: 1)统计80端口连接数 netstat -nat|grep -i "80"|wc - ...
随机推荐
- netty之IO演进之路
常见IO类型: 传统的同步阻塞I/O编程<BIO> 基于NIO的非阻塞编程 基于NIO2.0的异步非阻塞AIO编程 BIO缺点: 没有数据缓冲区,I/O性能存在问题 没有Channel概念 ...
- pyqt5--QTDesigner--安装与配置
安装: 安装PyQt5-tools 文件--->设置---> ---> 安装之后在 安装目录\Lib\site-packages\pyqt5_tools 找到 designer.e ...
- linux-包管理器-4
安装 升级 查询 导入公钥 rpm -K|checksig rpmfile 检查包的完整性和签名 rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 ...
- js 数组 splice 函数 多线程
<script type="text/javascript"> var arr = new Array(6) arr[0] = "00" arr[1 ...
- 消息队列之--RocketMQ
序言 资料 https://github.com/alibaba/RocketMQ http://rocketmq.apache.org/
- Codeforces 963A Alternating Sum ( 思维 && 数论 )
题意 : 题目链接 分析 : Tutorial 讲的很清楚 至于为什么这样去考虑 算是一个经验问题吧 如果一个问题要你给出模意义下的答案 就多考虑一下答案是要用逆元构造出来 也就说明有除法的存在 那么 ...
- 微信小程序访问后台出现 对应的服务器证书无效。控制台输入 showRequestInfo() 可以获取更详细信息。
检查微信开发者平台配置 https 服务端 nginx 配置 ssl 协议是否有效 在开发者工具中可以使用(详情 > 不校验合法域名.web-view(业务域名).TLS 版本以及 HTTPS ...
- TCP连接的11种状态,三次握手四次挥手原因
1).LISTEN:首先服务端需要打开一个socket进行监听,状态为LISTEN. /* The socket is listening for incoming connections. 侦听来自 ...
- 快速排序和二分查找(Go)
package main import ( "fmt" "sync") var waitGroup sync.WaitGroup func main() { d ...
- 本地运行aws lambda credential 配置 (missing credential config error)
参照这篇文章 http://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-sha ...