如果您使用命令提示符执行命令查看网络连接情况,您会发现,PID为0的System Idle Process(系统空闲进程)将会出现很多网络端口占用情况。下面是一个示例:
Proto  Local Address          Foreign Address        State           PID
TCP    127.0.0.1:30606        127.0.0.1:3129         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3131         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3133         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3135         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3137         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3139         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3141         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3143         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3145         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3147         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3149         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3151         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3153         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3155         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3157         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3159         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3161         TIME_WAIT       0
TCP    127.0.0.1:30606        127.0.0.1:3165         TIME_WAIT       0
我们这里使用了“netstat -a -n -o”命令,参数-a用来显示所有的连接和监听端口,参数-o用来显示相应系统进程的PID,使用了参数-n以数字(IP)的方式显示地址和端口。
    那么是不是说明计算机中了病毒了呢?其实并不是这样,这要从为什么系统空闲进程要占用端口说起了。
    通过仔细观察,我们可以发现,命令结果列出的所有PID为0的通信的状态均为Time_Wait,而决不会是Established建立状态或者是Listening监听状态,这个就要涉及到一个TCP Socket的问题了,有兴趣深入研究的朋友们可以查阅一下更多的有关文章,因为概念性的东西太多了,因此我们在此仅进行一个简要的解释。
    原因是这样的:
    一、关于Time_Wait状态:
          TCP TIME-WAIT 延迟断开TCP 连接时,套接字对被置于一种称为TIME-WAIT 的状态。这样,新的连接不会使用相同的协议、源 IP 地址、目标 IP 地址、源端口和目标端口,直到经过足够长的时间后,确保任何可能被错误路由或延迟的段没有被异常传送。因此,Time_Wait不是多余的状态,而是为了保证通信的正确性、准确性而存在的。而且,这样的状态往往都交给系统空闲进程处理了,因为具体的应用程序已经完成了通信过程,发出了数据。因此,这里PID为0的通信均是已“断开”的曾经被进程使用过的连接,而且还没有释放端口。
    二、关于端口的释放:
          什么时候释放,怎样释放呢?我们将这种套接字对不被其它连接重新使用的时间长度指定为两个MSL(最大段生存时间),即4 分钟。对于Windows NT 系统来说,这是默认设置。然而,在此默认设置下,某些网络应用程序在很短时间内执行多个出站连接,也就可能会在端口收回前用完所有的可用端口。
    三、我们所看到的空闲进程端口占用的特点:
          因为总是有程序要交替或者分段连续地访问网络,而且同一个程序在端口被完全释放之前,可能还会再次使用,就算不再使用,为了保证正确通信,也要等待两个MSL,故处于Time_Wait。因此我们看到的情况是,系统空闲进程占用了一些端口,而且这些端口、端口的数量随着每次执行netstat -a -n -o命令时也会有变化。因为可能在某个处于Time_Wait的端口被完全释放之前,又有一个连接不再需要某个端口了,故新的一个端口又被置于Time_Wait状态,过了不久,前一个终于被释放了,于是您还是看到有这样的状态,但是端口是不一样的。对于一个接入网络并且安装了需要网络的应用软件的操作系统,这个过程是无限循环的,因此您总是能够看到处于Time_Wait状态的被PID=0的系统空闲进程“使用”的连接。

