作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经对NAT穿越做了一些研究,并从网上得到了一些关于P2P应用程序的建议。但我的情况与传统的 P2P 应用程序有些不同。我已经有一台公共(public)服务器,我只需要从已知的公共(public)服务器访问 NAT 后面的设备即可。
我的案例详细信息如下:
1.PC-A have public IP
2.PC-B is behind NAT, does not have public IP. In my case PC-A and PC-B is under full control.
3.PC-C is also behind NAT, and could be reached from PC-B
问题是:
最佳答案
您的 PC-A 在 P2P 通话中通常被称为“中继”。
基本原则是防火墙后面的所有对等方(在您的情况下为 PC-B 和 PC-C)建立到 PC-A 的出站连接。然后,PC-A“链接/绑定(bind)”这些连接。通常这些连接是通过 HTTP 建立的,这是防火墙友好的。因此,对于 PC-B 与 PC-C 通信,简化的顺序是:
当你投入时事情会变得(非常)复杂
大多数 P2P 框架都实现某种中继。 JXTA 和 XMPP 就是这种情况(检查 ICE)。
我相信 Ian Mc Ginniss 还开发了一种称为 HTTP 隧道的东西,作为 Netty 项目的一部分(最初是作为 JXTA 中继的替代品,而 JXTA 中继在某种程度上不是最理想的)
关于java - 以编程方式从已知公共(public)服务器进行 NAT 遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12135358/
我是一名优秀的程序员,十分优秀!