首页 文章

如何在Symmetric NAT下将数据包发送到客户端

提问于
浏览
0

我想在 symmetric nat 中从 client 发送 UDP 数据包到 public server . 我能够将数据包发送到服务器然而我希望服务器在对称锥形nat下将数据包发送到客户端 . 我该如何解决这个问题?请帮我 .

1 回答

  • 0

    使服务器将数据包发送到客户端的外部IP端口,服务器在客户端发送第一个数据包时检测到该端口 .

    基本上,路由器允许来自与其连接的设备的任何传出UDP流量,并阻止所有传入的UDP流量 . 但是每当发送UDP数据包时,它都会维护一个源和目标IP端口表 . 它允许来自路由器外部设备的回复,前提是路由器必须具有外部设备IP端口的条目 .

    所以,你现在只需要在表格中使用这个映射 . 只需让服务器从客户端收到的数据包中检测客户端的外部IP端口,然后让服务器将数据包发送回该外部IP端口上的客户端 .

    这将在路由器的防火墙中打一个洞,即路由器防火墙现在将允许传入的UDP数据包,因为它已经在其表中包含一个条目 . 此过程称为HOLE PUNCHING .

    您可以在发布的各种RFC中了解所有这些NAT遍历过程 .

相关问题