;
众所周知,千兆以太网标识的传输速度是,那么在实际传输的过程中,能够达到的最大传输速度又是多少呢?这篇文章结合理论计算及实际测试告诉你答案。
这里提供一个计算器来方便计算各网络情况下的速度:
字节(Byte)
比特(bit)
我们在操作系统的许多地方都可以找到,千兆以太网标识的传输速度是,也就意味着在网线等传输媒介中每秒可以传输个比特。换算成字节,并不能简单的除以8,因为Gb与GB并不是简单的8倍关系。
在数据链路层中,RFC894规定,以太网MTU(最大传输单元)为,也就是说一个以太网帧可以携带1500B的数据,加上帧头数据(不考虑的802.1Q标签),帧尾校验码数据,帧前导码(7B前导码+1B帧开始界定符),帧间间隔,传输一个帧实际上要消耗带宽。
如今网络层绝大多数网络设备都使用IP协议,其中IPv4首部固定长度,可选部分最大(这里不讨论),IPv6首部固定长度,因此我们可以很容易得出网络层数据实际传输速度。
在传输层有面向连接的TCP协议,其中首部固定长度,这里不考虑附加字段;面向无连接的UDP协议,其中首部固定长度。
实验使用iPerf3工具测试链路带宽,使用CAT-5e双绞线将2台PC连接至同个交换机,分别以网络层IPv4、IPv6协议,传输层TCP、UDP协议组合,共计4组测试,其中测试UDP协议时,使用参数,指定传输带宽为。
数据链路层
以太网帧
巨型帧*
网络层
IPv4
IPv6
IPv4
IPv6
传输层
TCP
UDP
TCP
UDP
TCP
UDP TCP
UDP
注:*表示尚未进行实际测试
经过测试,理论计算与实验结果完全相同,因此我们可以认为:在一般情况下,所有网络设备均达到千兆标准,且没有发生网络拥塞时,数据实际传输速度约为每秒,此为使用TCP协议在IPv4网络下的结果,大部分网络协议在千兆网络下,例如Samba、rsync、iSCSI等,可以视此结果为极限最大值。基于UDP的其他协议或使用IPv6网络时,可以参考上表的结论;其他速率的网络,可以参考上文的计算方法。实际使用时,由于网络设备可能存在缺陷、发生网络拥塞、发生以太网碰撞,IP协议/TCP协议头部存在其他可选字段等情况,以及应用层协议存在的开销,实际传输速率会存在波动,可能达不到理论最大值。
不难看出,若要提高极限传输速度,那么必须减少网络协议首部的开销,提高数据传输的有效率,即。一个有效的解决方案便是使用巨型帧,可以使得数据链路层的MTU达到,理论上传输速率可以提高到每秒,但是由于网络设备的原因,未能测试巨型帧的情况,有待以后补充。