免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3820 | 回复: 4
打印 上一主题 下一主题

[C++] UDP打洞迷惑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-21 22:31 |只看该作者 |倒序浏览
假如服务器和客户端都放在内网不同网段中:服务器ip(192.168.1.10)客户端A(192.168.2.10)和B(192.168.3.10)则能实现。
假如服务器放在公网并且客户端在内网段中:服务起ip(1201.13.116.123)客户端A(192.168.2.10)和B(192.168.3.10)则不能实现。
本人菜鸟,望路过的大神能指点迷津,将不胜感激。

论坛徽章:
3
寅虎
日期:2013-11-27 07:53:29申猴
日期:2014-09-12 09:24:152015年迎新春徽章
日期:2015-03-04 09:48:31
2 [报告]
发表于 2013-12-22 09:10 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2013-12-22 15:58 |只看该作者
通过网关的A和B,相互不知道他们的外网地址和端口的,因此无法连接。

如果有一个服务器S打开了一个端口,那么A和B都连接到S上。
这样,S就知道了A和B的地址和端口, 相互通知一下, 他们就可以连上了。

论坛徽章:
44
15-16赛季CBA联赛之浙江
日期:2021-10-11 02:03:59程序设计版块每日发帖之星
日期:2016-07-02 06:20:0015-16赛季CBA联赛之新疆
日期:2016-04-25 10:55:452016科比退役纪念章
日期:2016-04-23 00:51:2315-16赛季CBA联赛之山东
日期:2016-04-17 12:00:2815-16赛季CBA联赛之福建
日期:2016-04-12 15:21:2915-16赛季CBA联赛之辽宁
日期:2016-03-24 21:38:2715-16赛季CBA联赛之福建
日期:2016-03-18 12:13:4015-16赛季CBA联赛之佛山
日期:2016-02-05 00:55:2015-16赛季CBA联赛之佛山
日期:2016-02-04 21:11:3615-16赛季CBA联赛之天津
日期:2016-11-02 00:33:1215-16赛季CBA联赛之浙江
日期:2017-01-13 01:31:49
4 [报告]
发表于 2013-12-23 00:46 |只看该作者
本帖最后由 windoze 于 2013-12-23 00:47 编辑

回复 3# gtkmm

这样可行的前提是两边的NAT网关对UDP做了放宽处理,绝大多数家用路由器之类的设备都是如此,但很多商用的NAT网关/防火墙不行。

1.电脑A连接至外网服务器,通过A所在内网的NAT网关分配了公网地址和映射的端口号
2.外网服务器记录下这个电脑A的公网端点(IP+端口)
3.电脑B也连接至外网服务器,通过B所在内网的NAT网关分配了公网地址和映射的端口号
4.外网服务器也记录下这个电脑B的公网端点(IP+端口)
5.电脑A向服务器请求电脑B的公网端点
6.电脑A继续使用刚才建立好的UDP端口映射向B的公网端点发起会话请求
最后这一步很关键,我们这里之所以要使用UDP而不是TCP,是因为NAT网关上,对于TCP连接,会记录双方的信息,具体说就是电脑A的内网IP+端口号,以及对端的公网IP和端口号。接下来在这个连接上,每一个数据包的两个端点必须和之前的连接记录匹配,否则包就会被丢弃。也就是说,内网的电脑A是无法使用这个映射的端口和除最初建立连接的公网端点之外的任何一方通信。
对于UDP,一般家用网关的处理方式有所放宽,并不检查外网对端的信息,但是这并不代表它不能检查,绝大多数商用NAT网关设备的缺省设置就是要进行严格检查的,此时UDP打洞就不转了。

论坛徽章:
0
5 [报告]
发表于 2013-12-24 21:06 |只看该作者
楼上的回答很详细了,其实我做的时候也是按着这样的步骤来的,没打也许是路由做了设置。感谢楼上各位的回复!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP