首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对等连接,当一个人在NAT后面偷看时

对等连接,当一个人在NAT后面偷看时
EN

Stack Overflow用户
提问于 2014-09-18 08:48:45
回答 1查看 855关注 0票数 1

好的,我需要我的应用程序在C++上建立点对点的UDP连接.我考虑过打孔和UPNP(使用端口映射)。打洞似乎有点麻烦:你需要服务器,大量的垃圾UDP数据包。我实际上是不想搅乱服务器,所以我选择了UPNP。我已经建立了小型http://miniupnp.free.fr/库,并且很高兴地在家里使用它。但是当我在另一个网络上试用我的应用程序时,我得到了非常令人沮丧的结果:

  1. 只有1(我的)路由器做我需要的一切(本地和外部ip,端口映射)
  2. 3路由器只显示本地ip,可能(我还没有测试)做端口映射
  3. 1路由器支持upnp,但miniupnpc无法找到设备。
  4. 1路由器不支持upnp (用upnp开发工具进行测试)

所以,我有两个问题:

  1. UPNP不是很常见吗,还是我只是运气不好,还是使用了miniupnpc?
  2. 是否还有其他方法来建立不需要外部服务器的点对点UDP连接?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-18 09:25:28

  1. UPNP不是很常见吗,还是我只是运气不好,还是使用了miniupnpc?

您不能信任随机路由器来支持UPnP IGD端口映射,而且您也绝对不能信任要启用的特性。

是否还有其他方法来建立不需要外部服务器的点对点UDP连接?

严格地说,在典型的家庭网络中打孔并不需要第三方服务器,但您确实需要一种方式让端点了解对方的外部IP地址和端口:在这一点上,两台机器都可以开始相互发送消息:第一条消息确实将被丢弃,但是当路由器看到内部IP已经向外国IP发送了数据包时,它也将允许传入通信量(因为路由器将它们视为来自内部IP的数据包的响应,尽管它们并不是真正的)。

有关这一领域的标准,请参见

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25908144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档