Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4250340
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类:

2010-12-21 15:42:20

转发性能是路由器最关键的技术参数。路由器的主要功能是做IP报文转发,由于中低端路由器多采用CPU上运行的软件来实现该功能,因此多数中低端路由器不具备线速(wire speed)转发能力。转发性能,有时候也叫作吞吐率。

所谓线速转发(wire speed),就是指的是:连接两个网络的路由器,就像是一根网线一样连接了两个网络一样,路由器上没有任何丢包、延迟和抖动现象。这是一种理想状态,在目前的技术发展水平下,商用的中低路由器一般是无法达到的。

那么就需要一个参数来衡量路由器的转发性能,最常用的参数是pps,是packet per second的所写,也就是报文每秒。有些公司也用bps来衡量路由器转发性能,比如Juniper。Bps是bit per second的缩写,是比特每秒的意思。对中低端路由器来说,pps更合理,因为其瓶颈主要在CPU上软件,一般来说,无论大包,还是小包,软件的处理开销都一样,并不会因为报文大,软件的开销就大。因此pps是一个一致性很高的单位,不容易造成混淆和歧义。

对于100M以太网来说,线速转发性能是大约150k pps,怎么计算的呢?一般来说,测量转发性能的时候,采用小报文来进行测试,也就是64Byte的IP报文,加上以太网头,加上开销(Preemble、SFD等),计算出一个报文的bit数量,然后再用100M / bit数量,就是这个约150k了。千兆以太网线速是1.5M,万兆以太网是15M。

很多厂家在宣传转发性能的时候,有一种夸大的方法,就是重复计算,下面举例说明。假设我们要测试一个有两个100M以太网接口的路由器,用smartbit连接两个以太接口,单向发送数据。也就是从一个接口进去,另外一个接口出来。那么如果用100M线速发送没有丢包,该路由器的转发性能是150kpps,还是300kpps?正确答案应该是150k pps,因为一个报文从一个以太口进去,从另外一个以太口出来,对路由器来说,只作了一次转发,不能重复计算转发性能。

处理器(CPU)类型是决定转发性能的最关键的因素。一般来说,采用集中式CPU转发IP报文的路由器,其处理性能都不会太高。下面是一些经验数据:

采用多核处理器的系统,其最高性能不会超过10M pps。

采用单核处理器的系统,不会超过1M pps。

采用ARM7,MPC86x,MPC85x转发性能应该在20k pps以下。

采用MPC82xx/MPC88x/MPC87x的系统,转发性能在200k以下。

Intel的IXP425的在转发性能最高,也不会超过1Mpps。其性价比也最高,多被一些网吧宽带路由器采用。

除了处理器之外,软件质量也是影响转发性能的关键因素。另外,内存带宽,内存的访问延迟,PCI总线带宽和访问延迟等,都会影响转发性能。例如:MPC8245的PCI驱动能力有限,其总线最多只能挂接5个PCI设备。如果要用MPC8245支持多个扩展板插槽,而每个扩展板上还有多个PCI设备,就必须通过多级PCI桥来扩展MPC8245的PCI驱动能力。每增加一级PCI桥,都要至少增加约5-10个时钟周期的PCI访问时间。一般来说,而对每个报文的处理都需要访问PCI总线。这就增加了程序运行时间,降低了转发性能。

很多厂商在转发性能这个指标上,都闪烁其词,含糊宣传。作为用户,一定要以测试数据为准,不能相信厂商的宣传。下面某厂商的RG3600系列为例来做个简单分析,看看有多少漏洞。

网站上该路由器的CPU是MPC8245,并且宣称是“64位的微处理器技术”,这是一处矛盾,Freescale网站上的技术资料表明,MPC8245不是64位的。只是它的内存总线带宽可以配置为64模式。一般来说,64位微处理器,这个技术术语有两层含义:(1)ALU是64位的;(2)寻址空间是64位的。仅仅内存总线的带宽是64位的,不能算是64位的CPU。MPC8245是64位CPU的说法,是可能是失误,也可能是故意误导用户。

该厂商宣称,RG3600系列的转发性能达到了350k pps,这个参数也值得推敲。从其网站上给出的多级PCI总线结构可以推测其总线带宽和延迟问题会比较严重。MPC8245的处理性能也没有这么高。

一般来说,厂商夸大其转发性能的手段主要有:(1)测试性能专用的软件,或者专用的命令开关。(2)模糊计算,就是上文提到过的夸大方法。

性能测试专用软件版本,一般来说去掉了某些必备的功能,例如:正常软件,在转发路径都要判断是否配置了ACL,而专用软件可能就去掉了这个判断语句,这样就减少了一条if语句的开销,至少减少了一次内存数据访问。甚至有些软件会去掉一些必须的功能,例如:判断IP报文的合法性,其中计算checksum是最浪费处理性能的,性能测试专用版本的软件可能省掉了这个环节。这样测试出来的性能其实不是真实的性能。


http://wusr0418.blog.163.com/blog/static/49257497200951211948628/

阅读(12720) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~