我正在尝试从对称nat 中的客户端向公共服务器发送 UDP 数据包。我能够将数据包发送到服务器然而我希望服务器在对称锥形nat下将数据包发送到客户端。我该如何解决这个问题?请帮帮我。
答案 0 :(得分:0)
使服务器将数据包发送到客户端的外部IP +端口,服务器在客户端发送第一个数据包时检测到该端口。
基本上,路由器允许来自连接到它的设备的任何传出UDP流量,并阻止所有传入的UDP流量。但是每当发送UDP数据包时,它都会维护一个源和目标IP +端口表。它允许来自路由器外部设备的回复,前提是路由器必须具有外部设备IP +端口的条目。
因此,您只需要在表格中使用此映射。 只需让服务器从客户端收到的数据包中检测客户端的外部IP +端口,然后让服务器将数据包发送回该外部IP +端口上的客户端。
这将在路由器的防火墙上打一个洞,即路由器防火墙现在将允许传入的UDP数据包,因为它已在其表中包含一个条目。此过程称为HOLE PUNCHING。
您可以在发布的各种RFC中了解所有这些NAT遍历过程。