您的位置:首页 > 理论基础 > 计算机网络

第一计 瞒天过海

2006-03-28 13:06 197 查看
“备周则意怠,常见则不疑。阴在阳之内,不在阳之对。太阳,太阴。”
备周则意怠,常见则不疑:说的是,准备过于周详,则精神上就容易懈怠;经常看见的东西就不容易引起怀疑。
阴在阳之内,不在阳之对:太极图,就是一黑一白两条鱼,表示的就是阴阳,故,又名:阴阳鱼,表示阴阳的相生相长情况。阴阳相抱,阴消则阳长,反之亦然。仔细观察,你会发现,黑鱼的眼睛是白色的,白鱼的眼睛是黑色的。这就是说明:“阴在阳之内,不在阳之对”。阴中有阳,阳中有阴。这是古代人的世界观和哲学。
太阳,太阴:这是表示阳盛极或阴盛极的状态。准备周详,相当于阳盛到极点,或阴盛到极点,物极必返。
公元589年,隋朝将大举攻打陈国。这陈国乃是公元557年陈霸先称帝建国,定国号为陈,建都城于建康,也就是今天的南京。战前,隋朝将领贺若弼因奉命统领江防,经常组织沿江守备部队调防。每次调防都命令部队于历阳(也就是今天安徽省和县一带地方)集中。还特令三军集中时,必须大列旗帜,遍支警帐,张扬声势,以迷惑陈国。果真陈国难辨虚实,起初以为大军将至,尽发国中士卒兵马,准备迎敌面战。可是不久,又发现是隋军守备人马调防,并非出击,陈便撤回集结的迎战部队。如此五次三番,隋军调防频繁,蛛丝马迹一点不露,陈国竟然也司空见惯,戒备松懈。直到隋将贺若弼大军渡江而来,陈国居然未有觉察。隋军如同天兵压顶,令陈兵猝不及防,遂一举拔取陈国的南徐州(今天的讲苏省镇江市一带)。

在软件系统中,有这样一种需求:一个网络程序,要求能访问外网,要网络联通的前提下,任何情况下都能使用。但很多企业,有防火墙,对内外网的访问限制非常严格,这时,我们的网络程序,因为使用到自己的端口,很可能就在防火墙的限制规则之中,导致程序不能使用。那么,如何解决这个问题呢?防火墙上最通用的规则就是对Web的访问,即HTTP协议,限制是宽松的,允许HTTP协议的访问,也允许大部分HTTP中的Context-type数据访问。Web服务大部分驻留在80端口上,所以,向80端口请求HTTP协议,基本能通过99%的防火墙。所以,如果我们的服务器也监听在公网上的80端口,使用HTTP协议通讯,就可以创建一条信道。把我们的数据封装好,在这条信道上传输,就可以骗过防火墙,达到瞒天过海的效果。
这个思想的主要观点是:尽量使用现有的结构、协议、信道,扩展新的功能和应用。
再比如:我们做过一个网管系统,使用SNMP协议作为外部协议。接收SNMP的Trap和Inform作为数据源,驱动服务器运行。后来,系统要求能使用集群,这就涉及到一些配置数据的同步问题。一台机器接收到了新的配置,需要把这种配置同步到其它的系统中去,否则,用户下次登录,登录到其它的机器上的时候,会丢失上去的配置(每个服务器都连接不同的数据库)。于是,我就想到,我们系统使用SNMP协议作为外部协议,服务器收到SNMP Trap或Inform后,会读取配置,按该条消息的配置进行处理。那么,同步的消息简单地使用SNMP trap发送到其它的服务器上,在服务器上配置这些同步的Trap,使用之调用新的回调程序或函数,不就简单地实现了新性能?事实上,这种方法就是最简洁的办法。
因为我们系统就使用SNMP为主要协议,所以,在刚开始研究这个需求实现的时候,就没有想到使用SNMP,这就是“备周则意怠”。简单地使用原来的协议,即可以瞒天过海。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息