一团糊涂

笔记本

首页 CNDEV 网志 联络 (RSS 2.0) (Atom) 登录
  随笔 18 :: 收藏 0 :: 评论 0 :: 寻迹: 0

News

开张了

今日天气


QQ:5311133
mail:bigshrimp@playicq.com

随笔

随笔归档

图库

delphi相关

友情链接

2005-04-12 #

 为了配合改革开放的步伐,以及尽快使生活进入小康,老张决定自力更生,开一个养猪场。刚开始的时候老张买了15头猪,只有一个猪圈,老张每天都亲自拿着簸箕到圈里喂猪,后来老张又相继买了20头猪,这样老张每天就要拿很多的猪饲料到猪圈里去,很是麻烦。为了解决这一个问题,老张决定实现养猪网络化,他自己组建了一个以太网(Ethernet)饲料槽,并把网络引到了离家很近的地方,这样每天只需要把猪饲料分成一份一份打包倒到以太网槽里,猪们就可以自己去吃了。
 
     老张的猪越长越胖,这时候就出现了一些问题。以太网是基于CSMA/CD(载波侦听多路访问/冲突检测)技术的,饲料倒到槽里,猪们都争着去吃,场面显得非常拥挤,按老张的话说,那叫"介质争用"。为了解决介质争用的问题,老张自主研发了集线器和交换机,并在猪圈中使用了分段技术,把猪分成一堆一堆,给它们起名字,称为MAC地址。通常是食量大的猪用集线器集合成一堆,食量小的猪分成一堆,然后它们通过集线器后再上接到交换机,最后通过交换机连接到老张家里。这样做就很好地解决了介质争用的问题,以太网交换机的每个端口可以提供专用带宽,保证了各种不同的猪都可以吃饱。
  
     老张的生意开始好起来,他又投资开了另外一个猪圈。爱因斯坦说,在解决问题时,我们不可能使用产生问题时的相同想法。老张为了避免再次发生以太网带来的问题,在第二个猪圈里布置了另外一种方案--令牌环网(Token Ring)饲料槽方案。这种组网方式采用的是冲突避免机制,猪们之间传递一个令牌,谁拿到令牌,谁就可以去吃饲料,这样就不会象以太网那样争先恐后的场面出现。
 
      很快老张又开了第三个猪圈,令牌环网也存在一定的问题,比如,令牌是公平传递的,这样可能当中会有些猪很饿,但它们还没拿到令牌,只能够等待,而那些拿到令牌的猪又很可能是不饿的,但它们不能立刻交出令牌,因为规定了传递令牌的时间限制。于是老张在第三个猪圈中对令牌环进行了改良,首先他使用了更高传输速率的网槽,其次使用两个令牌环,两个令牌环传递令牌的方向是相反的,叫"逆向旋转",两个令牌环一个是主环一个是从环,主环传输,从环备份。老张给这种组网方式起了个名字叫FDDI(光纤分布式数据接口)。
 
     除了喂饲料,猪圈之间有时也需要一些交流,为了体现对猪们的关心,老张还在猪圈之间架设了转换网桥。这样,不同网络结构之间的猪GG和猪MM们就可以经常通信了。
  
    老张的生意越做越火暴,这时候又出现了新的问题。第一个就是猪多了,网槽却很窄,这种窄带的传输方法已经显得越来越吃力。第二就是猪圈大了什么猪都有,龙蛇混杂,猪们当中产生了很多广播的问题。
 
     比如猪圈里有只叫比尔该死的,特别聪明,经常向其他笨猪宣讲宽带接入的知识,猪们的意见很大。在猪圈里,支持改造猪圈环境的声音越来越大。
  
    为了体现老张的民主,以及反映新中国纯情少猪的当家作主,老张决定对网络来一次全面的改革。
  
    首先是广播问题,老张冥思苦想之下,终于发明了路由器,使用第三层的交换技术,可以把局域网隔离,每头猪只能收到自己所在局域网内的广播信息。
 
     这样大家的广播信息就不会混在一起了。老张为每头猪都指定了一个IP地址,路由器根据IP地址进行转发。另外老张还使用了分级设计的方法,大大提高了传输效率。每天老张只需要用IP地址和MAC地址将饲料打包,传到路由器上,然后路由器自动向猪们发出一个ARP(地址解析协议)请求,看看这份饲料是属于哪一头猪的,再把饲料包发送给它,这样做大大完善了网络的功能。同时老张还想到了一种叫PPPOE(以太网承载点对点协议)的认证,如果哪头猪饿了,只需要通过输入帐号和密码上网,就可以发出请求以便老张识别它们,分别给他们喂饲料。
 
     然后要解决的是带宽的问题,老张把光饲料槽拉到了猪圈,叫FTTH(光纤到"猪圈"[大楼])。这一点很容易实现,而难题就在于所谓的"最后一公里"问题,由于猪圈里环境复杂,无法进行光饲料槽的布线。于是老张又想了个办法,那就是对原有的网络进行改造,同时预见到猪的要求会越来越高 ,有些猪可能不但要吃饲料,还要喝可口可乐等的高级传输要求,老张使用了一种新的技术--ATM(异步传输模式)交换,这种交换可以把猪饲料分成更细的信元,在原有网络上进行传输,并且通过一个叫BAS(宽带接入服务器)的东西可以把ATM网络和老张的宽带主干网连接起来。ATM还提供面向连接,提供多业务,又因为ATM宽带接入的上下行速率是不对称的,上行只有640kbps而下行达到8Mbps,猪们管它叫ADSL(非对称用户线路)。
  
     又过了一些时间,ATM网也显现了一些缺点,比如说ATM交换机比较昂贵,同时基于ATM网的ADSL需要在接入层使用BAS转换,形成瓶颈,且BAS设备也价值不菲的原因,令到网络的可缩放性始终得不到提高。于是老张研制了基于以太网上行接口的IP DSLAM(DSLAM是二层的宽带接入设备),把ATM信元转换成IP包的工作放到了二层,这样就不需要再使用昂贵的BAS了。虽然宽带走到这一步几乎是十分完善了,但老张的前进步伐还是没有停下来,他还建造了VDSL(对称用户线路),实现了对称的上下行速率,实现了猪们的互动网络需求。再后来老张的猪出口海内外,在全国设立分公司,为了适应远程办公,老张又开发了VPN(虚拟私人网络),包括PPTP(点到点隧道)、L2TP(二层网络隧道)和GRE(普通路由封装)三层隧道协议等等。
 
     后记:那只叫比尔该死的猪被卖到美国后成立了一间微软猪头公司,专门做起了软件
