NAT 路由器在拒绝来自先前打开的连接的传入数据包之前等待多长时间

How long do NAT routers wait before rejecting incoming packets from previously opened connections

NAT 路由器在拒绝数据包之前通常允许来自先前打开的 TCP 流的传入数据包多长时间?我正在开发一个 P2P 应用程序,我不想与我的中央服务器和中继数据包保持开放连接。相反,我正在考虑让客户端轮询中央服务器,保存这些 ip 和端口号,然后从服务器返回到每个客户端以在以后的某个时间启动 P2P 连接。如果 NAT 长时间允许数据包进入,这是可行的。如果这不可能,有谁知道其他 P2P 应用程序如何建立 NAT Transveral/Connections?

这不太可能奏效。典型的家用路由器会跟踪 TCP 连接的状态,不会转发已关闭的连接上的流量。

即使对于 active TCP 连接,路由器保持打开连接但不发送任何数据的时间量也可能有很大差异——我已经看到了一切一分钟到一周之间。您将需要保持连接打开,并定期发送保持连接,以可靠地维持连接。

一些路由器还支持 NAT Port Mapping Protocol 将端口转发到路由器后面的设备。但是,这并未得到普遍支持。特别是,它在商业路由器中几乎从不支持。