关于网络设备性能方面_第1页
关于网络设备性能方面_第2页
关于网络设备性能方面_第3页
关于网络设备性能方面_第4页
关于网络设备性能方面_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、关于网络设备性能方面:BPS,PPS讲解网友:xjc2694 发布于: 2009.01.05 09:53(共有条评论) 查看评论 | 我要评论                                                                

2、 包转发率标志了交换机转发数据包能力的大小。单位一般位pps(包每秒),一般交换机的包转发率在几十Kpps到几百Mpps不等。包转发速率是指交换机每秒可以转发多少百万个数据包(Mpps),即交换机能同时转发的数据包的数量。包转发率以数据包为单位体现了交换机的交换能力。交换机的背板带宽,是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量。背板带宽标志了交换机总的数据交换能力,单位为Gbps,bps(bits per second,每秒数据的位数,也叫交换带宽,一般的交换机的背板带宽从几Gbps到上百Gbps不等。一台交换机的背板带宽越高,所能处理数据的能力就越强,但同时设计成本也会越高。

3、所以一般来说二层能力用bps,三层能力用pps,支持第三层交换的设备,厂家会分别提供第二层转发速率和第三层转发速率。  另外,讲一下PPS是如何计算的我们知道1个千兆端口的线速包转发率是1.4881MPPS,百兆端口的线速包转发率是0.14881MPPS,这是国际标准,但是如何得来的呢?具体的数据包在传输过程中会在每个包的前面加上64个(前导符)preamble也就是一个64个字节的数据包,原本只有512个bit,但在传输过程中实际上会有512+64+96=672bit,也就是这时一个数据包的长度实际上是有672bit的千兆端口线速包转发率=1000Mbps

4、/672=1.488095Mpps,约等于1.4881Mpps,百兆除于10为0.14881Mpps (包转发线速的衡量标准是以单位时间内发送64byte的数据包(最小包)的个数作为计算基准的。对于千兆以太网来说,计算方法如下:1,000,000,000bps/8bit/(64 + 8 + 12)byte=1,488,095pps 说明:当以太网帧为64byte时,需考虑8byte的帧头和12byte的帧间隙的固定开销。故一个线速的千兆以太网端口在转发64byte包时的包转发率为1.488Mpps。快速以太网的线速端口包转发率正好为千兆以太网的十分之一,为148.8kpps。

5、*对于万兆以太网,一个线速端口的包转发率为14.88Mpps。*对于千兆以太网,一个线速端口的包转发率为1.488Mpps。*对于快速以太网,一个线速端口的包转发率为0.1488Mpps。)那么以后很简单了,其实直接用设备参数中的pps数值乘以672那么就转化成我们比较能理解的大众化的bps概念了。一般销售为了方便大家计算和整数化的理解就改672为500。(包转发线速的衡量标准是以单位时间内发送64byte的数据包(最小包)的个数作为计算基准的。对于千兆以太网来说,计算方法如下:1,000,000,000bps/8bit/(64 + 8 + 12)byte=1,488,095pps 说明:当以

6、太网帧为64byte时,需考虑8byte的帧头和12byte的帧间隙的固定开销。故一个线速的千兆以太网端口在转发64byte包时的包转发率为1.488Mpps。快速以太网的线速端口包转发率正好为千兆以太网的十分之一,为148.8kpps。*对于万兆以太网,一个线速端口的包转发率为14.88Mpps。*对于千兆以太网,一个线速端口的包转发率为1.488Mpps。*对于快速以太网,一个线速端口的包转发率为0.1488Mpps。)理解了这个后忽然发现网络设备选型原来是那么的简单,我只需要预计网络中的总节点数和带宽需求及流量需求,那么需要的交换机性能型号和路由器型号就呼之欲出了。 注

7、:现在的设备很多是三层交换机,我们看到的参数是分别针对三层模块和二层模块来说的。例如6509就是这样了。数据交换能力是720Gbps,但是路由包转发能力是400Mpps。这里没有矛盾。因为两个数据都不是描述一件事情。为什么一个数据包定为512个bit,为什么不是1024个bit再加上64个字节的preamble?因为根据Ethernet中的标准,以太网最小的包大小为64个字节(即512bit),IP报头固定有20个字节的开销,如果负载小于44个字节的话,在发出数据包前会自动填充至44字节,以保证最少达到64字节IP包目前,很多X86的防火墙厂商都宣称,64bytes小包线速转发,94%,呵呵,

8、让我们来看看kola关于这个的经典论述:一. 线速线速转发是对一个网络中转设备的理想要求。但平时大多数人都关注着设备的bps(bits per second,每秒数据的位数),很少人会想到fps(frame per second,每秒数据的帧数)实际上更考验设备的转发能力。简单的说,bps是指每秒钟有多少字节的数据经过,fps是每秒钟有多少个数据包经过。以10Mb的网络来说,线速时bps为10M,fps最大值为14880。那么这个14880是怎么计算出来的呢?首先我们要知道几个规定:1. 以太网内最小的数据包的大小为64字节,它包括4字节的CRC,2字节的以太网类型(或长度),6字节的源Mac

9、地址,6字节的目的Mac地址以及46字节的负荷。2. 以太网帧与帧之间至少要有96位(12字节)的帧间隙(IFP,inter frame gap)以确保区分两个数据包。3. 每个数据帧开始之间必须要有8字节的Mac地址前导位(MAC preamble)以确保发送方接收方同步数据位。因此,以太网内最小的数据包实际上是64+12+8=84字节=672位。于是,10M网络环境下pps的最大值就是10M位每秒 / 672 位每包 = 14480 包每秒。同理,我们可以算出10M网络环境下fps的最大值为10M位每秒 / ( ( 1518+12+8 ) * 8 ) 位每帧 = 812 帧每秒而100M网

10、络环境下这两个值分别为148809和8127。二. 处理能力我们已经知道了线速情况下最大的fps值,现在我们看看要达到线速所需要的处理能力。假设市面上某防火墙的是X86架构的CII 900Mhz 的CPU,即每秒钟可以分成900M个时钟周期。于是,在100M的网络环境下,处理一个数据帧所允许的最大时钟周期为:900M 时钟周期每秒 / 148809 帧每秒 = 6048 时钟周期每帧也就是说,要达到线速转发,900Mhz的CPU平均要在6048个时钟周期内完成对一个数据包的处理。这只是理想情况,基于x86架构的系统里CPU还要负责各类中断(如系统时钟)的处理,每次中断时都要保存当前的运行状态,

11、切换到中断处理程序,等中断处理完后,再恢复当前状态,切换回原来的处理流程。光是这个切换过程至少都要费上500个时钟周期,还不包括中断处理程序所用的时钟周期。好在这类中断还”不算“频繁,扣除系统这部分开销后,真正分摊到每个数据包的处理时间平均大约还有5500个时钟周期。虽然Intel P3以上级的CPU如CII在设计指令集时已经将大量常用的指令(如两个寄存器相加/减)优化到可以在一个时钟周期内完成,但做为防火墙,更常用的是读/写内存数据(比如要比较源地址,计算IP的校验和等)这类多时钟周期的指令,所以5500个时钟周期内大约只能执行2000条指令。对一个数据包的处理,从为这个数据包分配内存起,依

12、次要检查以太网络协议(如果是RFC1042格式的数据包还要跳过LLC头找真正的以太网络协议),检查IP头、校验和(如果是TCP/UDP协议还要计算对应的校验和),DoS防御,状态检测,NAT规则,安全/统计规则,更新ARP/路由表,选择转发网卡,直到最终把这个数据包添加到发送队列中才算完成。你认为2000条x86的指令能完成这一切吗?另外的一种说法先看看操作系统如何处理包:一般对于高效处理,很少是一个包一个中断的,都是通过轮询方式,比如在freebsd下,高负载情况下,可以设置5000次/s(intel百兆卡,一般够用,至于怎么够用,自己算吧)甚至更高,网卡会将收到的包存放于队列中,等待cpu

13、的主动处理。这样中断数会极大降低。一般好的网卡比如常见的intel百兆卡,(如果没有记错的话,队列大小是32,而8139才4),可以缓冲大量的包,这样cpu的一次中断可以处理多个包。在纯路由模式下,即使有少量的规则,包转发的速度是非常快的,基本可以达到线速的,当然不是100M,所有的网络节点设备都会有延时的,只是多少而已。在防火墙中,消耗cpu的是nat和复杂的规则检测,其他的基本功能消耗cpu比较少, 速度非常快,拿过一个包,通过指针定位ip头,根据ip头定位动态规则表(hash检索),比较一下要么丢弃,要么直接送到下层。如果对协议栈了解的话,会知道一个包从网络进入协议栈,大部分流程都是条件

14、判断。arp表,路由表之类的处理也非常快的,记得是3跳命中。再说了还有高速缓冲的,在freebsd中还可以打开fastforward。mbuf使用起来也不像应用层的内存申请使用,不用担心那么耗费指令。对于包效验和,汇编指令编写的,一般需要几十条指令,不会超过百条。三. 现实数据2000条指令看起来很多,实际上并不多,举个例子,要完成最简单的 A = A + B 这个算式最优化的指令也要用上两条:mov eax, val_Badd val_A, eax未优化的会用上四条:mov eax, val_Amov ebx, val_Badd eax, ebxmov val_A, eax目前的防火墙的开发

15、大多是在Unix/Linux上完成的,以GCC编译器为例,它的优化效果比商业的编译器如VC/BC差了大概20%,也就是说同一段C代码,用商业编译器能编译成100条指令的话,GCC最好的情况下只能编译成120条指令。实际上,在没有任何包过滤规则或其它配置的情况下,完整的处理一个数据包需要大约14000条指令。所以,根据上面的计算,目前许多X86架构防火墙(PIII 800)在100M网络环境下的结果是64byte的情况下达到42%的线速转发能力,即62000fps的处理能力。至于100%,95%,90%以上            

16、60;   HP小型机机型性能参数一、Rp8400系列序号名称数量性能参数最小数量最大数量1cpu1164个/cell,2-16个650MHz或750MHz PA8700 CPU2内存116x416条/cell3Cell数量144Cell上Vrm125System Bkplane vrm612v6Pci Bkplane vrm2127Front fans98Rear fans129i/o fans610Bps1611Core i/o1212Pci slot8×2见下表13Disk14最大73G/单盘14Scsi通道61hp rp8400 Server Series PCI Slot TypesSlot# Device:0_1 PCI4x, “Twin Turbo” 64bit, 66 MHz, 3.3Vonly, 3.3V connector, Hot Swap Slot.0_2 PCI4x, “Twin Turbo” 64bit, 66 MHz, 3.3Vonly, 3.3V connector, Hot Swap Slot.0_3 PCI4x,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论