我们开发了一个供客户内部使用的 Web 应用程序,它严重依赖 ajax 请求。我们在全国有 20 多个客户,其中许多客户使用同一版本,并且大多数客户的用户量都很大。
仅在一个客户端上,我们发现 ajax 调用失败的频率相对较高,状态为 12031(ERROR_INTERNET_CONNECTION_RESET 对吗?)。“频繁”意味着每天 0-10 次,而其他具有类似使用/容量的客户端很少(如果有的话)会看到此错误(我们会记录所有内容)。
我们似乎无法重现这种情况,并且非常确定这是由于他们的内部网络出现故障造成的。是否有任何好的工具或代码可以用来分析为什么会发生这种情况,并可能提出建议?我怀疑我们是否能够更改甚至查看任何路由器设置,因为我们只是庞大的内部网络上的一个小应用程序。
先感谢您!
答案1
如果 Web 服务器没有负载问题,那么抛出 RST 数据包就没有多大意义。
其他欺骗重置的行为当然也是可能的,并且会指向某种安全设备(防火墙、IDS/IPS,甚至是网络过滤设备)压缩连接 - 网络路径中存在类似的东西吗?
这种程度的错误不一致可能会很难,但如果可能的话,请使用 wireshark 或 tcpdump 之类的工具捕获连接流量;Web 服务器是否真正发送了客户端正在接收的 RST 数据包尤其令人感兴趣。
答案2
如果确实是错误,我会要求与基础设施工作人员分享 - 非常温和!说一些类似的话:“我们正在查看我们的应用程序代码,但在重现问题时遇到了问题。由于错误表明可能存在底层网络中断,我们认为您可能需要查看一下,因为这可能会在其他地方引起问题。”
一种可能性是服务器 NIC 或交换机端口配置错误或者损坏。