关于P2P通信中双方位于同一个NAT之后的情况的疑问

sct 长沙思远科技 开发组长/高级工程师/技术专家  2005-08-27 09:50:57
shootingstars(有容乃大,无欲则刚)在 《P2P 之 UDP穿透NAT的原理与实现(附源代码)》中提到:

如果两个客户端运行在一个NAT后,本程序很可能不能运行正常,
这取决于你的NAT是否支持loopback translation,
详见http://midcom-p2p.sourceforge.net/draft-ford-midcom-p2p-01.txt,
当然,此问题可以通过双方先尝试连接对方的内网IP来解决。

当NAT不支持loopback translation的时候,该怎么解决呢?

尝试连接对方的内网IP的方法应该只能用于一层NAT的情况吧?
如果是下面这种情况

Server
|
NAT c
|
| |
NAT a NAT b
| |
A B
A如果尝试连接B的内网IP,可能就会连到与A同处NAT a之后的D去了,是这样吧?

当NAT不支持loopback translation的时候,该怎么解决呢?

请大家指点,多谢!
...全文
343 点赞 收藏 13
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
skfox 2005-11-02
mark一下
回复
luxingjyp 2005-11-01
再顶
回复
sct 2005-10-12
探索
回复
sct 2005-09-03
应该是有什么办法才是的?
回复
gohappy_1999 2005-09-03
不懂,帮你顶
回复
zhxk 2005-09-03
你这种情况啊,要具体问题具体分析喽,办法是有滴.
哥们儿,你的情况太特殊了吧,所以你的软件要得到更多的信息,才能更好的解决这个问题哦.
理想的情况:已知NATc分配给NATa,与NATB的IP
你先Ping通对方NAT(你会知道这一步可以增大通用性滴,"Ping通"不一定指得到对方响应哦)
然后你就在两边向对方的NAT发起随机端口扫描,注意对方可能的端口范围.
为了不至于让网络充满你的测试包
你要确定一个一次测试的最大次数,
可以计算一下这个数,让它使命中率达到95%就可以了
---------------------------------------------------------------------------------
弱弱的猜一下,你一定是在做UDP的P2P,哈哈
回复
crystal_heart 2005-08-31
Internet
|
|NATx |NATy |NATz
---------ISP----------
|NATa |NATb
---------USER---------
| |
U1 U2

天威的网络是这样的。
回复
softrain 2005-08-30
有的P2P实现会附带的告之对方的内网IP和内网端口,判断公网IP一样,说明在一个NAT,然后连内网地址和端口就可以了。
回复
sct 2005-08-29
应该是有方法的吧,
或者我们网络中的NAT大多都是支持loopback translation的?
要不然我们局域网里的用户用QQ互传文件就都得由服务器转了,不太可能
回复
super852 2005-08-28
我和楼主遇到了同样的问题。
如果是文本消息的话,就由服务器转发吧。
回复
fisker0303 2005-08-27
NAT
|
| |
A B
这是A、B同一lan下的情况,A、B向server打洞后,A、B发现得到的对方ip和自己是一样的。
楼主所说的情况,NATa和NATb的ip不可能相同哦,A和B不是在同一lan下滴。

还有,就是P2P并不是100%成功的。
PS:弱弱的问一下,这种网络模式真的存在吗?
回复
sct 2005-08-27
To fisker0303(天塌了,地陷了,小花狗不见了.) :



Server
|
NAT c
|
| |
NAT a NAT b
| |
A B


A、B是在同一NAT(NAT c)下啊
它们将从Server获知对方的IP都是C的公网IP啊
(下面的资料就有这么一个情况
Peer-to-Peer (P2P) communication across middleboxes(翻译4)
http://www.p2psky.com/Article/2004-12-17/791103254615.html

回复
mynamelj 2005-08-27
这种问题应该有解决的办法,就象QQ一个样在一个NAT下的电脑挂好几个QQ照样可以相互通讯.
回复
相关推荐
发帖
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
帖子事件
创建了帖子
2005-08-27 09:50
社区公告
暂无公告