【问题标题】:Determining if existing connections are using TCP KeepAlive under Windows确定现有连接是否在 Windows 下使用 TCP KeepAlive
【发布时间】:2013-02-23 09:16:58
【问题描述】:

在 Windows(Vista 和更高版本)中,有一种方法或工具可以帮助确定现有的、已建立的传出 TCP 连接是否是使用 SO_KEEPALIVE 选项创建的。

在 Unix 平台上,这通常可以使用 netstat 来查看(即,'netstat -o' 将为 KEEPALIVE 显示单独的列)。

Windows 上的 Netstat 没有此功能。我测试过的其他 Microsoft/SysInternals 网络工具也没有。

我似乎无法找到可以提供此信息的工具。

场景是:在 Windows 2008 R2 服务器上运行的应用程序需要在它建立的所有连接上启用 TCP keepalive。一些应用程序没有启用 TCP keepalive 的选项,我需要一些方法来确定这些应用程序是否默认启用它。

明确一点:我需要一些工具,或者关于如何编写工具的建议,以显示现有的 winsock 连接是否启用了 TCP keepalive。虽然还有其他方法可以确定这一点(例如嗅探流量并查看是否发送了保活数据包),但它们都带有不确定性。此外,我们谈论的是大量服务器和大量应用程序。

【问题讨论】:

    标签: windows winsock keep-alive


    【解决方案1】:

    使用 WireShark 查看 TCP Keepalive 数据包。如果您需要像我一样检查环回,请使用https://github.com/nmap/npcap

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-29
      • 2020-11-30
      • 2013-11-16
      • 2013-12-31
      • 2010-09-25
      • 1970-01-01
      • 2015-12-14
      • 2021-02-25
      相关资源
      最近更新 更多