zoukankan      html  css  js  c++  java
  • 服务端端口状态解释

    TCP协议规定,对于已经建立的连接,网络双方要进行四次握手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不 会被释放。网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服务器资源。在众多TCP状态中,最值得 注意的状态有两个:CLOSE_WAIT和TIME_WAIT。  

    1、LISTENING 处于侦听(LISTENING)状态。

    2、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、SYN_SENT 表示请求连接,当你要访问其它的计算机的服务时首先要发个同步信号给该端口,此时状态为SYN_SENT,如果连接成功了就变为 ESTABLISHED,此时SYN_SENT状态非常短暂。但如果发现SYN_SENT非常多且在向不同的机器发出,那你的机器可能中了冲击波或震荡波 之类的病毒了。这类病毒为了感染别的计算机,它就要扫描别的计算机,在扫描的过程中对每个要扫描的计算机都要发出了同步请求,这也是出现许多 SYN_SENT的原因。
     
    例如:cmd 执行 netstat -ano>>D:aa.txt  或 netstat -a -o查看端口占用情况
      1   协议  本地地址          外部地址        状态           PID
      2   TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       4
      3   TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       632
      4   TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
      5   TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING       692
      6   TCP    0.0.0.0:1026           0.0.0.0:0              LISTENING       872
      7   TCP    0.0.0.0:1027           0.0.0.0:0              LISTENING       1084
      8   TCP    0.0.0.0:1029           0.0.0.0:0              LISTENING       776
      9   TCP    0.0.0.0:1036           0.0.0.0:0              LISTENING       760
     10   TCP    0.0.0.0:1037           0.0.0.0:0              LISTENING       3976
     11   TCP    0.0.0.0:1433           0.0.0.0:0              LISTENING       2576
     12   TCP    0.0.0.0:7045           0.0.0.0:0              LISTENING       4
     13   TCP    0.0.0.0:7046           0.0.0.0:0              LISTENING       4
     14   TCP    0.0.0.0:7047           0.0.0.0:0              LISTENING       4
     15   TCP    0.0.0.0:7048           0.0.0.0:0              LISTENING       4
     16   TCP    0.0.0.0:7049           0.0.0.0:0              LISTENING       4
     17   TCP    0.0.0.0:7050           0.0.0.0:0              LISTENING       4
     18   TCP    0.0.0.0:7051           0.0.0.0:0              LISTENING       4
     19   TCP    0.0.0.0:7070           0.0.0.0:0              LISTENING       2040
     20   TCP    0.0.0.0:8000           0.0.0.0:0              LISTENING       4
     21   TCP    0.0.0.0:9001           0.0.0.0:0              LISTENING       4
     22   TCP    0.0.0.0:9003           0.0.0.0:0              LISTENING       4
     23   TCP    0.0.0.0:9011           0.0.0.0:0              LISTENING       4
     24   TCP    127.0.0.1:1314         127.0.0.1:1315         ESTABLISHED     1368
     25   TCP    127.0.0.1:1315         127.0.0.1:1314         ESTABLISHED     1368
     26   TCP    127.0.0.1:1434         0.0.0.0:0              LISTENING       2576
     27   TCP    127.0.0.1:1696         0.0.0.0:0              LISTENING       6324
     28   TCP    127.0.0.1:1697         0.0.0.0:0              LISTENING       1676
     29   TCP    127.0.0.1:4300         0.0.0.0:0              LISTENING       7216
     30   TCP    127.0.0.1:4301         0.0.0.0:0              LISTENING       7216
     31   TCP    127.0.0.1:5939         0.0.0.0:0              LISTENING       12280
     32   TCP    127.0.0.1:5939         127.0.0.1:7454         ESTABLISHED     12280
     33   TCP    127.0.0.1:7454         127.0.0.1:5939         ESTABLISHED     11816
     34   TCP    127.0.0.1:27382        0.0.0.0:0              LISTENING       8224
     35   TCP    192.168.0.77:139       0.0.0.0:0              LISTENING       4
     36   TCP    192.168.0.77:1723      65.52.0.51:5671        ESTABLISHED     6324
     37   TCP    192.168.0.77:1821      123.151.178.28:80      CLOSE_WAIT      7216
     38   TCP    192.168.0.77:2992      192.168.0.163:1433     ESTABLISHED     9352
     39   TCP    192.168.0.77:3094      192.168.0.163:445      ESTABLISHED     4
     40   TCP    192.168.0.77:3211      192.168.0.163:1433     ESTABLISHED     9352
     41   TCP    192.168.0.77:3272      183.61.38.181:80       CLOSE_WAIT      7216
     42   TCP    192.168.0.77:6628      192.168.0.163:5900     ESTABLISHED     10100
     43   TCP    192.168.0.77:6630      192.168.0.162:5900     ESTABLISHED     9644
     44   TCP    192.168.0.77:6727      123.151.176.162:80     CLOSE_WAIT      7216
     45   TCP    192.168.0.77:6731      101.201.173.115:80     ESTABLISHED     8696
     46   TCP    192.168.0.77:7014      101.201.173.115:80     ESTABLISHED     12076
     47   TCP    192.168.0.77:7209      101.201.173.115:80     ESTABLISHED     1408
     48   TCP    192.168.0.77:7462      159.8.67.132:5938      ESTABLISHED     12280
     49   TCP    192.168.0.77:8235      106.38.181.157:80      CLOSE_WAIT      7216
     50   TCP    192.168.0.77:8242      124.232.163.87:5938    ESTABLISHED     12280
     51   TCP    192.168.0.77:8244      78.46.49.23:80         FIN_WAIT_2      2040
     52   TCP    192.168.1.1:139        0.0.0.0:0              LISTENING       4
     53   TCP    192.168.189.1:139      0.0.0.0:0              LISTENING       4
     54   TCP    192.168.191.1:53       0.0.0.0:0              LISTENING       1368
     55   TCP    192.168.191.1:139      0.0.0.0:0              LISTENING       4
     56   TCP    192.168.191.1:8735     0.0.0.0:0              LISTENING       1368
     57   TCP    [::]:80                [::]:0                 LISTENING       4
     58   TCP    [::]:135               [::]:0                 LISTENING       632
     59   TCP    [::]:445               [::]:0                 LISTENING       4
     60   TCP    [::]:1025              [::]:0                 LISTENING       692
     61   TCP    [::]:1026              [::]:0                 LISTENING       872
     62   TCP    [::]:1027              [::]:0                 LISTENING       1084
     63   TCP    [::]:1029              [::]:0                 LISTENING       776
     64   TCP    [::]:1036              [::]:0                 LISTENING       760
     65   TCP    [::]:1037              [::]:0                 LISTENING       3976
     66   TCP    [::]:1433              [::]:0                 LISTENING       2576
     67   TCP    [::]:7045              [::]:0                 LISTENING       4
     68   TCP    [::]:7046              [::]:0                 LISTENING       4
     69   TCP    [::]:7047              [::]:0                 LISTENING       4
     70   TCP    [::]:7048              [::]:0                 LISTENING       4
     71   TCP    [::]:7049              [::]:0                 LISTENING       4
     72   TCP    [::]:7050              [::]:0                 LISTENING       4
     73   TCP    [::]:7051              [::]:0                 LISTENING       4
     74   TCP    [::]:8000              [::]:0                 LISTENING       4
     75   TCP    [::]:9001              [::]:0                 LISTENING       4
     76   TCP    [::]:9003              [::]:0                 LISTENING       4
     77   TCP    [::]:9011              [::]:0                 LISTENING       4
     78   TCP    [::1]:1434             [::]:0                 LISTENING       2576
     79   TCP    [::1]:1734             [::1]:1736             ESTABLISHED     5384
     80   TCP    [::1]:1736             [::1]:1734             ESTABLISHED     6324
     81   UDP    0.0.0.0:500            *:*                                    1084
     82   UDP    0.0.0.0:4001           *:*                                    7216
     83   UDP    0.0.0.0:4184           *:*                                    7216
     84   UDP    0.0.0.0:4500           *:*                                    1084
     85   UDP    0.0.0.0:5355           *:*                                    1256
     86   UDP    0.0.0.0:51349          *:*                                    12280
     87   UDP    0.0.0.0:51771          *:*                                    7216
     88   UDP    0.0.0.0:54293          *:*                                    7216
     89   UDP    0.0.0.0:54294          *:*                                    7216
     90   UDP    0.0.0.0:54295          *:*                                    7216
     91   UDP    0.0.0.0:55788          *:*                                    12280
     92   UDP    0.0.0.0:57779          *:*                                    7216
     93   UDP    0.0.0.0:58791          *:*                                    7216
     94   UDP    0.0.0.0:59125          *:*                                    3480
     95   UDP    0.0.0.0:59437          *:*                                    1368
     96   UDP    127.0.0.1:1900         *:*                                    3532
     97   UDP    127.0.0.1:61329        *:*                                    3532
     98   UDP    192.168.0.77:137       *:*                                    4
     99   UDP    192.168.0.77:138       *:*                                    4
    100   UDP    192.168.0.77:1900      *:*                                    3532
    101   UDP    192.168.0.77:5353      *:*                                    12280
    102   UDP    192.168.0.77:61328     *:*                                    3532
    103   UDP    192.168.1.1:137        *:*                                    4
    104   UDP    192.168.1.1:138        *:*                                    4
    105   UDP    192.168.1.1:1900       *:*                                    3532
    106   UDP    192.168.1.1:5353       *:*                                    12280
    107   UDP    192.168.173.1:67       *:*                                    1084
    108   UDP    192.168.173.1:68       *:*                                    1084
    109   UDP    192.168.189.1:137      *:*                                    4
    110   UDP    192.168.189.1:138      *:*                                    4
    111   UDP    192.168.189.1:1900     *:*                                    3532
    112   UDP    192.168.189.1:5353     *:*                                    12280
    113   UDP    192.168.191.1:53       *:*                                    1368
    114   UDP    192.168.191.1:67       *:*                                    1368
    115   UDP    192.168.191.1:137      *:*                                    4
    116   UDP    192.168.191.1:138      *:*                                    4
    117   UDP    192.168.191.1:1900     *:*                                    3532
    118   UDP    192.168.191.1:5353     *:*                                    12280
    119   UDP    192.168.191.1:61327    *:*                                    3532
    120   UDP    [::]:500               *:*                                    1084
    121   UDP    [::]:4500              *:*                                    1084
    122   UDP    [::]:5355              *:*                                    1256
    123   UDP    [::]:55789             *:*                                    12280
    124   UDP    [::1]:1900             *:*                                    3532
    125   UDP    [::1]:5353             *:*                                    12280
    126   UDP    [::1]:61326            *:*                                    3532
    127   UDP    [fe80::1485:f3e1:c20a:89d4%22]:1900  *:*                                    3532
    128   UDP    [fe80::58c1:dd0b:8c94:cdcb%30]:1900  *:*                                    3532
    129   UDP    [fe80::58c1:dd0b:8c94:cdcb%30]:61324  *:*                                    3532
    130   UDP    [fe80::60ee:5c16:dff8:26c6%21]:1900  *:*                                    3532
    131   UDP    [fe80::b8dd:2f46:ec42:728d%12]:1900  *:*                                    3532
    132   UDP    [fe80::b8dd:2f46:ec42:728d%12]:61325  *:*                                    3532
    活动连接

     根据TCP协议定义的3次握手断开连接规定,发起socket主动关闭的一方 socket将进入TIME_WAIT状态,TIME_WAIT状态将持续2个MSL(Max Segment Lifetime),在Windows下默认为4分钟,即240秒,TIME_WAIT状态下的socket不能被回收使用. 具体现象是对于一个处理大量短连接的服务器,如果是由服务器主动关闭客户端的连接,将导致服务器端存在大量的处于TIME_WAIT状态的socket, 甚至比处于Established状态下的socket多的多,严重影响服务器的处理能力,甚至耗尽可用的socket,停止服务. TIME_WAIT是TCP协议用以保证被重新分配的socket不会受到之前残留的延迟重发报文影响的机制,是必要的逻辑保证.


    windows 机器设置
    在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters,右键添加名为TcpTimedWaitDelay的
    DWORD键,设置为60,以缩短TIME_WAIT的等待时间

    ubuntu机器设置

    vi /etc/sysctl.conf

    编辑文件,加入以下内容:
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_fin_timeout = 30
     
    然后执行 /sbin/sysctl -p 让参数生效。
     
    net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;

    net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;

    net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。

    net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间



    查看系统TCP连接资源命令
    netstat 
    netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

    一般情况下,系统的socket资源默认5000个。(非官方)

    TCP协议中有TIME_WAIT这个状态
    主要有两个原因
    1。防止上一次连接中的包,迷路后重新出现,影响新连接(经过2MSL,上一次连接中所有的重复包都会消失)
    2。可靠的关闭TCP连接。在主动关闭方发送的最后一个 ack(fin) ,有可能丢失,这时被动方会重新发
    fin, 如果这时主动方处于 CLOSED 状态 ,就会响应 rst 而不是 ack。所以主动方要处于 TIME_WAIT 状态,而不能是 CLOSED 。

  • 相关阅读:
    CF1439E
    CF1446
    CSP2020 游记
    CF1442
    CF1444E
    CF1444
    CF850F Rainbow Balls
    A
    uoj266[清华集训2016]Alice和Bob又在玩游戏(SG函数)
    loj536「LibreOJ Round #6」花札(二分图博弈)
  • 原文地址:https://www.cnblogs.com/yf2011/p/4988202.html
Copyright © 2011-2022 走看看