宽带和窄带比起来,最主要就是个"快"字,所以大家在选购宽带路由器时,非常关心其性能怎么样,通俗来说就是"快不快"。于是很多人提出各种各样的证据来,证明自己的宽带路由器性能很好,很快。但许多证据往往是片面的,等你买回去发现性能不足的时候已经悔之晚矣。本文就从专业角度出发,分析几个大家经常引用又容易误导大家评判的"证据",告诉大家应该怎样客观地看待这些证据,以及怎样正确地评判一个宽带路由器的性能。
证据一:处理器主频
说法:"处理器主频100M,性能强劲。""处理器主频133M,性能比100M的要好得多。""采用通信专业RISC CPU。"
误区:首先,处理器只是路由器的一个部件,特别之处只在于它是最核心的器件。处理器用得差路由器性能好不了,但反过来处理器好了路由器性能却不一定好。就象做菜,没有肥瘦得宜的新鲜猪肉绝对做不出好的红烧肉,但有了肥瘦得宜的新鲜猪肉,没有好的酱油,没有好的厨师,照样做不出好的红烧肉。其次,处理器主频只是处理器的一个性能指标,要知道处理器性能,还必须了解其总线宽度(16位还是32位)、Cache容量和结构、内部总线结构、是单CPU还是多CPU分布式处理、运算模式等等,这些都会极大地影响处理器性能,一点也不比主频次要。所谓的"采用通信专业RISC CPU"相当于什么都没说,只是用专业术语扮高深,不敢量出底细,因为几乎所有路由器采用的都是通信专业RISC CPU,关键要看这颗CPU到底用的是什么内核,内部结构如何。
用户进阶:一般来说,100M或以下的属于较低主频,100M~200M中等,200M以上属于较高主频。另外要问问处理器是什么内核,是80186、ARM7、ARM9、MIPS还是Intel Xscale?Cache容量有多大?是单CPU还是多CPU分布式处理?注意别问不讲实话的*商哦。80186、ARM7内核处理器是第一代宽带路由器的典型配置,性能低,主流厂商均已不使用。ARM9、MIPS内核处理器是目前主流。Intel Xscale架构是高级网络处理器,用于高端产品。Cache容量8K或以下属于少的,16K常见,32K或以上是属于大的。一般处理器都是单CPU,采用多CPU分布式处理的是高级处理器,性能高。如果你是专业人士或喜欢追根究底,还可以深究一下ARM9是普通型的920T/922T/940T还是增强型的926E/946E/966E,MIPS是2K、3K还是4K、5K,不同型号性能和结构都会有较大差异。可以把处理器型号输入到Google上搜一把,然后到芯片厂家的网站上好好看个究竟,顺便也看看其他人对这个芯片的评价(评论者水平有高低,目的有不同,不可全信)。
证据二:内存容量
说法:"我这个内存16M,你看那个才8M,性能比它好多了。"
误区:这句话存在一个问题,两个陷阱。一个问题是:内存同样只是路由器的一个部件,只不过是一个重要部件而已。和处理器一样,内存用得小路由器性能好不了,但反过来内存用得大路由器性能却不一定好。内存是用来存放运算过程中的所有数据的,使用内存就象布置房间。精明的上海女人善于"螺蛳壳里做道场",没用的东西绝对不会摆在房间里,每一件东西都摆得合情合理,房间的每一个角落,从地板到天花板,每一寸都得到充分利用,10几20几平米的一居室能摆下全家所需的全部家具和电器,甚至还有空间放一两个盆栽点缀一下。但如果换做一个懒惰的单身汉,你给他一套两居室和同样多的家具和电器试试看,保证他摆不下,而且没过几天房间里到处是垃圾,立足的地方都没有。所以根据使用内存的大小来绝对地评判路由器性能的高低是不合理的,科学地使用内存同样重要,水平高的软件设计能很好地规划和使用内存,水平低的甚至自己没有设计能力,直接使用处理器芯片厂家提供的未经优化的参考软件的,内存就不能得到有效的规划和使用。两个陷阱是:内存单位和内存总线。内存可以用Byte(字节)做单位,也可以用Bit(位)做单位,两者一音之差,容量差8倍(1 Byte = 8 Bit),一般用大写B表示Byte,小写b表示Bit,但有些别有用心的人会在这里做手脚,有象上面的说法例子中不标单位混淆视听的,也有故意把b标做B瞒天过海的。内存总线有宽有窄,要在内存中存或取4Byte的数据,如果是16位内存,就要*作两次,32位内存则只需要*作一次,效率差一倍。所以即使相同容量的内存如果总线宽度不一样其对路由器性能的影响也是重大的。
用户进阶:一般来说,1M~4M Byte属于较小,8M Byte属于中等,16M Byte或以上属于较大。另外如果别人只告诉你是多少M,一定要问清楚是Byte还是Bit,是16位还是32位。当然你要找信得过的对象问,千万别上当受骗。如果你是专业人士或喜欢追根究底,把内存型号输入到Google上搜一把,然后到芯片厂家的网站上好好看个究竟就绝对不会错了,除非不法分子用打磨芯片在芯片丝印上造假。所以选择诚实守信的厂家产品很重要。
证据三:Flash容量
说法:"我的Flash容量大,性能比它好。"
误区:没有道理。Flash是用来存放*作系统和应用程序的,其大小主要取决于用何种*作系统、应用程序编写效率和用户界面的花哨程度。如果选用高效率的实时*作系统(如VxWorks、Ecos、Nucleus等),设计者对*作系统理解又很深刻,能对其进行合理裁剪,设计者的应用程序编写效率也很高,就可以使用小容量的Flash。如果选用低效率的*作系统(如Linux等),设计者对*作系统不了解,应用程序编写效率低,或根本就是照搬了芯片厂家提供的未经优化的参考软件,就只能使用大容量的Flash了。从这个角度来说,反而是Flash用得越小软件水平越高,产品越值得信赖。当然,产品功能多、用户界面花哨(如有很多高清晰图片)相对来说用的Flash会大一点。
用户进阶:普通用户根本不用去了解Flash到底是多大,只要看功能是不是满足需要,顶多再看看用户界面好不好看,合不合你口味(如果你有这方面偏好的话)就足够了。如果你是专业人士或喜欢追根究底,可以尝试去问问厂家他们用证的是什么*作系统,软件是自己写的还是抄来的,不过基本上你会碰一鼻子灰,这可是厂家机密。
证据四:Throughput
说法:"性能强劲,Throughput高达97M。""64Byte小包Throughput达到线速。"
误区:路由器的工作过程很象邮局包裹业务。邮局寄包裹的过程是大家把要寄走的物品和寄件人、收件人和物品信息交给邮局,邮局用不同尺寸的标准箱把物品包好并在箱子上贴上格式化的包裹单,检查无误后投递到目的地,收包裹是相反过程。路由器基本一样,只不过收发的东西是数据而已。Throughput(吞吐量)表示的是路由器每秒能处理的数据量,相当于邮局单位时间里的包裹处理能力,是路由器性能的直观反映。大家一定要注意这个数据后面隐藏的名堂是最多的。
首先应该说明所谓路由器Throughput,一定是LAN-to-WAN的Throughput,数据流出或流入局域网才需要路由器处理,才能这代表了路由器性能。而不是LAN-to-LAN,这代表的是路由器内部小交换机性能,正常应该都是线速,一点意义都没有。这就象邮局单位时间里的包裹处理能力,一定指的是运出和运进邮局的包裹量,而不是从邮局一个房间搬到另一个房间的包裹量。但还是有些人把LAN-to-LAN的数据当作路由器Throughput在宣传,甚至标到产品包装上,当然他不会写上这是LAN-to-LAN,大家要小心。
另外,路由器 Throughput,一般应该是在NAT开启,防火墙关闭的情况下得出的测试数据。这是因为NAT是宽带路由器最基本、最核心的功能,不开启NAT就不成其为宽带路由器了,而且虽然不同的产品设计其NAT功用是一样的,但软件设计的好坏直接影响到NAT效率、路由器性能,所以NAT开启的Throughput才是有意义的。至于防火墙,应该算做宽带路由器的附带功能、高级功能,有的产品防火墙规则很多很复杂,能过滤很多东西,有的产品规则就又少又简单。规则多、复杂的,CPU用来过滤数据的时间就长,规则少、简单的,CPU用来过滤数据的时间就短,这对Throughput测试数据影响还是挺大的。为公平起见,在测试路由器Throughput时,特别是在不同产品性能比较时,把防火墙关闭是合理的。这就象美国发生炭疽邮件袭击以后,邮局对邮包的检查严格了很多,这会对邮局单位时间里的邮包处理能力产生较大影响,但其他国家没有这么复杂的检查程序,如果我们据此就断言美国邮局的效率低下,就有失公允了。至于防火墙的评判,一般放在功能比较里面而不是性能比较。当然,如果不是不同产品的横向比较,只考察特定产品本身的性能,如果能同时有防火墙关闭和防火墙开启(需要注明启用了哪些过滤规则)两种情况下的Throughput数据,大家就能对这个产品了解得更透彻了。
常见 Throughput 测试方法有两种,一是Smartbits测试,一是Chariot测试。Smartbits测试是使用全球最权威的网络设备测试仪器Smartbits2000或6000,配以其附带的专业测试软件SmartApplication,用连续不断的UDP包来测出对不同大小的数据包路由器每秒能处理的包数量。路由器在处理数据包时,主要的时间花在处理包头、包尾上,所以对于不同大小的数据包,路由器每秒能处理的包数量差别不会太大。这就象邮局处理包裹,主要的时间是花在处理寄件人、收件人和物品信息以及检查上,包裹重一点轻一点对处理速度影响不会太大。
如128Byte包每秒能处理10000个,并不能做到64 Byte包每秒处理20000个,而是只比10000个略多一点点,比如10100个。这就给了一些不诚实的厂家以可乘之机。如他的路由器在处理最大的1518Byte包时每秒8000个,根据理论计算处理1518Byte包100M线速的极限值是8127个,所以折算出来的Throughput就是100M*8000/8127=98.44M,于是他就很自豪地宣布,我的路由器Throughput高达98.44M,殊不知,原来这个路由器在处理最小的64Byte包时每秒是11000个,根据理论计算处理64Byte包100M线速的极限值是148810个,所以折算出来的Throughput只有100M*11000/148810=7.39M,两者相差13倍多。这完全取决于我们怎么看待吞吐量,是每秒处理多少个数据包还是每秒处理多少兆数据,就象邮局每天是处理多少个邮包还是多少公斤货物。
从邮局能力角度来看,应该是从每天处理多少个邮包来评判更合理一点,因为这个数据相对来说是稳定的,受邮包重量影响小。但每天多少公斤货物,受邮包重量的影响就是根本性的,如邮寄的全部是书籍,计算出来的每天处理货物公斤数就很大,如果全是棉花就很小。实际情况中一定是既有书籍又有棉花还有其他五花八门的东西,但你评估的时候按什么比例来调配这些货物才合理呢?没人说得清,除非有人定一个标准规定各种东西的比例,大家都按照这个标准来计算。既然没标准,有人就用书籍来计算,有人就用棉花来计算,规矩的人说明我是用什么来算的,不规矩的就乐得浑水摸鱼。另外,以目前宽带路由器普遍所采用的硬件来看,即使是性能最好的,也不足以达到64Byte小包Throughput线速,但有的人宣称我的产品就有这么好,而且拿出Smartbits测试数据来证明。这类产品采用的是所谓NAT硬件加速技术,Throughput是很好看,但代价是所有数据都不通过CPU,无法做数据的过滤,门户大开,防火墙不起作用,路由器没有任何管理功能。