1、什么是负载
负载的意思就是单位时间内通信设备所承受的帧数或者报文数。说直白点,就是平常如果使用testcenter打流时你设置的往设备里面发的流量大小(单位可能是bps或者fps),比如testcenter上设置的流量大小为1000Mbps,那么此时对于通信设备来说,其负载就是1000Mbps或者根据包长换算成pps的单位。
对于通信设备来说,在理想情况下,设备的转发能力或者转发速率应该是随着负载的增加而成线性增加的,(也就是说当我向设备打流速率从100fps提升到1000fps时,理论上来说设备应该能够全部正常转发这些流量,所以其转发速率也应该能从100fps提升到1000fps);但是这只是理想情况下,实际情况是随着负载的增加,设备cpu的处理能力以及报文过多产生的拥塞都会导致丢包,此时可能会导致设备的转发速率急剧下降。
2、什么是吞吐量
吞吐量的定义是在没有丢包的前提下,设备所能达到的最大转发速率值。从定义可以看出来,吞吐量指标必须是在没有丢包的前提下测试出来的。RFC2544上对吞吐量的测试有明确的指示,testcenter上也有专门测试吞吐量的程序,其测试方法大概就是使用二分法来找到没有丢帧情况下的最大转发速率(就是先以100%的负载打流,如果出现丢包,再以50%的负载打流,如果出现丢包,再以25%的负载打流。。。以此类推)。
3、什么是最大转发速率
最大转发速率的定义是设备所能达到的最大转发速率值。最大转发速率跟吞吐量很容易搞混,但是如果紧抓住定义,就比较好理解了。吞吐量是没有丢包的前提下的最大转发速率,而最大转发速率则不关心丢不丢包,用下面一张图就能很好的解释清楚这两者的区别。
转发速率和负载的关系图从图中可以看出,在直线部分,随着负载的增加设备的转发速率应该是成线性增加的;当负载在Load_T和Load_MaxF之间时,出现了第一个临界点,因为此时出现了丢包(能看出丢包是因为转发速率跟负载不相等,丢包数就是用Y-X),故Load_T点对应的转发速率其实就是吞吐量;在该阶段虽然出现了丢包,但是转发速率还是随着负载的增加而增加的;当负载超过Load_MaxF时,出现了第二个临界点,因为此时转发速率开始随着负载的增加而下降,故Load_MaxF点对应的转发速率其实就是最大转发速率。
4、接口线速转发的包速率
线速转发是指在满载的情况下,无任何丢帧的转发速率。以一个全双工GE接口为例,其接口的速率为1000Mbps,通常计算接口线速转发速率时会以最短包长(也就是64字节)来进行计算,那么此时包转发速率的计算公式就是:1000Mbps/(8*(64+12+8))=1.488Mpps。也就是说一个ge口,当处理64字节包长的报文时,其能达到的最大线性转发速率是1.488Mpps。
这里对该公式做一个简单的说明,(64+12+8)的意思是在以太网中的报文发送出去时,在每个报文之间都会有12字节的帧间隙以及8字节的前导码,加起来一共20字节的开销,这些开销是不算在报文内的。所以在testcenter中设置流量大小时,当设置流量为1024000bps时,如果包长是固定128字节的话,此时包速率应该是1024000/8/128=1000fps,但是你会发现在testcenter上看到的流量大小却不是1000fps,而是1024000/8/(128+12+8)=864fps,也就是说testcenter上设置的速率会把20字节的帧间隙跟前导码计算进去,这点需要注意。
网友评论