TCP请求随机"get lost in the internet"正常吗?



我创建并管理了一个用ASP构建的SOAP API。净ASMX。该API每天处理大约10,000个请求。大多数时候,客户端发送的大约3个请求(我们只有一个客户端)没有到达web服务器(IIS)。没有明显的图案。

我们实际上使用了两台web服务器,它们位于负载均衡器后面。从IIS日志中,我100%确信请求没有到达任何一个web服务器。

管理网络和负载均衡器的团队无法"确认或否认"问题是否发生在负载均衡器上。他们建议请求有时"在互联网上丢失"是正常的,并说我们应该在API中添加重试逻辑。

请求使用TCP(和TLS)。客户端已经确认没有问题。

我的问题是:TCP请求在互联网中丢失是正常的吗?以我们所看到的频率(大约每天万分之三)。

顺便说一句,web服务器和客户端都位于同一个国家。不管怎样,这个国家是一个英语国家,所以我们的互联网基础设施并不是劣质的。

没有TCP请求丢失这样的事情,因为首先就没有TCP请求这样的事情。有一个TCP连接,在这个连接中有一个TLS隧道,在这个隧道中有HTTP协议——只有在这个HTTP级别上才有请求和响应的概念,然后在服务器日志中可见。

问题可能发生在很多地方,比如由于没有路由(即没有互联网)或太多的数据包丢失而无法建立TCP连接。在TLS级别可能存在由位翻转引起的随机问题,这会导致完整性错误,从而导致连接关闭。在HTTP级别上可能会出现问题,例如,当使用HTTP keep-alive时,服务器关闭了一个空闲连接,而与此同时客户端正在尝试发送另一个请求。也许还有更多的地方。

客户端已经确认没有问题。

我不知道这到底是什么意思。如果客户端发送请求并获得响应,则不会出现问题。但这显然不是这里的情况,所以客户端无法建立TCP连接,在TLS级别失败,在发送请求时失败,在读取响应时失败,超时…-但可能客户端只是忽略了一些错误,因此在客户端看不到任何问题。

最新更新