PPS(Packet Per Second)是路由设备性能常用的指标,特别是中高端路由器。PPS测试的理论基础可以看IETF的文档。说明一下,TCP/IP协议是由IETF制定的,我们用的internet协议都可以从IEFT上找到,都是公开的标准文档。
当然这个是英文,看起来有点累。
RFC2544是关于测试的标准,业界事实上的工业标准测试工具smartbits的应用程序smart applications 正是根据rfc2544来设计的。这个测试工具得到的结果是吞吐量(以PPS来表示),时延,丢包率和背对背缓冲。
英文表示是 Throughput/Latency/Frame loss rate/Back-to-back frames。所谓的线速是指可以达到最大的包转发能力。由于以太网的包长是不定长的,因此,不同的包长在线速情况下的转发能力是不一样的。rfc2544也建议以下包长做为测试的标准, 64、128、256、512、1024、1280、1518字节。
在rfc2544中给出了10M环境下单向转发的各个包长的理论PPS(参见下图)。在实际测试中,为了充分体现路由器的极端转发能力,测试采用了双向转发的测试,比单向转发的压力增大一倍,路由器的以太网口工作在全双工模式,所以,10M双向转发的PPS是以下图的2倍,百兆接口的双向转发的指标是以下图的20倍。
为什么在这个标准中没有给出常见的Mbps(Mbits/second)来表示呢?因为仅仅给出Mbps还不能充分表达路由器的性能。假设一个路由器在1518字节的时候达到线速,在64字节的时候只有40000 PPS;而另外的一个路由器在所有的包长都可以达到线速,那么这两个路由器如果用Mbps来表示,都是200Mbps。显然,后面的路由器的性能比第一个要强很多。由于PPS是充分反映路由器的性能指标,很多厂商都不太会宣传。Cisco也只在内部公开这些数据。
由于以太网包的CRC,前导码,GAP等,使得每个以太网的包发送时,实际上增加了大约20个字节的其他内容。由此,我们重新计算一下,得到如下的表格。
第一列是每秒单向能转发的包数PPS,第二列是包长,第三列是上面提到的其他占用信息,第四列是第三列和第四列之和,第五列就是第四列乘以第一列乘以8。可以看出,最后的结果在100M了。
业界对线速(wire speed)这个词通常都有很多种解释,最常见的一种观点就是吞吐量达到物力线路时,就说到了线速了,那么,这种说法是否正确?
显然,这种说法是错误的。
线速实际上指的是一种工作状态:线路工作在最大帧传输速率是,我们说这时候达到了线速!
可以看到,在一定的物理介质下,比如100Base-TX 以太网,那么他的理论带宽是一定的,按照上面的定义,只有用64字节(以太网最小帧长)达到100Mbps时,这才说明测试设备(DTU)转发能力能够达到线速。
关于为什么实际测试中64字节计算出来不到100M这个问题,楼主的分析是正确的,真是因为存在开销的原因,实际传输字节数为84,84*148810*8=100M:)
----------------------------------------
追加些MTU的描述跟确认方法
----------------------------------------
MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包,单位是字节。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。不同的接入方式,MTU值是不一样的,下面是常用的几种接入方式默认的MTU值:
网络接入方式 MTU
EtherNet (以太网)1500
PPPoE(ADSL) 1492(这个是通常得网络情况,但实际上呢?!当然有区别的!合理设置网速将会提升到你的最高点)
Dial-up(modem) 576
二、什么情况下需要修改MTU值?
1、某些网站不能正常访问,很难连接,连接上也非常慢。(我这里最难连接的就是VeryCD的BBS了)
2、无法发送包含附件的邮件。
三、如何得出最佳的MTU值?
1、进入 MS-DOS 模式;
2、打入 C:\WINDOWS>ping -f -l 1500 192.168.1.1。
其中192.168.1.1是网关IP地址,1500是数据包的长度。请注意,上面的参数是“-l”(小写的L),而不是“-1”。
如果出现下面信息:Packet needs to be fragmented but DF set,那表示MTU值太大了,需要更小的 MTU 值才行!
3、下面假设我们使用1464测试。C:\WINDOWS>ping -f -l 1464 192.168.1.1,出现的回应信息为:Reply from 192.168.1.1: bytes=1464 time<10ms TTL=128,此时能够Ping通,表示数据包不需要拆包,可以通过网关发送出去。这个MTU值是可行的。不过,建议多试几个值,找出可行的最大MTU值,这可以达到最佳的网络速率。
4、找出 MTU 值:利用上面这个方法找到的数值并不是MTU值,上面这个值加上数据包头28字节,才是我们需要的MTU值,所以,在上面的例子中,我们所需要的MTU 值是 1464+28=1492。
针对普通网络设备的端口,MIB的相关定义是Interface组,主要管理如下信息:
ifIndex 端口索引号
ifDescr 端口描述
ifType 端口类型
ifMtu 最大传输包字节数
ifSpeed 端口速度
ifPhysAddress 物理地址
ifOperStatus 操作状态
ifLastChange 上次状态更新时间
*ifInOctets 输入字节数
*ifInUcastPkts 输入非广播包数
*ifInNUcastPkts 输入广播包数
*ifInDiscards 输入包丢弃数
*ifInErrors 输入包错误数
*ifInUnknownProtos 输入未知协议包数
*ifOutOctets 输出字节数
*ifOutUcastPkts 输出非广播包数
*ifOutNUcastPkts 输出广播包数
*ifOutDiscards 输出包丢弃数
*ifOutErrors 输出包错误数
ifOutQLen 输出队长
阅读(1120) | 评论(0) | 转发(0) |