gpt4 book ai didi

java - 如何通过NAT通过公网IP发送UDP数据包?

转载 作者:行者123 更新时间:2023-11-30 15:27:49 24 4
gpt4 key购买 nike

我有一个在我的专用网络上运行的 UDP 服务器。我有一个超出 NAT 的设备,它通过公共(public) IP 将 UDP 数据包发送到我的服务器。我能够接收 UDP 数据包,解析它们,并且可以查看有效负载、源端口和目标端口。现在我需要向该设备发送 ACK 消息,以便捕获 IP 和端口号并向其发送 UDP 数据包。但我无法查看该设备中的任何 UDP 数据包。

我的问题是,由于我的设备超出了 NAT,我获得的 IP 地址和端口号是 NAT 的还是实际设备的?

如何通过 NAT 将 UDP 数据包发送到该设备?

最佳答案

My question is as my Device is beyond NAT the IP address and port number I am getting is NAT's or the actual device's ?

您从数据包中识别出的 IP 和端口是 NAT 为客户端创建的映射。简单来说就是设备所连接的NAT的IP和端口。

How to send the UDP packet to that device through NAT ?

您需要回复服务器从客户端收到的数据包中检测到的 IP 和端口。更清楚地说,您需要实现UDP Holepunching

我想您应该首先了解有关连接到在 NAT 下工作的设备的网络问题。各种RFC可用于NAT穿越UDP打洞

以下是一些来源:

http://en.wikipedia.org/wiki/Network_address_translation

http://en.wikipedia.org/wiki/UDP_hole_punching

https://www.rfc-editor.org/rfc/rfc4787

https://www.rfc-editor.org/rfc/rfc5128

关于java - 如何通过NAT通过公网IP发送UDP数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26840514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com