发表于 @ 14:05 | 评论与反馈 (1)

2005-01-06 #

??????? 深夜,寺里一人一佛,佛坐人站。

  人:圣明的佛,我是一个已婚之人,我现在狂热地爱上了另一个女人,我真的不知道该怎么办。   

  佛:你能确写你现在爱上的这个女人就是你生命里唯一的最后一个女人吗?   

  人:是的。   

  佛:你离婚,然后娶她。   

  人:可是我现在的爱人温柔,善良,贤惠,我这样做是否有一点残忍,有一点不道德。   

  佛:在婚姻中没有爱才是残忍和不道德的,你现在爱上了别人已不爱她了,你这样做是正确的。   

  人:可是我爱人很爱我,真的很爱我。   

  佛:那她就是幸福的。   

  人:我要与她离婚后另娶她人,她应该是很痛苦的又怎么会是幸福的呢?

  佛:在婚姻里她还拥有她对你的爱,而你在婚姻中已失去对她的爱,因为你爱上了别人,正谓拥有的就是幸福的,失去的才是痛苦的,所以痛苦的人是你。   

  人:可是我要和她离婚后另娶她人,应该是她失去了我,她应该才是痛苦的。   

  佛:你错了,你只是她婚姻中真爱的一个具体,当你这个具体不存在的时候,她的真爱会延续到另一个具体,因为她在婚姻中的真爱从没有失去过。所以她才是幸福的而你才是痛苦的。   

  人:她说过今生只爱我一个,她不会爱上别人的。   

  佛:这样的话你也说过吗?   

  人:我… 

  佛:你现在看你面前香炉里的三根蜡烛,那根最亮。   

  人:我真的不知道,好像都是一样的亮。   

  佛:这三根蜡烛就好比是三个女人,其中一根就是你现在所爱的那个女人,芸芸众生,女人何止千百万万,你连这三根蜡烛那根最亮都不知道,都不能把你现在爱的人找出来,你为什么又能确定你现在爱的这个女人就是你生命里唯一的最后一个女人呢?   

  人:我…    

  佛:你现在拿一根蜡烛放在你的眼前,用心看看那根最亮   

  人:当然是眼前的这根最亮。   

  佛:你现在把它放回原处,再看看那根最亮   

  人:我真的还是看不出那根最亮。   

  佛:其实你刚拿的那根蜡烛就是好比是你现在爱的那个最后的女人,所谓爱由心生,当你感觉你爱她时,你用心去看就觉的它最亮,当你把它放回原处,你却找不到最亮的一点感觉,你这种所谓的最后的唯一的爱只是镜花水月,到头来终究是一场空。   

  人:哦,我懂了,你并不是要我与我的爱人离婚,你是在点化我,   

  佛:看破不说破,你去吧   

  人:我现在真的知道我爱的是谁了,她就是我现在的爱人。   

  佛:阿弥陀佛,阿弥陀佛。
发表于 @ 16:48 | 评论与反馈 (0)

