Netstat状态分类
用netstat -an命令查看!再stat下面有一些英文,简单说一下这些英文具体都代表什么:
LISTEN:(Listening for a connection.)侦听来自远方的TCP端口的连接请求
SYN-SENT:(Active; sent SYN. Waiting for a matching connection request after having sent a connection request.)再发送连接请求后等待匹配的连接请求
SYN-RECEIVED:(Sent and received SYN. Waiting for a confirming connection request acknowledgment after having both received and sent connection requests.)再收到和发送一个连接请求后等待对方对连接请求的确认
ESTABLISHED:(Connection established.)代表一个打开的连接
FIN-WAIT-1:(Closed; sent FIN.)等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:(Closed; FIN is acknowledged; awaiting FIN.)从远程TCP等待连接中断请求
CLOSE-WAIT:(Received FIN; waiting to receive CLOSE.)等待从本地用户发来的连接中断请求
CLOSING:(Closed; exchanged FIN; waiting for FIN.)等待远程TCP对连接中断的确认
LAST-ACK:(Received FIN and CLOSE; waiting for FIN ACK.)等待原来的发向远程TCP的连接中断请求的确认
TIME-WAIT:(In 2 MSL (twice the maximum segment length) quiet wait after close. )等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:(Connection is closed.)没有任何连接状态
TCP连接建立
首先要说明的是要明确TCP连接建立的过程需要3次握手,下面举例说明各种状态存在的时刻:
1. 首先在服务器A上开启FTP服务,开始侦听来自远端TCP端口的连接请求,这个时候查看服务器A状态为:LISTENING
2. 在客户端B上向A发送FTP连接请求,这个时候数据包同步位置1,这是TCP三次握手的第一步。在发送后没收到确认时,在客户端B上其状态为:SYN-SENT。此时客户端B启动连接定时器。如果在75秒内没有收到应答,则放弃连接建立。
3. 在服务器A上收到从B上发送的SYN同步包后,确认,然后再向B发送SYN的同步包,此数据包同时将TCP标记中的同步位和确认位置1,它既对第一步中的 客户端同步数据包进行确认,表示愿意与客户端同步,同时再对客户端主机进行同步请求,这是TCP连接的第一步。这个时候在服务器A上,状态为:SYN- RECEIVED。此时服务器A启动连接定时器。如果在75秒内没有收到应答,则放弃连接建立。
4. 在客户端B上接收到从A上发过来的确认同步包后进行确认,此数据包中将TCP标记中的确认位置1,表示这是一个确认数据包,此时在客户端B状态转换为:ESTABLISHED
5. 服务器A接收到从B发过来的确认包后,状态转换为:ESTABLISHED
此时TCP连接正式建立。
TCP连接关闭
6. 应用程序在在连接不需要的时候,通过客户端B向服务器A发送的终止信息的FIN包后,客户端B处于FIN-WAIT-1状态。
7. 从服务器A接收到客户端B发送的终止数据包,它告诉客户端B已成功接收客户端的上数据包,此时等待应用程序来关闭连接,此时服务器A进入CLOSE_WAIT状态。
8. 客户端B接收到带有确认位的数据包后,对此进行确认,同意关闭TCP连接此时客户端B转移到FIN-WAIT-2状态。当连接从FIN-WAIT-1状态转移到FIN-WAIT-2状态时,将一个FIN-WAIT-2定时器设置为10分钟。
9. 服务器A在应用程序同意终止连接后,向客户端B发送终止FIN包,此时服务器状态转为LAST-ACT。
10. 客户端B在接收到从服务器A发送的终止包后,同意终止连接,然后再向服务器端发送确认信息,此时客户端B转向TIME-WAIT状态。当连接进入TIME-WAIT状态时,该定时器被激活。
11. 服务端A在收到客户端B的确认后,关闭连接,服务器A状态转向CLOSED。
12. 客户端B在TIME-WAIT定时器超时时,与该连接相关的内核数据块被删除,连接终止,转向CLOSED状态。
此时TCP连接正式关闭。
备注
1. 一个由客户端发起的关闭TCP连接的示意图:
2. 连接终止请求对与建立连接的双方是可以同时发出的,在发出终止请求后,双方都进入FIN-WAIT-1状态,随着定时器的超时,双方都进入CLOSING 状态,在这个定时器再次超时后,均转入TIME-WAIT状态,在TIME-WAIT的定时器超时后,双方均放弃这次连接,连接转为CLOSE状态。如图 示:
Netstat状态分类的更多相关文章
- shell每隔一秒钟就记录下netstat状态
说明 木马可能类似随机发送心跳包的操作,随机sleep.对这类情况写好了一个监听shell脚本,每隔一秒钟就记录下netstat状态. 代码 #!/bin/bash #功能:用于定时执行lsof 和 ...
- Hibernate对象的状态分类
对象的状态: 临时状态Transient: 与数据库没有对应,跟Session没有关联 一般是新new出的对象 持久化状态Persistent: 对象在Session的管理之中,最终会有对应的数据库记 ...
- CentOS下netstat + awk 查看tcp的网络连接状态
执行以下命令: #netstat -n | awk ‘/^tcp/ {++state[$NF]} END {for(key in state) print key."\t".sta ...
- LINUX下解决netstat查看TIME_WAIT状态过多问题(转)
原文连接:www.itokit.com/2012/0516/73950.html # netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c 16 CLOSIN ...
- TCP/IP连接状态
1.建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器.这是三次握手过程中的报文1.(2) 服务器端回应客户端的,这是三次握手中的第2个报文,这个报文同时带ACK标志和SYN ...
- TCP 连接状态
TCP/IP的设计者如此设计,主要原因有两个: 防止上一次连接中的包迷路后重新出现,影响新的连接(经过2MSL时间后,上一次连接中所有重复的包都会消失). 为了可靠地关闭TCP连接.主动关闭方发送的最 ...
- 统计网络time_wait连接状态及tcpip连接数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' LAST_ACK 1 SYN_RECV 14 ESTABLIS ...
- 离散信源的分类和数学模型&&离散无记忆信源的熵
1.离散信源的分类和数学模型 在离散时间发出离散符号的信源称为离散信源.如果信源符号集为有限集,则称为有限离散信源.如果信源符号集为无限可数集,则称为无限离散信源. 离散无记忆信源的N次拓展源:设信源 ...
- SaltStack配置管理之状态模块和jinja2(五)
官方文档 https://docs.saltstack.com/en/latest/topics/states/index.html 配置管理之SLS Salt State SLS描述文件(YAM ...
随机推荐
- Hessian探究(一)Hessian入门示例
一.hessian的maven信息: [html] view plain copy print? <dependency> <groupId>com.caucho</gr ...
- 学习笔记7-Android短信发送器
新建一个Android项目sns. 在String.xml添加文字 <resources> <stringname="app_name">Sns发送短信&l ...
- linux,shell脚本set -x的意思
set -x a=10 命令执行结果: + a=10 echo $a + echo 10 10 set指令能设置所使用shell的执行方式,可依照不同的需求来做设置 -a 标示已修改的变量,以供输出至 ...
- PA 创建项目
---- 创建项目 DECLARE l_orig_project_id NUMBER := 6; l_prj_num VARCHAR2(240) := 'CXYTEST001'; l_start_da ...
- Chipmunk僵尸物理对象的出现和解决(二)
如第一篇文章中图片所示,该游戏是一个弹球游戏. 玩法很简单,屏幕底部有一个反弹棒,用来确保小球不掉出屏幕同时反弹小球撞击屏幕上方的砖块. 玩家可以触摸屏幕来左右移动反弹棒. 等等!还不是这么简单,当小 ...
- 小强的HTML5移动开发之路(9)——坦克大战游戏3
来自:http://blog.csdn.net/dawanganban/article/details/17754235 上一篇我们创建了敌人的坦克和自己的坦克,接下来就应该让坦克发子弹了,我们下面来 ...
- 强力推荐各位攻城狮查看,收藏IT职业技能图谱(全套13张)
汇集整理泛 IT 技术领域(云计算,大数据,运维,安全,开发语言,智能硬件等)学习技能图谱,帮助程序员梳理知识框架结构,并尝试提供路径指导和精华资源,方便技术人学习成长. 运维工程师必备技能 程序开发 ...
- 【一天一道LeetCode】#75. Sort Colors
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- 【一天一道LeetCode】#62. Unique Paths
一天一道LeetCode系列 (一)题目 A robot is located at the top-left corner of a m x n grid (marked 'Start' in th ...
- java文件的基本操作示例
一.获得控制台用户输入的信息 public String getInputMessage() throws IOException...{ System.out.println("请输入您的 ...