有些东西让我感到很奇怪:
- 0.0.0.0、127.0.0.1和[::]之间有什么区别?
- 如何阅读外部地址的每个部分(part1:part2)?
- 状态Time_Wait、Close_Wait是什么意思?
- 等等。
有人能简要概述一下如何解释这些结果吗?
有些东西让我感到很奇怪:
有人能简要概述一下如何解释这些结果吗?
我知道答案已经被接受了,但这里有一些额外的信息:
0.0.0.0
,则表示该端口正在所有“网络接口”上侦听(即您的计算机,调制解调器和网络适配器)。127.0.0.1
,则表示该端口仅监听来自您的PC自身的连接,而不是来自互联网或网络的连接。没有危险。在线IP
,则表示该端口仅监听来自互联网的连接。本地网络IP
,则表示该端口仅监听来自本地网络的连接。0.0.0.0通常指代在所有接口上监听的内容。 127.0.0.1 = localhost(仅限本地接口) 我不确定[::]是什么意思。
TIME_WAIT表示双方已经同意关闭TCP连接,现在必须等待规定的时间才能将连接断开。
CLOSE_WAIT表示远程系统已经完成发送操作,而你的系统尚未完成。
0.0.0.0、127.0.0.1和[::]有什么区别?
如何阅读外部地址的每个部分(part1:part2)?
127.0.0.1是回环地址,也称为“localhost”,如果在HOSTS文件中设置了,则可以使用此地址。更多信息请参见:http://en.wikipedia.org/wiki/Localhost
0.0.0.0表示应用程序已绑定到使用特定端口的所有IP地址。有关MS信息,请参见:http://support.microsoft.com/default.aspx?scid=kb;en-us;175952
'::'是IPv6中IPv4 0.0.0.0的简写。
以下是从那里复制的内容 -
TCP连接状态
以下是这个握手过程的简要说明。在这种情况下,“客户端”是请求连接的对等方,“服务器”是接受连接的对等方。请注意,此表示法不反映客户端/服务器关系作为架构原则。
连接建立
客户端向服务器发送一个SYN消息,其中包含服务器的端口和客户端的初始序列号(ISN)(主动打开)。
服务器回送自己的SYN和ACK(其中包括客户端的ISN + 1)。
客户端发送一个ACK(其中包括服务器的ISN + 1)。
连接撤销(修改后的三次握手)。
客户端发送FIN(主动关闭)。现在这是一个半关闭的连接。客户端不再发送数据,但仍能从服务器接收数据。收到此FIN后,服务器进入被动关闭状态。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 时,处于此状态。
CLOSED
服务器从客户端收到 ACK 并且连接已关闭。
Send-Q是应用程序发送但尚未被套接字另一端确认的数据量。
Recv-Q是从NIC接收但应用程序尚未消耗的数据量。
这两个队列都驻留在内核内存中。 如果您有兴趣,可以使用指南来调整这些内核缓冲区。不过,您可能会发现默认参数表现良好。
对于那些在它们的netstat输出中看到[::]的人,我打赌你们的机器正在运行IPv6;这相当于0.0.0.0,即在任何IPv6地址上进行侦听。