哲学家说:有什么样的世界观,就有什么样的方法论!

  辩论家说:立场决定观点!

  世界之所以有技术思想和观点之间的争论,完全与瞎子摸象的场景一样。真理只有一个,但是却很博大精深,没有一个人能看得到她的全部。每个追求真理的人都能感觉到她的存在,因为毕竟可以触摸到她的一部分。于是,人们会发现自己摸到的部分是实实在在的,自然与其他人不同,争论难免。真理就像一个极限,我们永远只能接近她,而不可能拥有她。软件思想的发展也是一个不断接近真理的过程。

  刚开始有计算机程序的时候都是“面向算法”的,人们为了充分发挥有限的硬件资源而设计出各种经典的算法,“计算机”就是用来计算的机器。但随着硬件能力的提升与程序的复杂度增加,人们发现复杂的代码难于阅读和维护。于是,程序“结构化”的思想开始发展和成熟。“把大问题分解成小问题来解决”是人类思维的习惯。冗长的代码被分成若干的子过程,每个过程都便于理解,在此基础上也就理解了整个程序。

  其实,“面向算法”与“结构化程序”都是以代码为中心的世界观,还是站在“计算机”的立场上。而当人们开始提出“数据结构”思想的时候,才真正开始把思考转向要解决的问题本身!人们越来越清楚地认识到,用数据结构去描述问题领域的模型,才是解决问题的关键,代码只是为数据服务的。从此,以数据为中心的世界观开始逐渐形成。当然,“数据结构”是伴随“结构化程序”的思想而发展的,这种配合极大提升程序的效率,也提升了软件生产率。

   但这种思想还是将“数据”与“代码”分开来思考的。事实上,在“面向对象”思想成熟之前,有经验的程序员已经感觉到“数据”与“代码”应该是一体的。他们已经习惯将那些复杂的问题划分为若干相对独立的结构,围绕每个结构编写一堆服务该结构的子过程,而过程的第一个参数就是一个结构的指针,这个指针就是人们熟称的“句柄”,英文叫HANDLE。当“面向对象”的思想被提出的时候,我相信他们是最先理解这一思想的一群人。

  应该说“面向对象”的思想是第一次站在现实世界的立场上看问题,这种思想把人类思考问题的基本模式(如“分类”,“抽象”,“普遍性与特殊性”)应用到软件设计中。这种思想反映到编程上,就是将“数据”与“代码”统一成一个“对象”,“对象”成为实现软件的主要方法。软件思想发展到这时候有一点返璞归真的感觉:原来可以用这样简单的思维方式去考虑复杂的软件问题!

  然而,随着这种思想的深入应用,新的争论又开始,但所有的争论都已经是在新的高度。我想,在软件思想上,最迷茫的应该是“继承”与“组合”之争。

  由于人们太习惯“面向对象”的方法了,用基类来实现普遍需要的功能,派生子类来实现特殊性的东西。类的层次结构就像一棵美丽的圣诞树,真的很直观。甚至,许多编程语言为了构造这棵美丽的圣诞树而牺牲掉多重继承的特性。但问题是,一旦这样的继承结构被固定下来,就规定了系统的生长模式:只能长出新的枝叶!尽管,用类继承模式设计出来的系统具有良好的扩展性,不过这种扩展是单向的。当要想在根基上扩充点东西的时候,才发现可能会动摇整个大树!
有的程序员试图用多重继承来解决这一问题,但切不说许多语言不支持多重继承,如果真的能扩充一个基类,那么你将面临层次不同的分支点,应该把哪些枝丫切开呢?

  为此,一种称为“接口”的软件思想诞生了。“接口”思想提倡尊重对象的隐私,从来不去查一个对象的祖宗三代,只要你能做事就行。每一件能做的事情都被定义为一个“接口”,一个对象对外的能力就是由它的那些“接口”组成,至于它怎样做无关紧要。“接口”的编程思想就是站在“功能组合”的立场上看问题,而不是来自父类的“功能继承”。因此,对于“接口”思想来说,不管是基础功能的增加还是的扩展新功能,都是扩充一个接口而已,不再面对复杂的分支与层次结构。

  “继承”与“组合”仅仅是两种看问题的方式。如果你喜欢竖着看世界,你会发现世界是“继承”的。如果你喜欢横着看,你会发现世界是“组合”的。

  事实上,“面向方面”的思想就是横着看世界。“面向方面”是“面向对象”思想的延续,是对“接口”编程的一种理论总结。它把现实世界所有问题分解成需要解决的各个基本方面,即所谓的“横向关切点”。这些基本面的问题解决是相对独立的,而其组合起来就能解决全部问题。当发现个别问题还有需要进一步解决的问题,可以在个别的局部范围解决这个问题。而发现普遍要解决问题的时候,也可以给所有的对象增加另一个基本接口面而加以解决,但不会影响其他已经解决的各个方面。

  将来会不会有一种能够统一“继承”与“组合”的软件思想呢?我想肯定有!而且新的思想和理论肯定会很容易被人们理解,人们会发现世界原来如此,也本该如此!

  在此给大家探讨一个有趣的问题:

  继承的观点认为,所有自然数的祖先是1;然后,2和3是继承1的;但2和3是不同的;4具有2的特性,是从2继承的;5既没有2的特性也没有3的特性,是直接从1继承的;显然6继承了2和3的特性...

  组合的观点认为,任何自然数都含有1的成分,素数2、3、5、7是组成自然数的基本方面,其他的自然数都是由素数组合而成,所以称为合数。

  而大家都知道,任何自然数都可以因式分解为1与若干素数相乘。如果自然数B能被另一个自然数整A除,则表示B一定具有A的全部特征(继承思想),而构成A的质因子集合一定是构成B的质因子集合的子集(组合思想)。这是数论的最基本常识,从这里看问题是前面两种思想是统一的。

  值得注意的是,两种观点都承认1的重要性,而1就是几乎所有高级的面向对象语言中都存在的那个Object,不管你是否愿意它都存在。这就是Object存在的哲学依据!

  但愿将来一切软件思想都这么容易理解...

  今天是2005年上班的第一天,在开始新一年的程序人生之前,仅以此文献给和我一样的所有程序员。
