Linux:netstat命令结果详解
1. Proto(协议) Recv-Q(接收队列) Send-Q(发送队列) Local Address(本地通讯链接地址) Foreign Address(远程通讯链接地址) State (状态)
netstat 既可以是服务端网络通信信息,也可以是客户端网络通信信息
2.state状态详解
TCP三次握手的过程如下:
主动连接端发送一个SYN包给被动连接端;
被动连接端收到SYN包后,发送一个带ACK和SYN标志的包给主动连接端;
主动连接端发送一个带ACK标志的包给被动连接端,握手动作完成。
TCP四次挥手的过程如下:
主动关闭端发送一个FIN包给被动关闭端;
被动关闭端收到FIN包后,发送一个ACK包给主动关闭端;
被动关闭端发送了ACK包后,再发送一个FIN包给主动关闭端;
主动关闭端收到FIN包后,发送一个ACK包,当被动关闭端收到ACK包后,四次挥手动作完成,连接断开。
netstat中的各种状态:
CLOSED
初始(无连接)状态。
LISTEN
侦听状态,等待远程机器的连接请求。
SYN_SEND
在TCP三次握手期间,主动连接端发送了SYN包后,进入SYN_SEND状态,等待对方的ACK包。
SYN_RECV
在TCP三次握手期间,主动连接端收到SYN包后,进入SYN_RECV状态。
ESTABLISHED
完成TCP三次握手后,主动连接端进入ESTABLISHED状态。此时,TCP连接已经建立,可以进行通信。
FIN_WAIT_1
在TCP四次挥手时,主动关闭端发送FIN包后,进入FIN_WAIT_1状态。
FIN_WAIT_2
在TCP四次挥手时,主动关闭端收到ACK包后,进入FIN_WAIT_2状态。
TIME_WAIT
在TCP四次挥手时,主动关闭端发送了ACK包之后,进入TIME_WAIT状态,等待最多MSL时间,让被动关闭端收到ACK包。
CLOSING
在TCP四次挥手期间,主动关闭端发送了FIN包后,没有收到对应的ACK包,却收到对方的FIN包,此时,进入CLOSING状态。
CLOSE_WAIT
在TCP四次挥手期间,被动关闭端收到FIN包后,进入CLOSE_WAIT状态。
LAST_ACK
在TCP四次挥手时,被动关闭端发送FIN包后,进入LAST_ACK状态,等待对方的ACK包。
主动连接端可能的状态有:
CLOSED SYN_SEND ESTABLISHED。
主动关闭端可能的状态有:
FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT。
被动连接端可能的状态有:
LISTEN SYN_RECV ESTABLISHED。
被动关闭端可能的状态有:
CLOSE_WAIT LAST_ACK CLOSED。
TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。
网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得注意的状态有两个:CLOSE_WAIT和TIME_WAIT。
1、LISTENING状态
FTP服务启动后首先处于侦听(LISTENING)状态。
2、ESTABLISHED状态
ESTABLISHED的意思是建立连接。表示两台机器正在通信。
3、CLOSE_WAIT
对方主动关闭连接或者网络异常导致连接中断,这时我方的状态会变成CLOSE_WAIT 此时我方要调用close()来使得连接正确关闭
4、TIME_WAIT
我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT。TCP协议规定TIME_WAIT状态会一直持续2MSL(即两倍的分段最大生存期),以此来确保旧的连接状态不会对新连接产生影响
。处于TIME_WAIT状态的连接占用的资源不会被内核释放,所以作为服务器,在可能的情况下,尽量不要主动断开连接,以减少TIME_WAIT状态造成的资源浪费。
Linux:netstat命令结果详解相关推荐
- linux netstat命令参数详解
netstat命令详解 它主要的用法和详解! (netstat -na 命令),本文主要是说Linux下的netstat工具,然后详细说明一下各种网络连接状态. netstat -nat |awk ' ...
- linux dd命令使用详解
linux dd命令使用详解 dd 的主要选项: 指定数字的地方若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m if=file 输入文件名, ...
- linux ps命令使用详解
PS是LINUX下最常用的也是非常强大的进程查看命令 1. ps简介 前面介绍的两个命令都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题. 要对进程进行监测和控制,首先必须要了 ...
- linux :Tar 命令参数详解
linux Tar 命令参数详解 tar命令 1. 作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. 2. 格式 tar [主选项+辅 ...
- linux nc命令使用详解
linux nc命令使用详解 功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关->][-G<指向器数目>][-i<延迟秒数>][-o< ...
- netstat 命令用法详解
netstat 命令用法详解 apt install net-tools netstat -nutlp 命令详解: 显示所有连接. -a 选项会列出 tcp, udp 和 unix 协议下所有套接字的 ...
- linux dig命令使用详解
linux dig命令使用详解 Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息.dig 命令主要用来从 DNS 域名服务器查询主机地 ...
- linux的nc命令退出,linux nc命令使用详解
linux nc命令使用详解 功能说明:功能强大的网络工具 语法:nc [-hlnruz][-g][-G][-i][-o][-p][-s][-v...][-w][主机名称][通信端口...] 参数: ...
- linux中用less命令,Linux less 命令用法详解
原标题:Linux less 命令用法详解 less 是一个Linux命令行实用程序,用于显示文件或命令输出的内容,它一次只显示一个页面.它类似于 more ,但具有更高级的功能,允许您在文件中向前和 ...
最新文章
- js float 取精度
- BIG DATA 大数据时代来临
- 第11章 支撑向量机SVM
- 源 arm_arm和X86处理器性能简单测试
- 无光驱不支持USB设备启动的笔记本,如何使用Ghost来安装系统
- oracle按位或运算符怎么用,Oracle按位运算符
- 这个寒假要大更新了!
- Linux常用命令介绍(三)——基础操作命令
- 温故知新----css基础
- sas导入txt出现中文乱码解决方案
- 1079:计算分数加减表达式的值
- 今日新闻简报 精选简报12条 2月1日
- 微信公众号开发 获取openid时报错40163:code been used问题的解决
- 椰树集团引爆互联网背后的“流量秘密”
- 阵列卡直通模式和raid模式_详解磁盘阵列RAID原理、种类及性能优缺点
- ISA防火墙简单安装配置实例
- Python数据分析与展示教程(北理工 嵩天教授)——展示数据基本方法
- golang使用josn.Unmarshal报错:unexpected end of JSON input
- python海龟绘图实例教程-python海龟turtle绘图实例教程
- 正零和负零的原码,反码,补码