27

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

  • 0.0.0.0、127.0.0.1 和 [::] 有什么区别?
  • 国外地址的每一部分应该怎么读(part1:part2)?
  • 状态 Time_Wait、Close_Wait 是什么意思?
  • 等等

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

4

7 回答 7

19

0.0.0.0 通常是指在所有接口上监听的东西。127.0.0.1 = localhost(仅限您的本地界面)我不确定 [::]

TIME_WAIT 表示双方都同意关闭,TCP 现在必须等待规定的时间才能断开连接。

CLOSE_WAIT 表示远程系统已完成发送,而您的系统尚未说已完成。

于 2008-08-21T19:28:47.400 回答
16

我知道答案已被接受,但这里有一些附加信息:

  • 如果它0.0.0.0显示在“本地地址”列上,则表示该端口正在侦听所有“网络接口”(即您的计算机、调制解调器和网卡)。
  • 如果它127.0.0.1在“本地地址”列上显示,则表示该端口仅侦听来自您的 PC 本身的连接,而不是来自 Internet 或网络的连接。那里没有危险。
  • 如果它显示online IP在本地地址列上,则表示该端口仅侦听来自 Internet 的连接。
  • 如果它显示local network IP在“本地地址”列上,则表示该端口仅侦听来自本地网络的连接。
  • Foreign Address - The IP address and port number of the remote computer to which the socket is connected. The names that corresponds to the IP address and the port are shown unless the -n parameter is specified. If the port is not yet established, the port number is shown as an asterisk (*). (from wikipedia)
于 2013-01-24T21:52:40.730 回答
9

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

  • 0.0.0.0 表示正在侦听机器上所有接口的东西。
  • 127.0.0.1 表示你自己的机器。
  • [::] 是 0.0.0.0 的 IPv6 版本
  • 我的机器还显示 *:\* for UDP,这表明 UDP 连接实际上没有外部地址 - 它们从任何地方接收数据包。这就是UDP的本质。

国外地址的每一部分应该怎么读(part1:part2)?

  • part1 是主机名或 IP 地址
  • part2是端口
  • 于 2008-08-28T04:13:25.750 回答
    7

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

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

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

    于 2008-08-21T19:47:20.523 回答
    2

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

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

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

    于 2008-08-28T03:50:02.107 回答
    2

    这个链接对我解释 netstat -a 有很大帮助

    那里的副本——

    TCP Connection States
    以下是此握手的简要说明。在这种情况下,“客户端”是请求连接的对等方,而“服务器”是接受连接的对等方。请注意,此表示法不反映作为架构主体的客户端/服务器关系。

    连接建立

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

    Connection Tear-down(修改了三向握手)。

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

    状态解释如 Netstat 所示:
    State Explanation


    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 并关闭连接。

    于 2010-02-11T21:45:18.043 回答
    0

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

    于 2008-08-28T05:16:08.640 回答