发表于 @ 15:54 | 评论与反馈 (1)

2004-12-25 #

?

一:网络防毒技术。
虽然使用网络设备来进行病毒防护并不是今年的发明,很多国内的公司也一直在使用各种应用代理完成设备上文件的缓存,然后使用杀毒软件进行病毒扫描,其中典型的就是邮件防毒墙。但是使用代理缓存的问题是带来对用户的不透明性,需要等待一个在设备上保存文件,病毒扫描的延时,影响用户对网络的直观理解。但是随着Fortinet实时扫描技术在其产品中的应用,使网络防毒墙这一产品形态真正的走向了用户需求。集成状态防火墙功能,并对报文进行流还原,深度检查,从而在报文转发过程中对网络数据进行病毒扫描,实现病毒实时扫描。这样的产品解决了用户对各个终端不能有效监控的问题,至少对病毒的来源之一——网络进行了有效的封堵,是能解决用户实际问题的技术。

二:安全准入技术。
说白了就是接入控制,802.1X, PPPoE, 微软域控制,在家上网也要输入一个用户名密码,这种对网络用户接入网络进行控制的技术太多。但是在网络病毒泛滥(昨天刚装的Win2000没打补丁,插了一下网线试网络,立即就感染了病毒),攻击无处不在,简单的组合一下,在允许用户接入网络的之前,对用户的终端进行安全检查,判断是否符合安全策略,如有没有安装非法软件,有没有安装了响应的杀毒软件,是否是无病毒的“干净”终端,只有符合这写策略,才让你接入网络。这样又堵住了攻击和病毒的另一个来源,用户终端。另外,通过安全准入控制,不仅仅能够做到对用户终端的安全检查,而且通过和网络设备的互动,达到对用户的区分服务。比如,不同帐号的漫游范围,访问内容的控制。做的比较全的厂商有Sygate,而另一网络巨头CISCO的NAC概念提出,都是网络安全准入控制技术的实施典型。在不久的将来,ISP可以控制我们电脑安装的软件,可以控制我们访问的内容,可以定位我们的上网行为,最终IP网络会形成一个封闭的安全网络。而一群自由之士又会成为新网络的黑客,或者另外建一个全新的开放网络。

三:安全功能在网络设备集成。
简单的组合,带来的功效是巨大的。CISCO新一代路由器性能比原来高10倍,在提供网络数据转发功能的同时,直接集成防火墙,VPN等安全设备,形成ALL IN ONE的设备,对于用户来说,是非常及时的。因为芯片技术的进步和成本的降低是网络设备可以使用高性能芯片,而针对具体业务的ASIC芯片组合进网络设备,使今天的路由器,交换机的功能更加丰富。而对网络带来的好处就是一次处理,大大降低网络延时,为语音、视频应用扫清网络障碍。同时,随着网络设备商的集成设备的推出,哪些依赖于工控机等平台的单一设备制造商必须重新考虑自己的技术方向和产品形态,是一个比较大的挑战。但不管怎么说,对于用户来说,这是一件好事。

四:新一代NP技术。
用CPU,ASIC还是NP,一直是大家不断争论的一个问题,其实这个问题非常简单。在能达到同样性能的情况下,最优选CPU,然后是NP,然后是ASIC。目前很多厂商使用CPU+特定业务ASIC来实现高速处理,这是比较常见的方式。在性能不能解决的情况下,选择NP是不能不为之的做法。但是不管是IBM,还是Intel的NP,一个主要问题是开发成本太高,微码的开发难度和进度都不是普通公司能够短期搞定的。而带来的维护成本和对客户的响应速度都是很大的问题。不过今年CAVIUM推出的OCTEON NSP将会很大程度上改变当前的安全市场格局。直接支持C语言和标准协议栈,性能高达10G,是期望中的业务网关处理芯片。

五:内部网络网安全
长期以来,网络安全的范畴一直停留在网络外连的出口保护。通过状态防火墙阻止外部的非法访问。虽然现在有应用检测、深度检测、IPS等等概念,但是一直发挥重要作用的仍然是状态防火墙,保证外部网络不能直接访问内部主机。然而,不管是病毒还是蠕虫,来之内部泛滥比来之外部多得多。只要一个内网用户无意中下载一个从未出现过的病毒程序(基于特征的内容检测也好,杀毒墙也好,都不能阻止位置病毒文件)在内网运行,那么内部网络如同不设防的前线,立即崩溃。所以,内部网络的安全是当前必须解决问题。目前的IDS产品,安全审计产品可以对内部网络进行安全检查,但是不能防护来之内部网络的攻击。可喜的是,在今年有厂商开始在内部网络安全领域有所动作,如趋势的内部安全网关,在内部网络间起到安全防护的作用。CISCO的交换机插卡也是对内部交换网络的安全增强,通过在交换机上扩展安全插卡,可以把安全区域的概念从出口延伸到内部网络,形成更安全的分级保护。在可以预见的将来,内部网络安全产品将得到更多的发展,但是其形态可能不会以单独的产品出现,而是当前产品的替代产品。如安全交换机,安全路由器,安全接入服务器等等。

