关于NAT和防火墙穿越的一些思考

由于最近项目需要工程化,因此看了许多关于NAT和防火墙穿越的资料,整体来说,完全意义上的防火墙穿越是不可能的,即在所有的状态下都能做到防火墙穿越是不可能的,最典型的就是Symmetric模式下基本不能实现(如果防火墙不做出改变的话)。
 
就一般的情形而言,穿越NAT和防火墙都需要架设一个第三方服务器,不管是STUN协议还是TURN协议,这一点很不好。因为项目一直在做的都是纯p2p的研究,我个人的想法或者说理想也是把这个软件做成一个纯p2p的,但是需要第三方的服务器的话就不太好了,我想研究过p2p的都知道。
 
因此我一直很为这个项目实用化的问题苦恼,具体的来说就是为防火墙穿越的问题苦恼。相比较之下,skype就要好的多,我想作者在最初做开发的时候就充分考虑到了工程化实用化的问题,并且把这些工程化的需求放到了系统整体设计里来考虑;其实我的意思就是说,作者考虑到要做NAT和防火墙穿越,就在最开始设计系统架构的时候考虑采用两层的Overlay,引入了超级节点,从而很好或者说和软件结合的很好的解决了NAT和防火墙的问题。
 
对于现在的项目我想能不能这样,纯p2p嘛,所有的节点功能都一样,那么我是不是可以考虑所有的节点先做NAT检测,如果位于内网那么就不做STUN服务器,如果位于外网那么默认成为STUN服务器,这样就很好的把问题解决了。

© 2007, dolf. All rights reserved.

October 7th, 2007
Home > Work > 关于NAT和防火墙穿越的一些思考

Random Posts

Comments ( 0 )
  1. No comments yet.
Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
本WordPress博客由爱写字提供技术支持