XP系统中的''netstat''命令中无法查看到使用UDP协议的端口的''state''信息、''state'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XP系统中的''netstat''命令中无法查看到使用UDP协议的端口的''state''信息、''state'相关的知识,希望对你有一定的参考价值。
XP系统中的''netstat''命令中无法查看到使用UDP协议的端口的''state''信息、''state''是什么东西呀!我在书上看的,我就问,UDP协议的端口的''state''信息,这句话什么意思!
建议你看tcp/ip详解,因为你连状态是什么都不知道,怎么跟你解释?再就是只有TCP有state,我在后边给你贴出来;UDP是没有state的,这也解释了你为什么抓不到UDP的状态这个问题了,有些书也可能会有笔误的,灵活点,呵呵。TCP的state 包括很多种,下边的是我自己的文档,从word粘贴出来的,貌似看起来不是很舒服,我也不慢慢改格式了,先贴给你吧。
CLOSED: 这个没什么好说的了,表示初始状态。
LISTEN: 这个也是非常容易理解的一个状态,表示服务器端的某个SOCKET处于监听状态,可以接受连接了。
SYN_RCVD: 这个状态表示接受到了SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂,基本上用netstat你是很难看到这种状态的,除非你特意写了一个客户端测试程序,故意将三次TCP握手过程中最后一个ACK报文不予发送。因此这种状态时,当收到客户端的ACK报文后,它会进入到ESTABLISHED状态。
SYN_SENT: 这个状态与SYN_RCVD遥想呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,因此也随即它会进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。
ESTABLISHED:这个容易理解了,表示连接已经建立了。
FIN_WAIT_1: 这个状态要好好解释一下,其实FIN_WAIT_1和FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2状态还有时常常可以用netstat看到。
FIN_WAIT_2:上面已经详细解释了这种状态,实际上FIN_WAIT_2状态下的SOCKET,表示半连接,也即有一方要求close连接,但另外还告诉对方,我暂时还有点数据需要传送给你,稍后再关闭连接。
TIME_WAIT: 表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到CLOSED可用状态了。如果FIN_WAIT_1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。
CLOSING: 这种状态比较特殊,实际情况中应该是很少见,属于一种比较罕见的例外状态。正常情况下,当你发送FIN报文后,按理来说是应该先收到(或同时收到)对方的ACK报文,再收到对方的FIN报文。但是CLOSING状态表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?其实细想一下,也不难得出结论:那就是如果双方几乎在同时close一个SOCKET的话,那么就出现了双方同时发送FIN报文的情况,也即会出现CLOSING状态,表示双方都正在关闭SOCKET连接。
CLOSE_WAIT: 这种状态的含义其实是表示在等待关闭。怎么理解呢?当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话,那么你也就可以close这个SOCKET,发送FIN报文给对方,也即关闭连接。所以你在CLOSE_WAIT状态下,需要完成的事情是等待你去关闭连接。
LAST_ACK: 这个状态还是比较容易好理解的,它是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,也即可以进入到CLOSED可用状态了。
参考资料:经验
参考技术A 就是XXX端口的连接“状态”。 参考技术B 是查看网络连接的,也就是所有和你电脑建立的连接,可以用来检测是否有非法连接的netstat -n -s -a -e 等。建议你先随便输入一个netstat -t然后里面有提示的。
慢慢学吧!
不能使用命令netstat-an
本人用的是XP系统,在命令提示符里用netstat-an命令查看端口时,却显示不是内部或外部命令,也不是可运行的程序或批处理文件,这是为什么,该怎么办?
可能的原因及对策:1.首先提醒你,应该是netstat -an,就是说第3个t与-之间有空格。
2.可能netstat.exe文件不存在。在命令提示符下输入
dir /a c:\windows\system32\netstat.exe
如果提示找不到文件,那就是真的不存在。你可以从别的XP机器上复制一个,放到system32目录下。如果有这个文件的信息,那就只可能环境变量丢失了。
3.可能环境变量丢失。你要使用这个命令就要这样:
c:\windows\system32\netstat.exe -an
参考资料:回答者:ahejn - 助理 三级 1-31 10:45
参考技术A 先进入 C:\WINDOWS\system32 目录,看看有没有NETSTAT.EXE这个文件,如果没有,从别的XP机器上复制一个,如果有,肯定是你的环境变量丢掉了,以后运行 cd c:\windows\system32 回车再运行那个命令.
以上是关于XP系统中的''netstat''命令中无法查看到使用UDP协议的端口的''state''信息、''state'的主要内容,如果未能解决你的问题,请参考以下文章
输出netstat-ano后看不到80端口和3306端口怎么解决阿,我这是XP系统
windows xp系统如何转换linux系统传过来的文本内回车换行符的问题