安全随着网络的发展而演进,因为IP网是一个开放、公平的网络,但是却要提供保证私有利益的服务,所以出现了各种安全的问题。一直以来,安全都是处于被动的防御阶段,虽然CISCO今年提出主动防御体系,但是其根本思想还是在堵,只不过堵的地方多了一些,从内网到接入,到各个终端,这也是没有把其作为安全技术亮点的原因,但足可以体现其市场概念引导的能力。随着3G的推出,IPV6的演进,网络安全将包含更多的领域,也会迎来更大的挑战。
发表于 @ 23:54 | 评论与反馈 (0)

如果你问Intel和AMD宣布的1GHz以上的PC处理器会用到哪里,那就让我告诉你最热的领域是
网络和通信。5年以来,网络的传输速度每年翻一番,再快的处理器都不愁没地方用。

由于有了光纤,传输媒介的速度已不成问题。但是,信息包(packet,在ATM中称为信元,即
cell) 通过路由器和交换机时,对包处理的最低要求是确定每一个包的下一个目的地,在庞
大的路由表中找到它的IP(Internet Protocol)地址,然后转发出去,而这一切必须在下一个
包到达之前做完。障碍就出现在这里。

为了应付日益繁忙的信息流,网络的速度在几年前是155Mb/s(SONET的OC-3标准),而现在
已经到10Gb/s(OC-192),2~3年内又会提高到40Gb/s(OC-768)。

当速度比较慢时,通用的处理器完全赶得上数据流,因此并不需要专门的网络处理器(netwo
rk processor)。后来,通用处理器不够快了,设计者就转向ASIC(专用集成电路)。

ASIC在完成规定的处理工作方面是非常卓越的,但它有两个缺点:一是开发的周期太长,复
杂的ASIC要18个月到2年时间。路由器或交换机要增加新的功能,制造商需要等待的时间太长
;第二,ASIC不是可编程的,要修改就必须经历一个设计和制造的周期,适应不了当今越来
越短的产品开发周期。

直到1999年,还很少有人知道一种专门处理包的处理器,即网络处理器。它同通用的处理器
的不同之处在于:网络处理器是为优化包处理而设计的,它将包以其到达的速度(即线速)送
到下一个节点;而通用处理器则要处理范围很大的各种指令。另外,如果需要新的功能或新的
标准,网络处理器可通过编程来实现,以满足各种各样的网络应用。

对于网络处理器的计算能力的需求,不单取决于数据速率,还同如何处理这些数据有关。其
中最简单的工作是根据包头部的信息确定将包送到哪里,按照ISO(国际标准组织)的OSI(
互连开放系统)的7层协议模型,以上所说的地址解析和路由属于第2层到第4层。

更复杂的处理,例如按用途的计费和负荷平衡等,要求处理器分析包负荷的内容,涉及同应
用程序有关的数据管理和处理。例如,按用途的计费需要收集用户的信息,以处理帐单和对
网络进行分析,处理器的工作包括监视登录以识别用户,检出登录信息,然后匹配用户的文
件和收费政策表,并在负荷中找出关键字,这就属于OSI的第5到第7层协议了。

网络处理器还刚刚在市场上露头,只有Intel的IXP1200和MMC(www.mmcnet.com)的用于1Gb/s
以太网的nP7120建立了生产线。另有两种用于OC-48(2.5Gb/s)的网络处理器,即Vitesse(w
ww.vitesse.com)的1Gb/s以太网处理器IQ2000和IBM的PowerNP NP4GS3,以及Agere System
s(www.agere.com)的Payload Plus在2000年第四季度投产,因此去年只有少量的网络处理器
产品在市场出售。

有三家公司正在设计和开发用于10Gb/s和全部7层协议的网络处理器,即Xstream Logic(www
.xstreamlogic.com)的动态多线程(DMS)处理器核,一家以色列的公司Ezchip(www.ezchip.c
om)的NP-1,和Lexra(www.lexra.com)公司的NetVortex。

Lexra公司既不生产也不销售以NetVortex为基础的片子,而是将NetVortex的知识产权出售给
客户,让他们把NetVortex同他们自己的电路集成到更大的网络处理系统中,以适应性能和价
格的目标。

NetVortex结构的基础是Lexra公司的LX8000包处理核,这是一种32-bit的MIPS3000精减指令
处理器(RISC)。16个LX8000可以通过高速总线相连接,形成一个多处理器系统,用这样的结
构组成的原型系统可在10Gb/s速率下执行全部的7层网络协议,有的用户甚至用到OC-768(4
0Gb/s)。

在10Gb/s速率下执行7层协议的处理可不是一件轻而易举的事,在这种情况下,64Byte的包
的处理时间只有12个时钟周期,这是很紧张的。

Ezchip公司把10Gb/s网络处理器的功能划分为四,对每一种功能优化设计了一种处理器核,
组成四级流水线。 NP-1一共有64个核,每一级流水线都有一些适当的处理器核。

NP-1的数据的宽度256~512bit,而不是通用处理器用的32或64bit。

然而,在OSI的高层处理包时,涉及持续地包存取和查找表搜索,所以即使有这样高度优化的
处理器结构,存储器访问仍然是一个瓶颈。对于10Gb/s的处理器,需要500Gb/s的存储带宽和
至少128MB的容量。因此Ezchip设计了高带宽的几兆字节片内动态RAM,和大容量的片外双倍
速DRAM。Ezchip还有一种专利的高速搜索方法,使得从存储器中取出数据的时间减少约2/3。

