NAT端口能否在活动会话中dynamic变化?

我面临一个问题,客户端应用程序客户端应用程序经常发送UDP数据到服务器和服务器redirect回到客户端的问题。 但是在less数情况下,我在客户端没有收到数据包。

我检查了客户端路由器,因为它没有收到任何数据包,但服务器端路由器显示它已经将数据包传输到客户端。 那么数据包在哪里丢失?

有时我也观察到,经过一段时间之后,客户端开始接收数据包。 我已经检查了服务器端路由器和应用程序,发现NAT端口不同,因为服务器路由器正在从不同的NAT端口接收,但客户端仍在从前一个端口发送。

我不明白为什么这个客户端的NAT端口正在改变为服务器端路由器上的活动会话..这是一个双NAT的情况?

双重NAT是在从源到目的地的path中发生两次networking地址转换的地方。 例如一个NAT在另一个之后。 这是非常不可能的,但有时候可能。 例如无线路由器做NAT连接到另一个networking,有网关也做NAT。

UDP是一个不可靠的协议。 所以数据包可能根本不能到达。 应用程序应该足够聪明来处理。

对于UDP应用程序,通常当客户端(位于NAT后面)通过​​NAT向服务器发送UDP数据包时,NAT将打开一个端口,以允许从服务器接收响应并将其转发回客户端。 这是dynamic的,只会在规定的时间内开放。 你还没有说你在用什么NAT,所以谁知道这些超时可能是什么。