我们有一个应用程序服务器,当网络出现拥塞时(在客户端站点),我们观察到它会发送 TCP 窗口大小为 0 的标头。
我们想知道是 Indy 还是底层 Windows 层负责将 TCP 窗口大小从标称的 64K 向下调整以适应可用吞吐量。
我们将能够在它变为 0 时采取行动(什么都没有发送,用户等待 => 不好)。
因此,欢迎任何信息、链接、指向 Indy 代码的指针......
免责声明:我不是网络专家。请让我的答案可以理解;-)
注意:它是 Windows Server 2003 SP2 上的 Indy9/D2007。
更多血腥细节:
TCP 零窗口案例发生在与数据库服务器通信的中间层。
它发生在最终用户抱怨客户端应用程序速度变慢的同一时刻(这就是触发网络调查的原因)。
已确定导致瓶颈的 2 个主要网络问题。
TCP 零窗口是在网络拥塞时发生的,但可能是也可能不是由它引起的。
我们想知道这种情况何时发生,并有办法在我们的代码中做某事(至少记录)。
那么核心问题是谁将窗口大小设置为 0,在哪里设置?
在哪里挂钩(在印地?)知道什么时候发生这种情况?