Ezchip原定于2001年2月推出它的NP-1,现已延迟到2001年6月,大量生产则要到2002年的上
半年。2000年11月,IBM和Ezchip宣布,IBM将要用其0.18mm的ASIC技术生产NP-1样机,在批
量生产时,改用0.12mm的铜互连技术。

同Ezchip建立一种新的结构的做法不同,Xstream采用类似MIPS的结构。MIPS是在八十年代早
期由斯坦福大学开发的处理器,它的指令集已相当普遍地用于现在的路由器、交换机之中,
人们已经熟悉了MIPS指令,而且有许多开发工具可供采用,Xstream采用MIPS着眼点就在于M
IPS指令已经为通信行业的设计者所普遍地接受这一点。

但是,与通用的微处理器不同,网络处理器要求在OC-192的速率下执行复杂的OSI七层协议。
为此Xstream开发了动态多线程(Dynamic Multi Streaming,DMS) 处理核和智能包管理单元
(intelligent Packet Management Unit,PMU)。

DMS使用户可以在一个时钟周期内安排8个线程,每个线程可以有4个指令。在这32个指令中
,DMS保证在一个时钟周期内有至少6个指令同时执行,即IPC(Instruction Per Clock)>6,
而PowerPC或Pentium的IPC仅稍大于1。PMU的工作则是把包存入存储器,或由存储器取出交给
处理器,以最大限度地减轻处理器的负担。

网络处理器正在得到一些大的半导体公司的注意,它们纷纷收购有专长的小企业。Vitesse在
去年并购了Sitera(www.sitera.com),一家开发了Prisma网络处理器的小公司。Broadcom(w
ww.broadcom. Com)在2000年12月以20亿美元的巨资购买了从事网络处理器合成的公司SiByt
e(www.sibyte.com,其网络处理器产品为Mercurian SB-1250)。Lucent Microelectronic
s 先是在去年春购入了Agere(www.agere.com),开发其Payload Plus,继之将其微电子业务
连同Payload Plus和在一起成立一个新公司,名字仍叫Agere Systems。

Motorola把C-Port 公司(www.cportcorp.com)的C-5处理器(由公司开发)其它通信和数字处理
技术第三方的软件以及开发工具合成为网络系统的设计平台。这样,网络设备的制造公司如
Cisco、Ericsson和Nortel就可以把Motorola的处理器同第三方的软件混合使用在它们的产品
中,而不是样样都由这些公司自己设计。

有人估计,网络处理器的产值将以每年60%的速度急速增长,到2004年达到29亿美元。到那时
,网络处理器将出现在几乎每一台网络设备之中。
发表于 @ 23:40 | 评论与反馈 (1)

2004-12-08 #

部分ADSL猫的IP和密码

TCL
192.168.1.1
root:root

艾玛 701g
192.168.101.1  192.168.0.1
用户名:admin   密码:admin
用户名:SZIM    密码:SZIM

艾玛701H
192.168.1.1   10.0.0.2
用户名:admin 密码:epicrouter

实达2110EH ROUTER
192.168.10.1
用户名:user    密码:password
用户名:root    密码:grouter

神州数码/华硕:
用户名:adsl 密码:adsl1234

全向:
用户名:root 密码:root

普天:
用户名:admin 密码:dare

e-tek
用户名:admin 密码:12345

zyxel
用户名:anonymous   密码:1234

北电
用户名:anonymous   密码:12345

大恒
用户名:admin     密码:admin

大唐
用户名:admin       密码:1234

斯威特
用户名:root      密码:root
用户名:user       密码:user
中兴

用户名:adsl     密码:adsl831 (中兴的adsl的密码前面为adsl,后面为型号,比如中兴831,密码就是adsl831)

1、全向QL1680 IP地址10.0.0.2,用户名:admin,密码:qxcomm1680,管理员密码:qxcommsupport。全向
QL1880 IP地址192.168.1.1,用户名:root,密码:root 全向QL1688 IP地址10.0.0.2,用户名为admin;密码为qxcomm1688
2、TP-LINK TD-8800在IE输入192.168.1.1,户名admin,密码admin
3、合勤zyxel 642 在运行输入telnet 192.168.1.1 密码1234
4、Ecom ED-802EG 在IE输入192.168.1.1,用户名和密码都为root
5、神州数码6010RA,在IE输入192.168.1.1用户名为ADSL,密码为ADSL1234
6、华为SmartAX MT800的初始IP是192.168.1.1,用户名和密码都为ADMIN,恢复默认配置的方法有两种,一种是连续按MODEM背后的RESET键三次,另一种是在配置菜单的SAVE&REBOOT里选择恢复默认配置。
7、伊泰克:IP:192.168.1.1 用户名:supervisor 密码:12345
8、华硕IP:192.168.1.1 用户名:adsl 密码:adsl1234
9、阿尔卡特 192.168.1.1 一般没有密码
10、同维DSL699E 192.168.1.1 用户名:ROOT 密码:ROOT
11、大亚DB102 192.168.1.1 用户名:admin 密码:dare 高级设置://192.168.1.1/doc/index1.htm
12、WST的RT1080 192.168.0.1 username:root password:root
13、WST的ART18CX 10.0.0.2 username:admin password:conexant username:user password:password
14、实达V3.2root root V5.4root grouter
15、泛德admin conexant
16、东信Ea700 192.168.1.1用户名:空 密码:password
17、broadmax的hsa300a 192.168.0.1 username:broadmax password:broadmax
18、长虹ch-500E 192.168.1.1 username:root password:root
19、重庆普天CP ADSL03 192.168.1.1 username:root password:root
20、台湾突破EA110 RS232:38400 192.168.7.1 username:DSL psw:DSL
21、etek-td的ADSL_T07L006.0 192.168.1.1 User Name: supervisor
Password: 12345 忘记密码的解决办法: 使用超级终端的Xmodem方式重写Vxworks.dlf,密码恢复成:12345 22、GVC的DSL-802E/R3A 10.0.0.2 username:admin password:epicrouter username:user password:password
23、科迈易通km300A-1 192.168.1.1 username: password:password 科迈易通km300A-G 192.168.1.1 username:root password:root 科迈易通km300A-A 192.168.1.1 username:root or admin password:123456
24、sunrise的SR-DSL-AE 192.168.1.1 username:admin password:0000 sunrise的DSL-802E_R3A 10.0.0.2 username:admin password:epicrouter username:user password:password

