中国开发网: 论坛: 程序员情感CBD: 贴子 91302
Water-E
VNN好象就实现你要的功能了,不过不知道安全性怎么样?
VNN与SoftEther的比较
浏览VNN早期网站和使用VNN的用户很容易想到了一个类似的日本软件softether,于是我们作了一番比较。


--------------------------------------------------------------------------------

数据封装

SoftEther使用ssl/tcp进行数据封装,需要一个hub进行中转,而实际情况是,最大的麻烦在于,找不到这个hub。而且,没有一个稳定的hub可用。此外,麻烦还在于,如果大家都用一个hub,那么带宽如何可想而知。而如果2个不熟悉的人之间,他们如何协商一个hub?
VNN使用udp进行数据封装,封装上比ssl/tcp封装效率要高(ip in udp肯定是要比ip in tcp高),但是同时也有一个缺点,就是在某些封闭了udp端口的环境中没办法用了。因为vnn考虑的并非是突破firewall,更优先考虑的是点到点之间的互联,所以vnn使用了udp。
VNN使用的是与SoftEther完全不同的封装技术,也是针对不同的设计目标。


--------------------------------------------------------------------------------

数据转发

VNN的数据通讯的时候,在绝大多数情况下,不会通过服务器转发,目前我们测试的环境只有一种情况下会遇到这种情况,就是两边都是cisoc的pix,而且两边的用户都很多。因此,你可以想象,vnn提供的两个nat后面的主机之间的点到点直连。
softether是大家都去hub上中转。所以vnn的速度要比softether快得多。而且不存在寻找一个hub的问题,当然也不会有大家都用一个hub,最后非常慢的情况发生。大家可以实际测试一下速度,以确认vnn提供的速度几乎是线路速度。
VNN提供的端到端的直连,而SoftEther完全依赖于转发。


--------------------------------------------------------------------------------

架设服务器

VNN代码不公开,因此用户无法轻易架设自己VNN服务器。但是VNN对于个人用户将一直免费。对于要求服务器软件的用户,如果你的确需要架设专用VNN服务器,VNN完全提供,但是需要提醒大多数用户的是,服务器软件较难配置,而且需要2个以上的public staic ip,如果你是个人或者小型企业用户,已经有了如此多的ip,那么实在很难理解你还有什么理由需要使用softether和vnn。
因此,对于需要服务器软件的普通和小型用户,你可以想象一下,如果你拿到msn/qq的服务器软件,你有什么用处吗?架设自己的服务器?但是那只限于几个好朋友之间的聊天,失去了广泛意义了,为什么不直接使用msn/qq呢?
VNN完全支持架设专用服务器,但鼓励大家利用VNN提供的服务器并在的确需要架设专用服务器前进行充分评估。


--------------------------------------------------------------------------------

其它

VNN还有一个好处是集成了DNS,也就是说,不管另一方在哪里,都可以通过dns访问,例如ftp wang.user.vnn.cn,或者\\wang.user.vnn.cn,有了dns,你可以很方便的配置你得应用。你甚至可以申请一个music.user.vnn.cn,给大家提供下载服务,尽管你在一个nat后面。


--------------------------------------------------------------------------------

小结

SoftEther是需要找一个hub,需要转发,而且不是全局的。VNN最大的特点是,应用透明的,双nat环境下的直连。
所以softether的特点在于使用ssl/tcp进行封装,而vnn的最大特点在于nat直连。
如果将vnn类比成一个qq/msn,我们知道qq/msn不管你是不是在nat后面,你都可以聊天(当然他们是用服务器转发聊天内容)。
实际上vnn不仅仅是对聊天,vnn是和所有应用无关的,所以你可以做任何事情。
而且,因为VNN使用了很好的nat穿越的技术,所以你无需考虑转发带宽的问题(想想通过msn传文件是不是常常痛苦不堪?通过QQ更是需要成为会员。)
换言之,softether是一个小范围的解决方案,qq/msn等不能应用透明,而且nat穿越做得也不够好。
VNN考虑的是一个大范围的解决方案,是个平台,例如几十万人的p2p网络。用户可以把它看成一个应用透明的更好的qq/msn,也可以看成一个更好的softether。


--------------------------------------------------------------------------------

一点多余的话

实际上,VNN并没有借用SoftEther的任何概念,我们在2003年下半年才第一次知道SoftEther——都不懂日语。那个站点没有e文网页。VNN的开发者有很长时间的IPSec开发经验,vlan card的概念很早就在ipsec的实施中使用了。事实上,vnn是从做一个更好的vpn的理念出发而逐渐形成的(一开始我们自己也不知道要做一个什么,最后是一个什么样子),因为实施ipsec的情况下,同样要遇到nat的问题,而那些在中国(IP地址缺乏)做语音视频、文件传输,所有p2p应用的,都会遇到nat的问题,所以从2002年夏天,我们就开始研究nat的问题,在阅读了网上可以找到的几乎所有相关文章之后,从2002年底开始进行详细设计。大部分nat的解决方案用转发,这很显然很不愉快。我们常常遇到这样的情况:某人和好朋友都是高速internet接入,但是因为都处于nat后面,结果他们没办法用视频和语音(那时候msn还是4.7,后来msn6.0可以转发,但是速度很慢)。开发者中,有些人需要和女友聊天,有些人需要和mm打游戏,有些人需要快速的共享xxx.rm,最倒霉的一个人某天需要remote desktop女友的桌面,因为她的机器配置有问题。这些事情很显然非常令人不愉快,因此我们就开始寻找解决之道,当时的目标是:
1、应用必须透明,不能有限支持某些应用,因为你永远不会想到你明天会需要什么;
2、必须直传而不是转发;
3、必须用id号,而不是ip,而且必须集成dns,必须和现有的应用软件很好的兼容,最起码可以ping a.user.vnn.cn,或者ftp a.user.vnn.cn或者http a.user.vnn.cn;
4、配置需要尽可能的简单,复杂度不应该超过msn/qq;
5、VNN象是在防火墙/nat中开了一个口子,所以vnn本身必须有不错的firewall和加密,提供必须的安全保证。
现在看来,VNN 0.x把目标1和2实现了,VNN 1.x把目标1、2、3、4实现了,而VNN 2.0则已经把这5个目标都实现了。
我们有时候用一个很简单的局域网聊天工具进行聊天和传输文件,或者用flashget下载巨大的xxx.rm,或者远程桌面上去调整配置,调试代码。这件事情带给我们的最大的后果是:从此很少担心nat的问题,和那些在公司高速接入internet但是却通过nat上网的朋友愉快地交换影碟(通常\\a.user.vnn.cn,然后直接点击那个rm,然后远程观看);另一个一个后果就是,即使是在公司,通过2个nat上网,依然必须小心翼翼的配置os的登陆口令,以前没有人可以访问我们的私人机器,现在完全不同了,必须设置很长的口令才行。
嘿嘿

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录