我如何解释'netstat -a'输出

时间:2020-03-05 18:41:44  来源:igfitidea点击:

有些事情对我来说很奇怪:

  • 0.0.0.0、127.0.0.1和[::]之间有什么区别?
  • 如何读取外部地址的每一部分(part1:part2)?
  • Time_Wait,Close_Wait状态是什么意思?
  • 等等。

有人可以快速概述一下如何解释这些结果吗?

解决方案

回答

0.0.0.0通常是指在所有接口上监听的内容。
127.0.0.1 =本地主机(仅本地接口)
我不确定[::]

TIME_WAIT表示双方已同意关闭TCP
现在必须等待指定的时间才能进行连接
下。

CLOSE_WAIT表示远程系统已完成发送
系统尚未完成。

回答

如果在HOSTS文件中设置,则127.0.0.1是环回地址,也称为"本地主机"。有关更多信息,请参见此处:http://en.wikipedia.org/wiki/Localhost

0.0.0.0表示应用程序已使用特定端口绑定到所有IP地址。此处的MS信息:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;175952

'::'是ipv4 0.0.0.0的ipv6缩写。

回答

Send-Q是应用程序发送的数据量,但套接字另一端尚未确认。

Recv-Q是从NIC接收但尚未被应用程序使用的数据量。

这两个队列都驻留在内核内存中。
如果我们愿意的话,有一些指南可以调整这些内核缓冲区。虽然,我们可能会发现默认参数做得很好。

回答

0.0.0.0、127.0.0.1和[::]之间有什么区别?

  • 0.0.0.0表示正在计算机的所有接口上监听的内容。
  • 127.0.0.1表示我们自己的计算机。
  • [::]是0.0.0.0的IPv6版本
  • 我的机器还为UDP显示*:\ *,这表明UDP连接实际上没有外部地址-它们从任何地方接收数据包。这就是UDP的本质。
  • part1是主机名或者IP地址
  • part2是端口

回答

对于那些在netstat输出中看到[::]的人,我敢打赌计算机正在运行IPv6;相当于0.0.0.0,即在任何IPv6地址上监听。

回答

该链接对我解释netstat -a很有帮助

那里的副本-

TCP连接状态
以下是此握手的简要说明。在这种情况下,"客户端"是请求连接的对等方,而"服务器"是接受连接的对等方。请注意,此表示法并不将客户机/服务器关系反映为体系结构主体。

建立连接

客户端向服务器发送一个SYN消息,其中包含服务器的端口和客户端的初始序列号(ISN)(活动打开)。
服务器发回自己的SYN和ACK(由客户端的ISN +1组成)。
客户端发送一个ACK(由服务器的ISN +1组成)。

连接拆解(修改的三向握手)。

客户端发送一个FIN(主动关闭)。现在这是一个半封闭的连接。客户端不再发送数据,但仍然能够从服务器接收数据。收到此FIN后,服务器将进入被动关闭状态。
服务器发送一个ACK(这是客户端的FIN序列+ 1)
服务器发送自己的FIN。
客户端发送一个ACK(这是服务器的FIN序列+ 1)。收到此ACK后,服务器将关闭连接。
半封闭连接可用于终止发送数据,同时停止接收数据。套接字应用程序可以在第二个参数设置为1的情况下调用shutdown进入此状态。

状态说明如Netstat所示:
状态说明

SYN_SEND表示活动打开。

SYN_RECEIVED服务器刚刚从客户端接收到SYN。

ESTABLISHED客户端收到服务器的SYN并建立会话。

LISTEN服务器已准备好接受连接。

注意:有关listen()套接字调用,请参阅文档。未显示处于侦听状态的TCP套接字,这是NETSTAT的限制。有关其他信息,请参阅Microsoft知识库中的以下文章:
134404? NETSTAT.EXE不显示TCP侦听套接字
FIN_WAIT_1表示活动关闭。

" TIMED_WAIT"客户端在活动关闭后进入此状态。

CLOSE_WAIT指示被动关闭。服务器刚从客户端收到第一笔FIN。

FIN_WAIT_2客户端刚刚从服务器收到了对它的第一个FIN的确认。

LAST_ACK服务器在发送自己的FIN时处于此状态。

服务器已从客户端收到ACK,并且连接已关闭。