今天在Spirent的Ethernet Protocol Reference上看到的一个讲解有效吞吐率的小资料。
假设在以太网上传输的数据frame长度全都为64bytes(当然现实情况一般不会这样……),那么在单位时间内可以传输的最大速率按照下面公式计算:
Line Rate(单位:bps) / ( 8(单位换算:bits/byte)*(64+20)bytes/frame )
如果是100M的以太网,计算结果为148810 frame/秒。公式中的20是指每个frame中的Preamble/SFD(8 bytes)以及每个frame之间的间隔(12 bytes)。
对于以太网传输的有效吞吐率计算公式如下:
Frame size(不含FCS位) * 线路速率(单位:bps) / (Preamble/SFD位长度 + Frame size(不含FCS) + FCS位长度 + 每个Frame之间的间隔)
对应的100M以太网计算:60*100 /(8+60+4+12) 结果约为71.4Mbps
由此可见,在某些情况下,如果在以太网上充斥着64bytes长的小包,传输效率会极度下降。