PID为0的系统空闲进程连接状态为TIME_WAIT相关推荐

  1. C#中判断系统的网络连接状态的方法

    在C#中可以使用多种方法来判断网络的连接状态,比如使用WIN32的API来判断,也可以直接Ping某个网址来判断. 下面来介绍下我最进行写的一个判断网络连接的方法类,使用了Wine32的API函数与P ...

  2. 08-操作系统之进程的状态(运行、就绪、阻塞、创建、终止)及转换(就绪->运行、运行->就绪、运行->阻塞、阻塞->就绪)

    目录 1.思维导图总览 2.进程的状态 2.1.三种基本状态(就绪.运行.阻塞) 2.2.创建态和结束态 3.进程状态之间的转换 1.思维导图总览 2.进程的状态 2.1.三种基本状态(就绪.运行.阻 ...

  3. 怎样kill掉TCP连接状态是TIME_WAIT的而且找不到PID

    netstat -apn 看到这几个端口被占,想kill掉占用端口的进程,发现pid那列是"-",怎么搞? 可以执行: lsof -n -i@127.0.0.1|grep 2701 ...

  4. Linux系统编程 进程控制

    文章目录 01. 学习目标 02. 进程和程序 (理解) 03. 单道.多道程序设计(了解) 3.1 单道程序设计 3.2 多道程序设计 04. 并行和并发(理解) 05. MMU(了解) 06. 进 ...

  5. TCP连接状态详解及TIME_WAIT过多的解决方法

    TCP建立连接的三次握手过程,以及关闭连接的四次握手过程. TCP建立连接的三次握手过程,以及关闭连接的四次握手过程. 1.建立连接协议(三次握手) (1)客户端发送一个带SYN标志的TCP报文到服务 ...

  6. 操作系统之进程的状态和转换详解

    进程的状态和转换 三态模型 一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以刻划,根据三态模型,进程的生命周期可分为如下三种进程状态: 1. 运行态(running):占有处理器正在 ...

  7. 查看tcp各个连接状态的数量

    4. 查看tcp各个连接状态的数量下面对的 netstat -tan|awk '$1~/tcp/{aa[$NF]++}END{for (h in aa)print h,aa[h]}' SYN_SENT ...

  8. 使用shell让其在系统空闲一段时间后自动结束指定进程

    (下面有代码) 事情起因:学校的上网账号 同一时间只能登一个,, 而实验室和宿舍都得使用这个账号上网 所以有时候在离开实验室回去时,会忘记将上网程序退出.导致回宿舍后没法上网, 又得打电话回去让别人帮 ...

  9. python获取当前进程pid_Python获取系统所有进程PID及进程名称的方法示例

    本文实例讲述了Python获取系统所有进程PID及进程名称的方法.分享给大家供大家参考,具体如下: psutil模块中提供了进程管理方法,引用其中的几个方法就能够获得进程的相关信息.简单写个小脚本测试 ...

  10. 0型系统, I型系统, II型系统对PID的影响

    判断0型系统, I型系统, II型系统 可参考百度百科, 或百度知道 主要是看系统传递函数的积分项 1 s \frac{1}{s} s1​的次数, 若为0, 则为0型系统, 若为I, 则为I型系统, ...

最新文章

  1. 首次揭秘!大麦如何应对超大规模高性能选座抢票?
  2. 解读《这就是 OKR》 | 你制定的 OKR 真的合格吗?
  3. 吴恩达机器学习入门2018高清视频公开,还有习题解答和课程拓展,网友:找不到理由不学!...
  4. linux无文件渗透执行elf
  5. ASCII,unicode, utf8 ,big5 ,gb2312,gbk,gb18030等几种常用编码区别
  6. DVWA--SQL注入
  7. 全国计算机等级考试和职称考试题库,全国职称计算机等级考试题库及答案
  8. python控制流教程_Python入门教程之运算符与控制流
  9. 递归求解全排列问题以及八皇后问题
  10. WCF分布式开发常见错误(13):此方法调用的事务被异步中断
  11. 嵌入式Linux,4G模组驱动,移远EC20、EC25使用随笔-内核kernel
  12. 结构梁配筋最牛插件_??Webpack 插件开发如此简单!
  13. 针式打印机无电脑测试软件,针式打印机断针测试软件合集
  14. C++入门教程(一)
  15. winhex数据恢复linux,winhex数据恢复教程(非常巨大,内容丰富)
  16. 记录一次Stack上关于数学之美的brainstorm
  17. matlab有限域多项式除法_第四章多项式和有限域.ppt
  18. VSCode 配置使用 PyLint 语法检查器
  19. 针对正方教务开发大学App(查成绩,课表,一键评教,图书馆,正方系统)
  20. 测试开发之Python核心笔记(15):迭代器与生成器

热门文章

  1. 佛罗里达大学计算机专业世界排名,2020年中佛罗里达大学排名TFE Times美国最佳计算机科学硕士专业排名第107...
  2. eve手游服务器维护,EVE手游国际服新手教程,云手机小号多开辅助快速获得资源...
  3. 我心中最敬业的天王 刘德华|分析天王近700多首歌曲
  4. Failed to start LSB: Bring up/down错误解决方法
  5. vue3.0 axios 图片上传
  6. 智能电子快递面单系统
  7. 快递面单成信息泄露重灾区,隐私面单成“必选项”
  8. iPhone 屏幕尺寸
  9. 织梦留言板模板 .php,DEDECMS 留言薄模块的使用方法
  10. 祝你生日快乐21音符简谱c语言代码,C语言程序设计:生日快乐歌.doc