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命令结果详解相关推荐

  1. linux netstat命令参数详解

    netstat命令详解 它主要的用法和详解! (netstat -na 命令),本文主要是说Linux下的netstat工具,然后详细说明一下各种网络连接状态. netstat -nat |awk ' ...

  2. linux dd命令使用详解

    linux dd命令使用详解 dd 的主要选项: 指定数字的地方若以下列字符结尾乘以相应的数字: b=512, c=1, k=1024, w=2, xm=number m if=file 输入文件名, ...

  3. linux ps命令使用详解

    PS是LINUX下最常用的也是非常强大的进程查看命令 1. ps简介 前面介绍的两个命令都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题. 要对进程进行监测和控制,首先必须要了 ...

  4. linux :Tar 命令参数详解

    linux Tar 命令参数详解 tar命令 1. 作用 tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户. 2. 格式 tar [主选项+辅 ...

  5. linux nc命令使用详解

    linux nc命令使用详解 功能说明:功能强大的网络工具 语 法:nc [-hlnruz][-g<网关->][-G<指向器数目>][-i<延迟秒数>][-o< ...

  6. netstat 命令用法详解

    netstat 命令用法详解 apt install net-tools netstat -nutlp 命令详解: 显示所有连接. -a 选项会列出 tcp, udp 和 unix 协议下所有套接字的 ...

  7. linux dig命令使用详解

    linux dig命令使用详解 Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息.dig 命令主要用来从 DNS 域名服务器查询主机地 ...

  8. linux的nc命令退出,linux nc命令使用详解

    linux nc命令使用详解 功能说明:功能强大的网络工具 语法:nc [-hlnruz][-g][-G][-i][-o][-p][-s][-v...][-w][主机名称][通信端口...] 参数: ...

  9. linux中用less命令,Linux less 命令用法详解

    原标题:Linux less 命令用法详解 less 是一个Linux命令行实用程序,用于显示文件或命令输出的内容,它一次只显示一个页面.它类似于 more ,但具有更高级的功能,允许您在文件中向前和 ...

最新文章

  1. js float 取精度
  2. BIG DATA 大数据时代来临
  3. 第11章 支撑向量机SVM
  4. 源 arm_arm和X86处理器性能简单测试
  5. 无光驱不支持USB设备启动的笔记本,如何使用Ghost来安装系统
  6. oracle按位或运算符怎么用,Oracle按位运算符
  7. 这个寒假要大更新了!
  8. Linux常用命令介绍(三)——基础操作命令
  9. 温故知新----css基础
  10. sas导入txt出现中文乱码解决方案
  11. 1079:计算分数加减表达式的值
  12. 今日新闻简报 精选简报12条 2月1日
  13. 微信公众号开发 获取openid时报错40163:code been used问题的解决
  14. 椰树集团引爆互联网背后的“流量秘密”
  15. 阵列卡直通模式和raid模式_详解磁盘阵列RAID原理、种类及性能优缺点
  16. ISA防火墙简单安装配置实例
  17. Python数据分析与展示教程(北理工 嵩天教授)——展示数据基本方法
  18. golang使用josn.Unmarshal报错:unexpected end of JSON input
  19. python海龟绘图实例教程-python海龟turtle绘图实例教程
  20. 正零和负零的原码,反码,补码

热门文章

  1. 拓嘉启远:拼多多月卡有哪两种?如何区别
  2. 【学习笔记】【C++整理A】【总】单例模式-饿汉式、懒汉式;
  3. FPGA+CUYSB3014实现USB3.0功能
  4. HP EVA4400简介
  5. 乐高JAVA编程_编程和乐高机器人,是一样的吗?学习这些有用吗?
  6. java最大文件描述符,java – 为什么JDK NIO使用这么多的anon_inode文件描述符?
  7. Django创建APP
  8. 阿里云生活物联网平台搭建
  9. 色盲悖论_关于被色盲
  10. Win7下eclipse提交Job到hadoop集群