CMD命令中netstat -an是什么意思?
Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
如果我们的计算机有时候接受到的数据报会导致出错数据删除或故障,我们不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。
但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么我们就应该使用Netstat查一查为什么会出现这些情况了。
stat –a
本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。
netstat-a 是个命令吗?请问怎么使用?
netstat-a是一个命令,用来显示所有连接和侦听端口,接下来用windows系统给具体演示一下:
1,按win+R组合键,如下图所示
2,在运行界面输入cmd命令,如下图所示
3,输stat -a命令就可以看到当前的连接以及端口,如下图所示
4,最后输stat -help可以查看其它的命令参数,如下图所示
详细解释下网络协议netstat -an
展开全部
解释:TCP协议类型;0.0.0.0本地地坏,135本地端口;pc-PC外部地址,54000;ESTABLISHED:连接状态类型
整个解释就是:外部一台名为PC-PC的主机正在54000用连接你机器的TCP 39000端口
状态类型:分为两大类如下
LISTENING:正在监听(如本机开了远程桌面会出现3389,server服务开了会139;445等一般用于查看本机开启了哪些服务.)
ESTABLISHED:正在进行的有效连接,如共享,网页访问,数据库访问,表示两者连接着
CLOSE_WAIT:有过连接,现在已经结束
这是常见的几种状态natstat 列出的连接状态类型有很多,想了解这个你要先理解TCP连接的工作过程(如建立连接,保持连接,中断连接状态会stat 中列出)
这里我也总结一下,具体三个阶段:
未进行任何连接,本地主机开启的服务会开启相应端口处于 LISTENING状态,实时准备响应客户端的请求.
如:TCP 0.0.0.0:139 pc-PC:0 LISTENING
表示本地机器的445端口处于侦听状态,对应服务为server
一、建立连接过程:
1、客户端发送一个带SYN标志的TCP报文到服务器(第一个包)stat 连接状态为SYN_SENT
(如果在你的机器机器上发现SYN_SENT,常见有两种可能出现:端口被阻,如果用sniffer抓包分发现ICMP报错为端口不可达)
如:TCP 192.168.3.163:50900 192.168.3.167:8080 SYN_SENT表示:外部一台名为PC-PC的主机正在54000用连接你机器的TCP 39000端口
2、服务器回应客户端,这个包同时带ACK标志和SYN标志,作用是:ACK回复客户端的请求,SYN询问客户端是否就(第二个包)。
对应连接状态SYN_RCVD,状态表示接受到来自了SYN包,会出现服务器端,由于这个过程很短,很少能见到,好不容易见到过一次服务器上有大量的SYN_RCVD连接,到现在不知道为什么产生这样的现象。
可能是DDOS攻击服务器想耗尽资源的关系
3、客户必端再次回应服务端一个ACK包(第三外包)在服务器收到最后一ACK包后,C/S连接建立完毕即进入ESTABLISHED状态。
如:TCP 192.168.3.163:50900 192.168.3.167:8080 ESTABLISHED
进入ESTABLISHED状态后即可传输数据,直到有一方发出连接中断请求。
介绍一下:syn flood(一种决绝服务攻击)
服务器有大量的半连接如果服务器的TCP/IP栈不够强悍就会导致堆栈溢出崩溃,退一步讲就是服务器的TCP/IP栈足强大,也会导至不会响应后继客户端的服务器请求,这也是SYN Flood攻击二、中断连接过程(来回过程共四次)
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。
原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。
收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。
首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
1、已经建立连接(ESTABLISHED状态)的双方有一方(如客户端)发送FIN提出终止连接请求,进入FIN_WAIT_1,此时会等待对方的ACK确认。
2、服务器在收到来自客户端的终止连接请求FIN,回复一个ACK后,进入CLOSE_WAIT状态待等客户端关闭连接,如果服务器发现还有数据要发给客户端,则会告诉客户端先不要关闭此时会进入FIN_WAIT_2。
3、如果服务器没有数据要发给客户端则也会发送一个FIN给客户端,进入FIN_WAIT_1,等待客户端的ACK,进入LAST_ACK状态。
如果此时双方都收到来自对方的ACK后,等2MSL后结束会话,进入初始化状态Closing
(如果双方同时收到来自对方的FIN和ACK,则不进入FIN_WAIT_2,而直接进入TIME_WAIT状态)
4、客户端发送ACK回复来自服务器的FIN,服务器收到ACK后关闭连接。
(FIN_WAIT_2状态即是有一方要求close连接,但另外还告诉对方,我暂时还有点 数据需要传送
给你,稍后再关闭连接;如果双方碰巧同时双方同时发送FIN包关闭连接则双方则会进入Closing关态)
netstat /nba 你可以看到详细的进程端口使用信息。