转自 https://www.cnblogs.com/yuyutianxia/p/4970380.html

netstat 查看TCP状态值

 

一。TCP 状态值

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉

二。怎么处理大量TIME_WAIT状态的连接

vim /etc/sysctl.conf

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30

/sbin/sysctl -p 生效

net.ipv4.tcp_syncookies = 1

表示开启SYN cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击

net.ipv4.tcp_tw_reuse = 1

表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接

net.ipv4.tcp_tw_recycle = 1

表示开启TCP连接中TIME-WAIT sockets的快速回收

net.ipv4.tcp_fin_timeout

修改系統默认的 TIMEOUT 时间

三。什么时候进入TIME_WAIT 

客户端与服务器端建立TCP/IP连接后,关闭SOCKET,服务器端连接的端口状态为TIME_WAIT,是不是所有执行主动关闭的socket都会

进入TIME_WAIT状态呢? 主动关闭的一方在发送最后一个 ack 后就会进入 TIME_WAIT 状态停留2MSL(max segment lifetime)时间

这个是TCP/IP必不可少的,主要有两个原因:

1。防止上一次连接中的包,迷路后重新出现,影响新连接(经过2MSL,上一次连接中所有的重复包都会消失)

2。可靠的关闭TCP连接,在主动关闭方发送的最后一个 ack(fin) ,有可能丢失,这时被动方会重新发fin, 如果这时主动方处于 CLOSED 状态 ,

就会响应 rst 而不是 ack。所以主动方要处于 TIME_WAIT 状态,而不能是 CLOSED 。但是如果一方 send 或 recv 超时,就会直接进入

CLOSED 状态

[转] netstat 查看TCP状态值的更多相关文章

  1. netstat 查看TCP状态值

    一.TCP 状态值 netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' CLOSED:无连接是活动的或正在进行LI ...

  2. netstat查看tcp连接的状态

    netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"\t",state[key]}'

  3. Linux下用netstat查看网络状态、端口状态(转)

    转:http://blog.csdn.net/guodongdongnumber1/article/details/11383019 在linux一般使用netstat 来查看系统端口使用情况步.  ...

  4. window下查看TCP端口连接情况

    window下查看TCP端口连接情况:netstat -ano -p tcp|findstr 10001

  5. 在Linux下用netstat查看网络状态、端口状态

    在Linux下用netstat查看网络状态.端口状态 在linux一般使用netstat 来查看系统端口使用情况步. netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表.实 ...

  6. linux上使用netstat查看当前服务和监听端口

    netstat这个命令常用在网络监控方面.利用这个命令,可以查看当前系统监听的服务和已经建立的服务,以及相应的端口.协议等信息. netstat参数说明 netstat参数虽然很多,但是常用的不多,主 ...

  7. 【转】Linux下查看TCP网络连接情况

    查看TCP网络连接情况 命令:netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’ www.2cto.com 返回结 ...

  8. 用netstat查看网络状态详解

    --用netstat查看网络状态详解 -----------------------------2014/06/11 一.Linux服务器上11种网络连接状态:                     ...

  9. Linux中查看TCP连接数

    一.查看哪些IP连接本机 netstat -an 二.查看TCP连接数 1)统计80端口连接数netstat -nat|grep -i "80"|wc -l 2)统计httpd协议 ...

随机推荐

  1. IIS 错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”

    导致这种问题的原因是ASP.NET没有成功注册到IIS中,很有可能是先安装.Net Framework,然后安装IIS.为了避免此问题发生,要先安装IIS再安装.Net Framework. 解决方案 ...

  2. websocket实现简单的通信

    websocket server端 #coding=utf8 #!/usr/bin/python import struct,socket import hashlib import threadin ...

  3. python自动化开发-[第十九天]-分页,cookie,session

    今日概要: 1.cookie和session 2.csrf 跨站请求伪造 3.自定义分页 一.上节回顾: http请求的本质: - Http请求本质 浏览器(socket客户端): 2. socket ...

  4. Go 的构建模式

    Go 的八种 Build Mode exe (静态编译) exe (动态链接 libc) exe (动态链接 libc 和非 Go 代码) pie 地址无关可执行文件(安全特性) c-archive  ...

  5. ps -ef | grep Linux进程查看命令

    我们常常会想查看Linux的一些进程,很自然地用到了: ps -ef | grep xxx ps: process show 展示进程 参数:1. e 显示所有程序. 2. f  显示UID,PPIP ...

  6. tmux用法【常用】

    类似各种平铺式窗口管理器,tmux使用键盘操作,常用快捷键包括: Ctrl+b 激活控制台:此时以下按键生效 系统操作 ? 列出所有快捷键:按q返回 d 脱离当前会话:这样可以暂时返回Shell界面, ...

  7. 细说REST API安全之概述

    目前许多前后端应用都采取REST架构风格,前端应用和后端服务通过API进行数据交换.通过REST API在网络中进行数据交换时很容易被网络抓包,然后进行恶意批量调用,最终导致后端服务不堪负重而影响正常 ...

  8. Django眼中的MVC

    (转载)http://www.cnblogs.com/michaely/p/3340087.html MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 ...

  9. 什么是CMD

    cmd是command的缩写.命令提示符是在操作系统中,提示进行命令输入的一种工作提示符.在不同的操作系统环境下,命令提示符各不相同. 在windows环境下,命令行程序为cmd.exe,是一个32位 ...

  10. 三十二、Linux 进程与信号——不可靠信号

    32.1 不可靠信号问题 发生信号时关联动作被重置为默认设置 信号可能丢失 程序片段 在进入 sig_int 与再次调用 signal 之间发生的 SIGINT 信号将不会捕获 导致进程终止 以前版本 ...