TCP 连接在握手期间挂起

网络工程 通讯协议 纳特
2021-07-16 20:46:39

在过去的几天里,在我的 LAN 的 NAT 后面发起的连接在完成 TCP 握手时遇到了问题(即网页仅在按 F5 几次后才加载,网络应用程序有时在启动时超时等)。TCP 连接建立后,一切正常。

我的网络配置是 EdgeOS 路由器后面的大约 20 台机器,它将内部地址伪装成我的 ISP 的 PPPoE 端点。最近(至少过去 6 个月)没有进行任何更新或配置更改。我已经排除了 NAT 端口耗尽、内存耗尽和我的 ISP 没有运行 CGNAT。这个问题在 Windows 和 Linux 机器上都存在,这意味着罪魁祸首很可能是 ISP。

手头的问题是,我该如何调查和记录这样的问题?

1个回答

您声明 TCP 连接一旦建立就运行良好。这使得 ISP 网络上的原因不太可能:ISP 路由器通常是无状态的,因此它们不关心网络 (IP) 层之上的层,并且(随机)数据包丢失会在建立连接期间和之后影响所有数据包.

更有可能的是,您的 NAT 路由器无法建立新的 NAT 会话。这可能是由于端口耗尽、内存耗尽或某些其他系统限制造成的。您应该检查路由器是否记录了错误和警告、内存或其他资源耗尽等。

如果路由器诊断没有找到问题,您可能需要在 NAT 路由器的 WAN 接口上运行数据包捕获,以确保 TCP SYN 等通过路由器。您还可以将该捕获与在已知良好的外部主机上进行的捕获进行比较。如果您确定数据包通过您的路由器而没有到达最终目的地,那么您的 ISP 需要回答一些问题。