zoukankan      html  css  js  c++  java
  • 计算机端口状态说明和解决占用的方法

    TCP状态转移要点

       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状态造成的资源浪费。

     

    目前有一种避免TIME_WAIT资源浪费的方法,就是关闭socket的LINGER选项。但这种做法是TCP协议不推荐使用的,在某些情况下这个操作可能会带来错误。


    5、在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等.

           这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入"cmd"后点击确定按钮,进入DOS窗口,接下来分别运行以下命令:

           >netstat -aon | findstr "80"

                    Proto  Local Address          Foreign Address        State            PID

                    ====  ============      ==============  ========== ======

                    TCP    0.0.0.0:80                    0.0.0.0:0                LISTENING      1688

    可以看出80端口被进程号为1688的程序占用.

           >tasklist | findstr "1688"

    图像名                                               PID            会话名                    会话#       内存使用

                   ========================= ====================== ======== ============

                   inetinfo.exe                                       1688           Console                      0              2,800 K

    很明显,是inetinfo占用了80端口;inetinfo.exe主要用于支持微软Windows IIS网络服务的除错,这个程序对你系统的正常运行是非常重要的.

           当然,并不是只有inetinfo.exe进程会占用80端口,这只是我机器上的情况.如果你并不了解此进程是干什么用的,千万不要盲目地将其kill掉,最好先百度或Google搜索一下;当然如果你很了解它,并确定可以终止,那么继续下面的命令.

           >taskkill /pid 1688 /F

    成功: 已终止 PID 为 1688 的进程。

    如果你很熟悉此进程,并确定可以终止,那么就直接使用上面的命令把PID为1688的进程终止.(这一步同样可以在任务管理器中执行,inetinfo.exe就是任务管理器中的映像名称,选中它,点击"结束进程"即可)

           >tasklist | findstr "1688"

    再次确认是否成功终止,如果成功终止此次执行命令后应返回空.

    6、linux下如何查看80端口占用情况?是被哪个进程占用?如何终止等

    查询端口是否被占用,被哪个进程占用有两种方式:1、netstat -anl | grep "80" ;2、lsof -i:80

    终止进程的方式:kill pid


    以上分别摘自:http://www.cppblog.com/prayer/archive/2009/04/01/78592.html

                                http://www.cnblogs.com/xyzdw/articles/2108149.html



  • 相关阅读:
    前端iframe跨域传值笔记
    css 将第1/n行文本超出部分替换成省略号
    第一章:1-08、计算机网络中的主干网和本地接入网各有何特点?
    第一章:1-07、 计算机网络可从哪几个方面进行分类?
    第一章:1-06、 试将TCP/IP和OSI的体系结构进行比较。讨论其异同之处?
    第一章:1-05、试讨论在广播式网络中对网络层的处理方法。讨论是否需要这一层?
    第一章:1-04、为什么说因特网是自由印刷术以来人类通信方面最大的变革?
    第一章:1-03、试从多个方面比较电路交换、报文交换和分组交换的主要优缺点。
    第一章:1-02、试简述分组交换的要点。
    第一章:1-01、计算机网络的发展可划分为几个阶段?每个阶段各有何特点?
  • 原文地址:https://www.cnblogs.com/joma/p/2380119.html
Copyright © 2011-2022 走看看