题
有些事情对我来说看起来很奇怪:
- 0.0.0.0、127.0.0.1 和 [::] 之间有什么区别?
- 国外地址的各部分应该如何解读(part1:part2)?
- Time_Wait、Close_Wait 状态是什么意思?
- ETC。
有人可以快速概述一下如何解释这些结果吗?
解决方案
0.0.0.0通常指的是在所有接口上监听的东西。127.0.0.1 = localhost(仅您的本地接口),我不确定[::
Time_Wait意味着双方已同意关闭,TCP现在必须等待规定的时间,然后再将连接降低。
CLOSE_WAIT意味着远程系统已经完成发送,并且您的系统尚未说已完成。
其他提示
我知道答案已被接受,但这里有一些附加信息:
- 如果它说
0.0.0.0
在“本地地址”列上,这意味着该端口正在侦听所有“网络接口”(即您的计算机、调制解调器和网卡)。 - 如果它说
127.0.0.1
在“本地地址”列中,这意味着该端口仅侦听来自您的 PC 本身的连接,而不是来自 Internet 或网络的连接。那里没有危险。 - 如果它显示您的
online IP
在“本地地址”列中,这意味着该端口仅侦听来自 Internet 的连接。 - 如果它显示您的
local network IP
在“本地地址”列上,这意味着该端口仅侦听来自本地网络的连接。 - 外部地址 - 套接字所连接的远程计算机的 IP 地址和端口号。除非指定 -n 参数,否则将显示与 IP 地址和端口对应的名称。如果端口尚未建立,则端口号显示为星号 (*)。(来自维基百科)
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 简写。
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:part2)?
Send-Q 是应用程序发送但尚未被套接字另一端确认的数据量。
Recv-Q 是从 NIC 接收但尚未被应用程序消耗的数据量。
这两个队列都驻留在内核内存中。有 指南 如果您愿意的话,可以帮助您调整这些内核缓冲区。尽管如此,您可能会发现默认参数效果很好。
从那里复制一份 -
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 地址。