在 Windows 中,同一个 TCP 端口怎么会在 netstat 中显示为 BOUND 和 ESTABLISHED?

在 Windows 中,同一个 TCP 端口怎么会在 netstat 中显示为 BOUND 和 ESTABLISHED?

我正在调查 Windows 中的端口耗尽问题,netstat 的输出显示许多端口既为 BOUND 又为 ESTABLISHED

...
TCP    10.0.1.9:64318         10.0.1.9:8400          ESTABLISHED     10348
...
TCP    0.0.0.0:64318          0.0.0.0:0              BOUND           10348
...

怎么会这样?

更新:据我了解,BOUND 是套接字的一种暂时状态,通常不应出现在 netstat 的输出中(事实上它几乎从未出现过)。

在上面的例子中,同一台机器中的两个程序之间建立了连接。

端口 8400 被绑定到服务器程序中的一个监听套接字。端口 64318 被(系统)绑定到客户端程序中的一个连接套接字。

我看不出任何关于端口 64318 如何也显示为 BOUND 套接字的逻辑解释。

但事实确实如此。

答案1

netstat 输出描述得很好。基本上,临时端口是为了连接而开启的,一旦连接建立,它就会从监听状态中移除。

相关内容