解决 TCP(但不是 ICMP)数据包丢失问题

解决 TCP(但不是 ICMP)数据包丢失问题

我有服务器A和服务器, 和A尝试打开与服务器的 TCP 连接.curl显示大约有 5-10% 的连接尝试超时。

mtr显示 0% 损失以及中间跳跃(除了那些根本没有响应的跳跃)。
mtr --tcp显示约 5% 的损失,中间跳跃损失为 0%(有同样的警告)。

我已多次验证了这些结果。

服务器 A 是 AWS EC2 实例,我们在专用 VPC 上设置了该实例,以消除我们这边的任何问题。我们无法从 Azure、GCP、企业 ISP 和消费者 ISP 重现此问题。我们有趣的是,当从 AWS 发起时,能够通过两个不同的传输提供商重现此情况。但是,我不能肯定地说它们使用相同的跳数进入因为我们在之前的几个跳数中没有 mtr 响应

服务器 B 是 CDN 边缘服务器。(我们也是他们的客户,但这似乎无关紧要,因为我们现在正在 IP 地址级别进行故障排除,而且它只影响他们的一些边缘服务器。)

TCP 和 UDP 均可重现此问题,但我们无法通过 ICMP 重现此问题,无论数据包大小如何。此外,TCP/UDP 和 ICMP 之间所采用的路由似乎存在显著差异 - ICMP 数据包似乎只遵循一条路由;TCP/UDP 数据包遵循多条路由,但 ICMP 路由不是其中之一。

我是否可以进行进一步的故障排除/调查,以缩小发生这种情况的原因/位置?AWS 和服务器 B CDN 提供商互相指责,但毫无帮助,因此任何进一步的证据都将非常有帮助。

相关内容