25、UTStar的ut-300R 192.168.1.1 username:root or admin password:utstar 这些都是一些ADSL设奋的出厂时的默认初始IP,用户名和密码,是要调试这些设奋时必须要知道的东西。 一般调试这些设奋有三种方法,一种是最常见的WEB方法,就是在浏览器中填入设奋的IP,如QX1680,就是在浏览器地址栏输入10.0.0.2,出现提示栏后,输入用户名admin,密码qxcommsupport,就可以管理员设置界面了。最常见和最简单的就是这种方法。 第二种方法就是用TELNET的方法,telnet IP,如早期的合勤642,方法telnet 192.168.1.1,然后输入密码1234,就可以进入全英文的字符界面了。 第三种方法就是用厂商自带的配置程序来进入配置界面,如CyberLink 6307/6309KG 它使用在随Cybrlink 6307/6309KG带的光盘中DSLCom.exe, 出厂时默认值:路由IP地址 :1 92.168.1.1密码 : stm,由于这种方法没有前两种方法方便,所以现在的低端产品比较少采用了。 绝大部分产品的调试都是要先通过产品自带的双绞线连接设奋后,把本机网卡的IP设置成跟该设奋同一网段,再进行配置,如设奋被改了默认的IP或者密码,大部分都可以通过复位来恢复出厂默认值。最常用也是最有用的方法就是把设奋断电后,一直按住复位键,然后通电,持续一小段时间后就可以恢中达通CT-500 192.168.1.1 root/12345
26.中兴adsl841默认IP:192.168.1.1,UserName:admin,Password:private

成都天逸           用户名:admin          密码:epicrouter

上海中达    用户名:(随意)       密码:12345

发表于 @ 17:31 | 评论与反馈 (0)

2004-12-03 #

该死的DBISAM不支持iprovider ,去论坛上看,居然说早就知道这个问题,但最近太忙,没时间实现,faint...

正好要用到clientdataset 只好仿照ADOQuery 来实现接口的部分过程.

adoQuery override 的 接口函数

procedure PSEndTransaction(Commit: Boolean); override;
procedure PSExecute; override;
function PSExecuteStatement(const ASQL: string; AParams: TParams; ResultSet: Pointer = nil): Integer; override;
procedure PSGetAttributes(List: TList); override;
function PSGetDefaultOrder: TIndexDef; override;
function PSGetKeyFields: string; override;
function PSGetParams: TParams; override;
function PSGetQuoteChar: string; override;
function PSGetTableName: string; override;
function PSGetIndexDefs(IndexTypes: TIndexOptions = [ixPrimary..ixNonMaintained]): TIndexDefs; override;
function PSGetUpdateException(E: Exception; Prev: EUpdateError): EUpdateError; override;
function PSInTransaction: Boolean; override;
function PSIsSQLBased: Boolean; override;
function PSIsSQLSupported: Boolean; override;
procedure PSReset; override;
procedure PSSetParams(AParams: TParams); override;
procedure PSSetCommandText(const CommandText: string); override;
procedure PSStartTransaction; override;
function PSUpdateRecord(UpdateKind: TUpdateKind; Delta: TDataSet): Boolean; override;

发表于 @ 20:21 | 评论与反馈 (0)

其实很简单,安装完index content link后,记得把borland delphi help目录下的d7.gid删除掉.
发表于 @ 12:38 | 评论与反馈 (0)

2004-12-02 #

首先简单介绍下长城的工作原理。

在每个isp的核心交换机的镜象端口上都有一台到几台协议分析器,负责检查一些敏感协议请求,例如http等,根据一个庞大的规则库和网址库来分析请求内容的合法性... 发现非法访问,log 并快速的伪装成被访问主机发一个Reset包来切断TCP连接。

大家都知道google的cache 和newsgroup 是被禁止的重点,可一个好好的google就被阉割成半个了。。尤其是寻找一些技术方面的资料newsgroup是非常有用的。不甘心啊。。。。

