【发布时间】:2013-05-02 14:51:25
【问题描述】:
我需要在 NAT 后面实现一个简单的 P2P 应用程序。它应该通过可靠和安全的连接(通过 TCP 加密数据)发送数据。从理论背景来看,我知道在几个 RFC(5389、5769 和 5780)中描述了几种 NAT 遍历技术(例如 NAT 的会话遍历实用程序)。
虽然在实践中我找不到实现这样一个系统所需的工具/库(最好是 C++ 编程语言)。我已经通过盲目的谷歌搜索找到了:ICE, TURN, libnice, libjingle 和 STUNTMAN
下图描述了它的外观。我有一个具有有效 IP 地址的 VPS、一个位于 NAT 后面的 PC 和一个位于另一个 NAT 后面的传感器。他们有私有IP。我希望我的传感器连接到服务器,找到监视器并向它发送连接请求。连接建立后,中继服务器不应用于引导数据流量。我希望我的传感器和监视器使用此路径进行通信:
Sensor <--> AP0 <--> R3 <--> {THE INTERNET} <--> R2 <--> Monitor
目前所有数据都是通过VPS传输的:
Sensor <--> AP0 <--> R3 <--> {THE INTERNET} R1 <-->
VPS <--> R1 <--> {THE INTERNET} <--> R2 <--> Monitor
【问题讨论】:
-
我知道我什至不应该问,但端口转发或 UPnP 支持是不可能的?
-
@AnthonyAccioly 不,我只是忘了提。我完全糊涂了。无法转过头来寻找起点……
标签: c++ linux networking nat