待解决问题
关于设备的:包转发率(吞吐量)的疑问  (进入论坛模式)
离问题结束还有0天0小时  |  提问者:jonas19861202   |  提问时间:2013-5-30 11:46
[attach]211563[/attach]
图片是一页介绍如何计算设备包转发率的PPT

由图中以太网帧结构得知:一个数据包的最小总长度是12+7+1+6+64

那么数据包的最小总长度bit是:(12+7+1+6+64)*8


那么GE口的吞吐量为:1000M/[(12+7+1+6+64)*8]=1.488Mpps


但是这里有个问题就是这个计算方法中数据包采用的是64这个数值,而不是1518

也就是吞吐量计算出来的值是最大值,可实际传输设备中数据长短不一,1.488这个值并没有什么实际意义。

而且如果考虑设备性能,我觉得64~1518这个可变帧长度中,应该使用1518这个值来计算更合理。
问题答案 ( 13 条 )
有意义,设备处理小包和大包的包头开销是相同的,因此用小包计算可得设备的理论最大包转发率,在实际环境中是混合包,肯定会大于这个值。实际上,完整的性能测试中对大包,小包和仿真混合包都要测。
 |  回应该答案 (0)  |  回答者:左看又看   |  2013-5-30 12:54
不管是大包还是小包,当算上20byte的IPG+preamble之后,GE端口的吞吐量用bps来表示的都是一样的,1Gbps。为什么考量设备的性能要用64byte?因为当包长越小,pps就越高,在1秒内交换设备需要处理的次数就越多,包括查表、读写memory等等一系列的操作。很显然,这时候交换设备的性能越好,1秒内的处理次数肯定越多,所以需要用64byte来考量设备性能。
 |  回应该答案 (0)  |  回答者:mabus   |  2013-5-30 12:57
关键在于1518在未达到最大的性能时已经完成了端口线速,你无法衡量真正的性能,一个跑20Mpps的CPU跑满1GE端口,1Mpps的CPU用1518也能跑满GE端口
 |  回应该答案 (0)  |  回答者:is0404wwb   |  2013-5-30 13:15
小包转发时对CPU/NE的开销更大,因此同样吞吐量下,小包的负荷比大包高。
同时给出吞吐量和小包转发率规格,就说明无论何种情况都能达到这个吞吐量;如果给出的规格是吞吐量和大包转发率,则在小包时无法达到这个吞吐量。
 |  回应该答案 (0)  |  回答者:truelance   |  2013-5-30 13:18


我觉得你们都误会我的意思了,我是说:这个吞吐量不是技术手册上的一个实际值,我现在怀疑的是这个1.488没什么含义。首先1G的端口速率是设备固定值,那么如果都安1518来算,显然设备的吞吐量没这么大。也就是这个1.488的吞吐量没什么意义。我并不是在质疑设备性能。
 |  回应该答案 (0)  |  回答者:jonas19861202   |  2013-5-30 15:06


我觉得你误会我的意思了,你想表达的是如果小包都能转发,那大包肯定都能转发。

你的出发点是CPU的性能

而我的意思是:在考虑真正实际情况中,既有大包也有小包,那么这个1.488值是不准确的。

我只是想表达这个1.488吞吐量值的不准确性,而不是去质疑这个计算的合理性
 |  回应该答案 (0)  |  回答者:jonas19861202   |  2013-5-30 15:09


:handshake
 |  回应该答案 (0)  |  回答者:NYT2012   |  2013-5-30 15:12


这个就是最大值啊,就比如说吞吐率是1G,难道只用100M就不行么?
 |  回应该答案 (0)  |  回答者:truelance   |  2013-5-30 15:38


1G是端口速率啊,在通过每个数据包的大小可以算出吞吐量吧?

可是如果数据包按64那个最小的算,那么得出的1.488的吞吐量是不是就是最大吞吐量?

可实际传输中不可能所有数据都是64B的最小值,也就是说实际传输中的吞吐量必然小于1.488这个值对吧?

那么这个1.488吞吐量是不是毫无意义?

我是这个意思啊
 |  回应该答案 (0)  |  回答者:jonas19861202   |  2013-5-30 15:54


有意思。truelance已经把逻辑都讲清楚了。
 |  回应该答案 (0)  |  回答者:NYT2012   |  2013-5-30 16:12
按照最小值计算可以横向比较设备转发性能,这是理论值,但是在实际生产网中往往按照平均包长大小计算的。
 |  回应该答案 (0)  |  回答者:Foxscheduler   |  2013-5-30 16:54


这孩子纠结的让万年潜水的我都看不下去了……
吞吐量数值是要跟包大小绑定的,对于GE端口,说1.488Mpps必然要注明是64bytes包。
但是,吞吐量不是衡量端口速率的参数,而是衡量交换芯片/CPU最大处理能力的参数,你为啥一定要觉得没有意义呢?
就比如同样一个4.0寸的屏,720p的分辨率跟1280p的分辨率,你说有区别么?
 |  回应该答案 (0)  |  回答者:nick0324   |  2013-5-30 17:17


吞吐量不是衡量端口速率的参数,而是衡量交换芯片/CPU最大处理能力的参数

我开始不明白吞吐量是衡量什么的,现在有这句话就不纠结了:L
 |  回应该答案 (0)  |  回答者:jonas19861202   |  2013-5-30 19:23
 
我要回答:  回答字数在10000字以内