Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 其他文档 > bps和pps详解

bps和pps详解

收藏

本作品内容为bps和pps详解,格式为 doc ,大小 43560 KB ,页数为 5页

bps和pps详解


('bps和pps详解===========================bps=============================在计算机科学中,bit是表示信息的最小单位,叫做二进制位;一般用0和1表示。Byte叫做字节,由8个位(8bit)组成一个字节(1Byte),用于表示计算机中的一个字符。bit(比特)与Byte(字节)之间可以进行换算,其换算关系为1Byte=8bit(或简写为:1B=8b);在实际应用中一般用简称,即1bit简写为1b(注意是小写英文字母b),1Byte简写为1B(注意是大写英文字母B)。在计算机网络或者是网络运营商中,一般,宽带速率的单位用bps(或b/s)表示;bps表示比特每秒即表示每秒钟传输多少位信息,是bitpersecond的缩写。在实际所说的1M带宽的意思是1Mbps(是兆比特每秒Mbps不是兆字节每秒MBps)。建议用户记住以下换算公式:1B=8b1B/s=8b/s(或1Bps=8bps)1KB=1024B1KB/s=1024B/s1MB=1024KB1MB/s=1024KB/s规范提示:实际书写规范中B应表示Byte(字节),b应表示bit(比特),但在平时的实际书写中有的把bit和Byte都混写为b,如把Mb/s和MB/s都混写为Mb/s,导致人们在实际计算中因单位的混淆而出错。切记注意!!!实例:在我们实际上网应用中,下载软件时常常看到诸如下载速度显示为128KBps(KB/s),103KB/s等等宽带速率大小字样,因为ISP提供的线路带宽使用的单位是比特,而一般下载软件显示的是字节(1字节=8比特),所以要通过换算,才能得实际值。然而我们可以按照换算公式换算一下:64KB/s=64×8(Kb/s)=512Kb/s=0.5Mb/s即64KB/s=0.5Mb/s128KB/s=128×8(Kb/s)=1024Kb/s=1Mb/s即128KB/s=1Mb/s特别提示:(1)关于bit(比特)/second(秒)与Byte(字节)/s(秒)的换算说明:线路单位是bps,表示bit(比特)/second(秒),注意是小写字母b;用户在网上下载时显示的速率单位往往是Byte(字节)/s(秒),注意是大写字母B。字节和比特之间的关系为1Byte=8Bits;再加上IP包头、HTTP包头等因网络传输协议增加的传输量,显示1KByte/s下载速率时,线路实际传输速率约10kbps。例如:下载显示是50KByte/s时,实际已经达到了500Kbps的速度。切记注意单位!!!(2)用户申请的宽带业务速率指技术上所能达到的最大理论速率值,用户上网时还受到用户电脑软硬件的配置、所浏览网站的位置、对端网站带宽等情况的影响故用户上网时的速率通常低于理论速率值。(3)理论上:2M(即2Mb/s)宽带理论速率是:256KB/s(即2048Kb/s),实际速率大约为103--200kB/s;(其原因是受用户计算机性能、网络设备质量、资源使用情况、网络高峰期、网站服务能力、线路衰耗,信号衰减等多因素的影响而造成的)。4M(即4Mb/s)的宽带理论速率是:512KB/s,实际速率大约为200---440kB/s。===========================pps=============================包转发率标志了交换机转发数据包能力的大小。单位一般位pps(包每秒),一般交换机的包转发率在几十Kpps到几百Mpps不等。包转发速率是指交换机每秒可以转发多少百万个数据包(Mpps),即交换机能同时转发的数据包的数量。包转发率以数据包为单位体现了交换机的交换能力。交换机的背板带宽,是交换机接口处理器或接口卡和数据总线间所能吞吐的最大数据量。背板带宽标志了交换机总的数据交换能力,单位为Gbps,bps(bitspersecond,每秒数据的位数,也叫交换带宽,一般的交换机的背板带宽从几Gbps到上百Gbps不等。一台交换机的背板带宽越高,所能处理数据的能力就越强,但同时设计成本也会越高。所以一般来说二层能力用bps,三层能力用pps,支持第三层交换的设备,厂家会分别提供第二层转发速率和第三层转发速率。另外,讲一下PPS是如何计算的我们知道1个千兆端口的线速包转发率是1.4881MPPS,百兆端口的线速包转发率是0.14881MPPS,这是国际标准,但是如何得来的呢?具体的数据包在传输过程中会在每个包的前面加上64个(前导符)preamble也就是一个64个字节的数据包,原本只有512个bit,但在传输过程中实际上会有512+64+96=672bit,也就是这时一个数据包的长度实际上是有672bit的千兆端口线速包转发率=1000Mbps/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。对于万兆以太网,一个线速端口的包转发率为14.88Mpps。对于千兆以太网,一个线速端口的包转发率为1.488Mpps。对于快速以太网,一个线速端口的包转发率为0.1488Mpps。)那么以后很简单了,其实直接用设备参数中的pps数值乘以672那么就转化成我们比较能理解的大众化的bps概念了。一般销售为了方便大家计算和整数化的理解就改672为500。(包转发线速的衡量标准是以单位时间内发送64byte的数据包(最小包)的个数作为计算基准的。对于千兆以太网来说,计算方法如下:1,000,000,000bps/8bit/(64+8+12)byte=1,488,095pps说明:当以太网帧为64byte时,需考虑8byte的帧头和12byte的帧间隙的固定开销。故一个线速的千兆以太网端口在转发64byte包时的包转发率为1.488Mpps。快速以太网的线速端口包转发率正好为千兆以太网的十分之一,为148.8kpps。对于万兆以太网,一个线速端口的包转发率为14.88Mpps。对于千兆以太网,一个线速端口的包转发率为1.488Mpps。对于快速以太网,一个线速端口的包转发率为0.1488Mpps。)理解了这个后忽然发现网络设备选型原来是那么的简单,我只需要预计网络中的总节点数和带宽需求及流量需求,那么需要的交换机性能型号和路由器型号就呼之欲出了。 注:现在的设备很多是三层交换机,我们看到的参数是分别针对三层模块和二层模块来说的。例如6509就是这样了。数据交换能力是720Gbps,但是路由包转发能力是400Mpps。这里没有矛盾。因为两个数据都不是描述一件事情。为什么一个数据包定为512个bit,为什么不是1024个bit再加上64个字节的preamble?因为根据Ethernet中的标准,以太网最小的包大小为64个字节(即512bit),IP报头固定有20个字节的开销,如果负载小于44个字节的话,在发出数据包前会自动填充至44字节,以保证最少达到64字节IP包目前,很多X86的防火墙厂商都宣称,64bytes小包线速转发,94%……,呵呵,让我们来看看kola关于这个的经典论述:===========================SUMMERY===========================一.线速线速转发是对一个网络中转设备的理想要求。但平时大多数人都关注着设备的bps(bitspersecond,每秒数据的位数),很少人会想到fps(framepersecond,每秒数据的帧数)实际上更考验设备的转发能力。简单的说,bps是指每秒钟有多少字节的数据经过,fps是每秒钟有多少个数据包经过。以10Mb的网络来说,线速时bps为10M,fps最大值为14880。那么这个14880是怎么计算出来的呢?首先我们要知道几个规定:1.以太网内最小的数据包的大小为64字节,它包括4字节的CRC,2字节的以太网类型(或长度),6字节的源Mac地址,6字节的目的Mac地址以及46字节的负荷。2.以太网帧与帧之间至少要有96位(12字节)的帧间隙(IFP,interframegap)以确保区分两个数据包。3.每个数据帧开始之间必须要有8字节的Mac地址前导位(MACpreamble)以确保发送方接收方同步数据位。因此,以太网内最小的数据包实际上是64+12+8=84字节=672位。于是,10M网络环境下pps的最大值就是10M位每秒/672位每包=14480包每秒。同理,我们可以算出10M网络环境下fps的最大值为10M位每秒/((1518+12+8)8)位每帧=812帧每秒而100M网络环境下这两个值分别为148809和8127。二.处理能力我们已经知道了线速情况下最大的fps值,现在我们看看要达到线速所需要的处理能力。假设市面上某防火墙的是X86架构的CII900Mhz的CPU,即每秒钟可以分成900M个时钟周期。于是,在100M的网络环境下,处理一个数据帧所允许的最大时钟周期为:900M时钟周期每秒/148809帧每秒=6048时钟周期每帧也就是说,要达到线速转发,900Mhz的CPU平均要在6048个时钟周期内完成对一个数据包的处理。这只是理想情况,基于x86架构的系统里CPU还要负责各类中断(如系统时钟)的处理,每次中断时都要保存当前的运行状态,切换到中断处理程序,等中断处理完后,再恢复当前状态,切换回原来的处理流程。光是这个切换过程至少都要费上500个时钟周期,还不包括中断处理程序所用的时钟周期。好在这类中断还”不算“频繁,扣除系统这部分开销后,真正分摊到每个数据包的处理时间平均大约还有5500个时钟周期。虽然IntelP3以上级的CPU如CII在设计指令集时已经将大量常用的指令(如两个寄存器相加/减)优化到可以在一个时钟周期内完成,但做为防火墙,更常用的是读/写内存数据(比如要比较源地址,计算IP的校验和等)这类多时钟周期的指令,所以5500个时钟周期内大约只能执行2000条指令。对一个数据包的处理,从为这个数据包分配内存起,依次要检查以太网络协议(如果是RFC1042格式的数据包还要跳过LLC头找真正的以太网络协议),检查IP头、校验和(如果是TCP/UDP协议还要计算对应的校验和),DoS防御,状态检测,NAT规则,安全/统计规则,更新ARP/路由表,选择转发网卡,直到最终把这个数据包添加到发送队列中才算完成。你认为2000条x86的指令能完成这一切吗?另外的一种说法先看看操作系统如何处理包:一般对于高效处理,很少是一个包一个中断的,都是通过轮询方式,比如在freebsd下,高负载情况下,可以设置5000次/s(intel百兆卡,一般够用,至于怎么够用,自己算吧)甚至更高,网卡会将收到的包存放于队列中,等待cpu的主动处理。这样中断数会极大降低。一般好的网卡比如常见的intel百兆卡,(如果没有记错的话,队列大小是32,而8139才4),可以缓冲大量的包,这样cpu的一次中断可以处理多个包。在纯路由模式下,即使有少量的规则,包转发的速度是非常快的,基本可以达到线速的,当然不是100M,所有的网络节点设备都会有延时的,只是多少而已。在防火墙中,消耗cpu的是nat和复杂的规则检测,其他的基本功能消耗cpu比较少,速度非常快,拿过一个包,通过指针定位ip头,根据ip头定位动态规则表(hash检索),比较一下要么丢弃,要么直接送到下层。如果对协议栈了解的话,会知道一个包从网络进入协议栈,大部分流程都是条件判断。arp表,路由表之类的处理也非常快的,记得是3跳命中。再说了还有高速缓冲的,在freebsd中还可以打开fastforward。mbuf使用起来也不像应用层的内存申请使用,不用担心那么耗费指令。对于包效验和,汇编指令编写的,一般需要几十条指令,不会超过百条。三.现实数据2000条指令看起来很多,实际上并不多,举个例子,要完成最简单的A=A+B这个算式最优化的指令也要用上两条:moveax,[val_B]add[val_A],eax未优化的会用上四条:moveax,[val_A]movebx,[val_B]addeax,ebxmov[val_A],eax目前的防火墙的开发大多是在Unix/Linux上完成的,以GCC编译器为例,它的优化效果比商业的编译器如VC/BC差了大概20%,也就是说同一段C代码,用商业编译器能编译成100条指令的话,GCC最好的情况下只能编译成120条指令。实际上,在没有任何包过滤规则或其它配置的情况下,完整的处理一个数据包需要大约14000条指令。所以,根据上面的计算,目前许多X86架构防火墙(PIII800)在100M网络环境下的结果是64byte的情况下达到42%的线速转发能力,即62000fps的处理能力。至于100%,95%,90%以上……',)


  • 编号:1700774187
  • 分类:其他文档
  • 软件: wps,office word
  • 大小:5页
  • 格式:docx
  • 风格:商务
  • PPT页数:43560 KB
  • 标签:

广告位推荐

相关其他文档更多>