如何穿越对称型NAT实现P2P通讯?(200分)

  • 主题发起人 主题发起人 darnis
  • 开始时间 开始时间
D

darnis

Unregistered / Unconfirmed
GUEST, unregistred user!
对于非对称型NAT的P2P通讯,在网上有很多现成的理论甚至代码,
但是对于对称型NAT的P2P通讯,难道就只有通过服务器中转吗?

感觉QQ应该不是通过服务器中转的,那它又是如何实现的呢?

有处理过类似问题的兄弟没有啊?恳请指点迷津。
 
决定就用服务器中转了。
 
没人要分,怎么结题啊?
 
我来说一句,
QQ我的想法的原理是:
由中转服务器得到连接客户的端的IP地址和映射端口。
然后两个客户端分别通过这些信息给对方发包,这就是打洞
 
关注一下
我也正在开发这方面的程序
 
天真:
打洞对于非对称型NAT就是CONE NAT 是有效的,
对于对称型NAT,打不了洞,因为它会为你的每一个通讯过程,不同的IP+PORT,建立一个新的Session,这时虽然你自己BIND的IP和端口没有变,,但是经过NAT与另一个主机通讯时,已经和与P2P Server 通讯时的 IP+Port 不同了,
需要通讯的对方是不知道你当前变化后的这个 Session 的Port 的。
 
所以才需要双方向对方发信息就是这个意思。
 
to 天真
楼主的意思是每次发送信息的时候,发送Nat分配出来的端口都是不同的,所以按照Cone Nat的穿透方法来穿透对称型Nat根本是不行的。

对于这种类型的Nat还真的是没有好的办法来实现直接的点对点哦,不过这种类型的Nat应该不常用吧。
 
如果真是这样,QQ里面也只能中转了,中转就不能直接点对点了。
 
呵,,,是的..
我们现在的网络,,估计是被网管给配置成对称型(防火墙设置)的了,,很烦.

不过也好..因为这是个必须面对的问题,,虽然对称型的很少..但是肯定存在..
 
现在qq也是中转的,无非不显示通过服务器中转而已。
---
www.kicoy.com
 
现在新款的宽带路由器都支持upnp,
可以软件配置端口映射,相当于在网关打了一个永久的"洞"
msn就能在windows的网关服务器或者路由器上自动配置端口映射.
另外,p2p软件"电骡"也支持upnp功能.
 
to ufo!
有没有关于 upnp 的中文技术资料啊?刚在网上找了EN文的资料,,
看起来有点耗时间..中文的省力些..
呵.
 
to magicgod
www.kicoy.com 的代码不错啊。
 
magicgod
在svn下载代码的时候,我的电脑报告说 pasdoc.exe被病毒感染了,请看看是不是中毒了吧。
 
多人接受答案了。
 
后退
顶部