日期:2014-05-17  浏览次数:21137 次

[讨论]QQ实现了Symmetric NAT穿透吗?
NAT穿透研究了几天,发现都是建立在Cone NAT的基础上的,而我公司的网络正好是Symmetric NAT,当然这个我事先是不知道的,多方测试下来发现正好符合Symmetric NAT的特征。现在我穿透Cone NAT没问题,但是Symmetric NAT完全没辙,于是想研究下QQ,看它实现了没有。

  首先查看本机端口,发现QQ开了12个本地UDP监听端口,虽然没有聊天,没有任何动作,但12个端口一直在监听,不知为何。
  然后我朝外部发送文件,发现QQ增加了一个TCP监听端口,我想:是不是它用TCP传输文件呢?
  接着外部接收文件,发现短暂的服务器连接信号后,那个TCP监听端口消失了,再也看不到任何连接了,但是文件仍然继续传输,UDP监听也没有增加。我想:大概那短暂的服务器连接信号中,发现我这里无法建立TCP连接了,改用UDP,而UDP是看不到连接的。
  最后我查看防火墙端口实时使用情况,发现我的文件并没有直接传给了对方IP,而是先传到了老远的陕西服务器,大于文件字节数的UDP数据都发往那里了,而对方IP只收到了少量的UDP数据。我想:是不是那少量数据是尝试点对点传输用的,实际发现不行就传往腾讯的服务器中转了。

  不过这些都是基于现象的假设,因为传输速度实在太快了,很难想象不是点对点就可以达到的速度,当然UDP传输本身也是速度快的一个因素。

  有什么想法也可以谈,但请不要拿外面的文章直接复制进来,基础文章我都看过,不缺那些。如果可以找到Symmetric NAT之间穿透的文章,到可以介绍下。不过我估计Symmetric NAT只能是使用预测法来穿透了,就像BitComet那样,疯狂尝试连接,消耗我本地资源,我想禁用它那个功能都不行。

------解决方案--------------------
MARK
------解决方案--------------------
技术帖...
mark先~
------解决方案--------------------
关注,缺乏这方面知识
------解决方案--------------------
顶一下,谢谢楼主在我提问的回答
------解决方案--------------------
LZ和我想的一样