在进行网络应用的开发过程中,对网络带宽和传输性能的评估及测试是必不可少的。
下面就以当前互联网中广泛使用的TCP/IP协议为例,介绍一下在1Gb的以太网环境中一些性能数据的计算方法。
首先,看一下一个标准以太网帧的帧格式:
802.3 以太网帧结构
前导码 7个octet
帧开始符 1个octet
MAC 目标地址 6 octets
MAC 源地址 6 octets
802.1Q 标签 (可选) (4 octets)
以太类型或长度 2 octets
负载 46–1500 octets
冗余校验 4 octets
帧间距 12 octets
(共计 84(88) ~ 1538(1542)B)
对于1Gb的以太网络来说(以不含802.1Q标签为例):
原始带宽: 1Gb / 8 = 125MB/s
每秒可以传输的数据包数目 : MAX: 125,000,000B / 84B = 1488095.238
MIN: 125,000,000B / 1538B = 81274.382 (不含巨帧时)
TCP/IP报文头部长度: ip_hdl + tcp_hdl + tcp_opl(timestamp) = 20B + 20B + 12B = 52B
TCP协议的最大吞吐率: 81274 * (1500-52)B = 117,684,752 ~ 117MB/s (base on 1000)
or 114MiB/s (base on 1024)
说明:这里的TCP协议最大吞吐率是根据TCP的payload部分长度来计算的,计算公式为:
throughput = packet per second * payload per packet;
其中,
packet per second = 125,000,000B / (38B + 52B + payload per packet);
payload per packet = 0 ~ 1500B - 52B;
稍作转换后如下:
throughput =(1 / (a+x))* x = 1 - a / (a+x); x 代表 payload per packet;
可以看出,随着x的增加,将会获得更好的吞吐率性能。