【发布时间】:2010-09-06 11:01:46
【问题描述】:
有些事情我觉得很奇怪:
- 0.0.0.0、127.0.0.1、[::]有什么区别?
- 应该如何读取外部地址的每一部分 (part1:part2)?
- Time_Wait、Close_Wait 状态是什么意思?
- 等
有人可以简要介绍一下如何解释这些结果吗?
【问题讨论】:
标签: networking netstat
有些事情我觉得很奇怪:
有人可以简要介绍一下如何解释这些结果吗?
【问题讨论】:
标签: networking netstat
我知道答案已被接受,但这里有一些附加信息:
0.0.0.0,则表示该端口正在侦听所有“网络接口”(即您的计算机、调制解调器和网卡)。127.0.0.1,则表示该端口仅侦听来自您的 PC 本身的连接,而不是来自 Internet 或网络的连接。那里没有危险。online IP,则表示该端口仅侦听来自 Internet 的连接。local network IP,则表示该端口仅侦听来自本地网络的连接。【讨论】:
0.0.0.0、127.0.0.1、[::]有什么区别?
国外地址的每一部分应该如何读取(part1:part2)?
【讨论】:
This link has helped me a lot to interpret netstat -a
那里的副本-
TCP Connection States
以下是此握手的简要说明。在这种情况下,“客户端”是请求连接的对等方,而“服务器”是接受连接的对等方。请注意,此表示法不反映作为架构主体的客户端/服务器关系。
连接建立
客户端向服务器发送一条包含服务器端口和客户端初始序列号 (ISN) 的 SYN 消息(主动打开)。
服务器发回自己的 SYN 和 ACK(由客户端的 ISN + 1 组成)。
客户端发送一个 ACK(由服务器的 ISN + 1 组成)。
连接断开(修改了三向握手)。
客户端发送一个 FIN(主动关闭)。这是一个现在半封闭的连接。客户端不再发送数据,但仍然能够从服务器接收数据。收到此 FIN 后,服务器进入被动关闭状态。
服务器发送一个 ACK(即客户端 FIN 序列 + 1)
服务器发送自己的 FIN。
客户端发送一个 ACK(即服务器的 FIN 序列 + 1)。收到此 ACK 后,服务器将关闭连接。
半关闭连接可用于在接收数据时终止发送数据。套接字应用程序可以调用 shutdown 并将第二个参数设置为 1 以进入此状态。
状态解释如 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 并关闭连接。
【讨论】:
对于那些在 netstat 输出中看到 [::] 的人,我敢打赌你的机器正在运行 IPv6;这相当于 0.0.0.0,即监听任何 IPv6 地址。
【讨论】:
Send-Q 是应用程序发送但尚未被套接字另一端确认的数据量。
Recv-Q 是从 NIC 接收到但尚未被应用程序消耗的数据量。
这两个队列都驻留在内核内存中。 如果您愿意,有guides 可以帮助您调整这些内核缓冲区。不过,您可能会发现默认参数做得很好。
【讨论】:
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
'::' 是 ipv6 对 ipv4 0.0.0.0 的简写。
【讨论】:
0.0.0.0 通常是指监听所有接口的东西。 127.0.0.1 = localhost(仅限您的本地界面) 我不确定 [::]
TIME_WAIT 表示双方都同意关闭和 TCP 现在必须等待规定的时间才能建立连接 下来。
CLOSE_WAIT 表示远程系统已完成发送 你的系统还没有说它已经完成了。
【讨论】: