zoukankan      html  css  js  c++  java
  • 案例1-windows 端口冲突

    ###############################################################################
    # Name : Mahavairocana                                                                                                                                           
    # Author : Mahavairocana                                                                                                                                         
    # QQ : 10353512                                                                                                                                                    
    # WeChat : shenlan-qianlan                                                                                                                                      
    # Blog : http://www.cnblogs.com/Mahavairocana/                                                                                                       
    # Description : You are welcome to reprint, or hyperlinks to indicate the                                                                        
    #                    source of the article, as well as author information.                                                                                ###############################################################################

     故障现象:

    远程桌面时好时坏;

    经过排查,发现端口冲突,排查命令如下;

    1、查找端口所占用pid文件;

     netstat -nao | findstar "3389"   找到最后一列,为PID;这里没有截取到

    2、根据PID查询是哪个进程,使用tasklist 命令

    tasklist | findstr "$PID"

       当时查看到是svchost进程引起端口冲突,后修改远程桌面端口;

      修改端口方法如下:

    [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTeminal SeverWds
    dpwdTds	cp]
    
    找到右侧的PortNumber,点击十进制,将3389修改为33389,确定。
    
    [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTeminal SeverWinStationRDP_Tcp]
    
    找到右侧的PortNumber,点击十进制,将3389修改为33389,确定。
    
    
    修改后重启

    重启后查看正常端口监听:

    端口状态说明:

    一、LISTENING 

      提供某种服务,侦听远方TCP端口的连接请求,当提供的服务没有被连接时,处于LISTENING状态,端口是开放的,等待被连接。

    二、SYN_SENT (客户端状态)

      客户端调用connect,发送一个SYN请求建立一个连接,在发送连接请求后等待匹配的连接请求,此时状态为SYN_SENT.

    三、SYN_RECEIVED (服务端状态)

      在收到和发送一个连接请求后,等待对方对连接请求的确认,当服务器收到客户端发送的同步信号时,将标志位ACK和SYN置1发送给客户端,此时服务器端处于SYN_RCVD状态,如果连接成功了就变为ESTABLISHED,正常情况下SYN_RCVD状态非常短暂。

    四、ESTABLISHED

      ESTABLISHED状态是表示两台机器正在传输数据。

    五、FIN-WAIT-1

      等待远程TCP连接中断请求,或先前的连接中断请求的确认,主动关闭端应用程序调用close,TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态。

    六、FIN-WAIT-2

      从远程TCP等待连接中断请求,主动关闭端接到ACK后,就进入了FIN-WAIT-2 .这是在关闭连接时,客户端和服务器两次握手之后的状态,是著名的半关闭的状态了,在这个状态下,应用程序还有接受数据的能力,但是已经无法发送数据,但是也有一种可能是,客户端一直处于FIN_WAIT_2状态,而服务器则一直处于WAIT_CLOSE状态,而直到应用层来决定关闭这个状态。

      附半关闭例图:

      

    七、CLOSE-WAIT

      等待从本地用户发来的连接中断请求 ,被动关闭端TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT. 

    八、CLOSING

      等待远程TCP对连接中断的确认,处于此种状态比较少见。

    九、LAST-ACK

      等待原来的发向远程TCP的连接中断请求的确认,被动关闭端一段时间后,接收到文件结束符的应用程序将调用CLOSE关闭连接,TCP也发送一个 FIN,等待对方的ACK.进入LAST-ACK。

    十、TIME-WAIT

      在主动关闭端接收到FIN后,TCP就发送ACK包,并进入TIME-WAIT状态,等待足够的时间以确保远程TCP接收到连接中断请求的确认,很大程度上保证了双方都可以正常结束,但是也存在问题,须等待2MSL时间的过去才能进行下一次连接。

    十一、CLOSED

      被动关闭端在接受到ACK包后,就进入了closed的状态,连接结束,没有任何连接状态。

    TCP正常连接建立和终止所对应的状态图

      

    状态迁移过程:

      a、客户端:

        CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT->CLOSED

      b、服务端

        CLOSED->LISTEN->SYN_RECEIVED->ESTABLISHED->CLOSE_WAIT->LAST_ACK->CLOSE

    在众多状态中,经常关注的有两个:TIME_WAIT、CLOSE_WAIT。

    附状态迁移过程图:

      

  • 相关阅读:
    Minimum Depth of Binary Tree leetcode java
    Maximum Depth of Binary Tree leetcode java
    Symmetric Tree leetcode java
    Same Tree leetcode java
    Binary Tree Postorder Traversal leetcode java
    Binary Tree Preorder Traversal leetcode java
    Binary Tree Inorder Traversal leetcode java
    Combinations leetcode java
    一键清除Centos iptables 防火墙所有规则
    阿里云centos7.7x64安装open,并配置ip转发和nat伪装
  • 原文地址:https://www.cnblogs.com/Mahavairocana/p/8377113.html
Copyright © 2011-2022 走看看