有些事情对我来说看起来很奇怪:
- 0.0.0.0、127.0.0.1 和 [::] 有什么区别?
- 国外地址的每一部分应该怎么读(part1:part2)?
- 状态 Time_Wait、Close_Wait 是什么意思?
- 等等
有人可以快速概述如何解释这些结果吗?
有些事情对我来说看起来很奇怪:
有人可以快速概述如何解释这些结果吗?
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
在“本地地址”列上,则表示该端口仅侦听来自本地网络的连接。0.0.0.0、127.0.0.1 和 [::] 有什么区别?
国外地址的每一部分应该怎么读(part1:part2)?
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 简写。
Send-Q 是应用程序发送但尚未被套接字另一端确认的数据量。
Recv-Q 是从 NIC 接收到但尚未被应用程序消耗的数据量。
这两个队列都驻留在内核内存中。如果您愿意的话,有一些指南可以帮助您调整这些内核缓冲区。虽然,您可能会发现默认参数做得很好。
那里的副本——
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 并关闭连接。
对于那些在 netstat 输出中看到 [::] 的人,我敢打赌你的机器正在运行 IPv6;这相当于 0.0.0.0,即监听任何 IPv6 地址。