如何在 Windows 上查看 TCP 发送和接收队列大小?

10 networking linux windows tcpip

Linux netstat 显示发送和接收队列大小。

如何在 Windows 下获取此信息,特别是 Server 2003?

小智 5

这个问题很旧,但我想添加一些信息。这是谷歌上相当高的搜索结果。

据我所知,没有办法做到这一点,但如果有人可以进行更多挖掘并找出有效的替代方案,将不胜感激!

正如 @Fencepost 在他的回答中指出的,您可以尝试查询 NDIS OID。我发现的最相关的 NDIS OID 是OID_GEN_TRANSMIT_QUEUE_LENGTH

大多数 NDIS OID 都映射到 WMI 类,您可以使用以下命令在 powershell 中列出它们

Get-WmiObject -Namespace root\wmi -List  | Where-Object {$_.name -Match "MSNdis" } | Sort-Object
Run Code Online (Sandbox Code Playgroud)

但似乎没有关于传输队列长度的信息。

@Chris J 提到网络接口\输出队列长度。您可以使用typeperf在命令行上获取该值。

typeperf "\Network Interface(*)\Output Queue Length" -sc 1
Run Code Online (Sandbox Code Playgroud)

但该值始终为0: http: //support.microsoft.com/kb/822226

Windows 仅在 NIC 驱动程序软件中跟踪此信息,并且仅记录每个 NIC 排队的数据包,并且不区分每个套接字排队的内容。

如果您确实想在命令行上进行网络调试,则可以使用typeperflogman查询在perfmon中找到的任何计数器。