还好网络是开放的,有墙就会有漏洞。。。

访问cache的方法

http://google.7766.org/
http://www.myway.com

访问新闻组的方法

http://groups-beta.google.com/

好了,不知道能用多久,先凑活着用吧。。。

发表于 @ 17:43 | 评论与反馈 (2)

2004-12-01 #

能够在windows启动时按F11进入管理

能够建立一个隐藏的分区来备份

支持增量备份

可以把备份文件虚拟成逻辑磁盘

尤其是可以建立可以启动的修复光盘

 

反正是不错啊....比Ghost强,就是备份时感觉有点慢....

发表于 @ 21:13 | 评论与反馈 (10)

2004-11-23 #

最近delphi 2005网上流传的版本太多了,主要有几个

borland网站上的trial版本 ---缺source

3cd ShockISO ----缺大量帮助文件...

RIP 687M ---好象是最全的一个了吧...仍然缺了不少帮助文件

网上传的一个147M的,缺的更多,第三方都没有了...

发表于 @ 16:49 | 评论与反馈 (1)

2004-11-22 #

delphi2005

一个发蛋打名字的游戏,结束时出现corbin的照片还有他的树屋主页http://www.corbinstreehouse.com/还有http://www.bluetreesoft.com/的宣传页面...

发表于 @ 18:32 | 评论与反馈 (0)

2004-11-20 #

delphi2005

安装完从borland下的trial版本后,利用keygen

来完成注册.
发表于 @ 23:27 | 评论与反馈 (0)

异常类型:

1.前台导向类

程序可通过try except块来捕捉,根据异常handle来判断程序处理.通过生成错误导向页面来引导用户处理.

2.后台异常类

后台程序出现可预知的错误,通过try except块来捕捉,根据异常handle来判断程序处理,运行时log到指定文件.

3.后台无法预料的错误

用madshiExcept捕捉后让用户选择处理方式.

发表于 @ 16:49 | 评论与反馈 (0)

Assert  过程原形
[code]procedure Assert (expr :Boolean [; const msg: string]);[/code]
在system.pas 里 Assert 的实现是:

procedure _Assert(const Message, Filename: AnsiString; LineNumber: Integer);
{$IFDEF PUREPASCAL}
begin
  if Assigned(AssertErrorProc) then
    AssertErrorProc(Message, Filename, LineNumber, Pointer(-1))
  else
    Error(reAssertionFailed);  // loses return address
end;
{$ELSE}
asm
        PUSH    EBX
{$IFDEF PIC}
        PUSH    EAX
        PUSH    ECX
        CALL    GetGOT
        MOV     EBX, EAX
        MOV     EAX, [EBX].AssertErrorProc
        CMP     [EAX], 0
        POP     ECX
        POP     EAX
{$ELSE}
        CMP     AssertErrorProc,0
{$ENDIF}
        JNZ     @@1
        MOV     AL,reAssertionFailed
        CALL    Error
        JMP     @@exit
@@1:    PUSH    [ESP+4].Pointer
{$IFDEF PIC}
        MOV     EBX, [EBX].AssertErrorProc
        CALL    [EBX]
{$ELSE}
        CALL    AssertErrorProc
{$ENDIF}
@@exit:
        POP     EBX
end;
{$ENDIF}


可以看出AssertErrorProc() 是没有初值的,通过对其赋值可以定义自己的Assert处理过程,另如果未对AssertErrorProc赋值,将调用Error()处理过程来做为异常处理.

TAssertErrorProc = procedure (const Message, Filename: string;
    LineNumber: Integer; ErrorAddr: Pointer);

{$ASSERTIONS OFF/ON} 开关来决定Assert是否被调用.可以在project-option-complier里设置.

这样就可以在beta或debug版本是打开,而最终发布时关闭调试输出了.

一个简单的AssertErrorProc 例程:

unit AssertLogs;

interface

implementation
uses
  Windows,
  SysUtils;

var
  runErrMsg : String;
  oldAssertErrorProc : TAssertErrorProc;

procedure LogAssert(const Message, Filename: string; LineNumber: Integer; ErrorAddr: Pointer);
begin
  runErrMsg := format('Error: %s, Addr: %p, in file(%d): %s ',
                      [Message, ErrorAddr, LineNumber, FileName]);
  if IsConsole then
    Writeln(runErrMsg)
  else
    MessageBox(0, pChar(runErrMsg), 'Error Log by AssertLogs', 0);
end;

initialization
  oldAssertErrorProc := AssertErrorProc;
  AssertErrorProc := @LogAssert;

finalization
  AssertErrorProc := oldAssertErrorProc;
end.

*************************************
那么在output debug信息时只需要:

Assert(false,outputstring);

发表于 @ 16:18 | 评论与反馈 (1)

http://www.borland.com/products/downloads/download_delphi.html#
发表于 @ 14:47 | 评论与反馈 (4)

2004-11-19 #

EWebserverError = Class Exception

发表于 @ 22:52 | 评论与反馈 (1)

开发工具: delphi 7 Enterprise
Web : Intraweb 7.1.12 For Delphi
IDE : Castalia3 ,CnPack
第三方控件: madshi Collection

发表于 @ 15:11 | 评论与反馈 (0)