https://stackoverflow.com/questions/3613989/what-of-traffic-is-network-overhead-on-top-of-http-s-requests
最大段大小(不包括TCP或IP
头)通常在层之间协商为MTU的大小减去头的大小。对于以太网,MTU通常配置为1500字节。 TCP标头为160位或20个字节。 IPv4标头的固定部分是160位或20个字节。 ……因此:
用于TCP / IPv4上的HTTP
开销= TCP + IP = 40字节
有效负载= 1500-40 = 1460字节
开销%= 2%(40 * 100/1460) br />
[ 5] local 10.0.51.1 port 5001 connected with 10.0.51.20 port 45009
[ 5] 0.0-10.0 sec 112 MBytes 94.1 Mbits/sec
[ 4] local 10.0.51.1 port 5001 connected with 10.0.51.94 port 35065
[ 4] 0.0-10.0 sec 1.10 GBytes 941 Mbits/sec
我可以通过将MTU提高到9000来将开销降低到将近2%:
为什么
实际的“带宽损耗”明显大于理论值?
如果公式缺少一些有价值的东西? >
#1 楼
以太网数据包1.5k1500-20 B(IPv4)-20 B(TCP +校验和)= 1460 B DATA(和40 B开销)
添加40 B + 14 B(以太网)+ 4 B(FCS)+ 12 B(帧间间隙)+ 8 B(前导)= 78 B开销
78/1460 * 100 = 5.34%开销
1460 /(1460 + 78)* 100 = 94.93%吞吐量/吞吐量
1,000,000,000(1Gbit)* 94.93%= 949Mbit / s(0.949Gbit / s)
您测量的941Mbit / s给出了(949-941)/ 949 * 100 =理论值与实际值之间的0.84%的误差。
超大数据包9k-理论最大值>
(9000-40) / ( 9000 - 40 + 78 ) *100 = 99.14% (Overhead 0.86%)
1,000,000,000(1Gbit)* 99.14%= 991Mbit / s(0.99Gbit / s)
#2 楼
通常根据总数据大小来计算开销。这样,该数字就与效率值相匹配。 :8 + 12 = 20L2开销-以太网头,FCS = 18
L3开销-IPv4头= 20
L4开销-TCP头= 20
L3最大数据包大小1500导致L1数据总大小为1500 + 18 + 20 = 1538字节,最大L4有效负载大小为1500-20-20 = 1460字节。
开销:78/1538 * 100%= 5.07%
效率:1460/1538 * 100%= 94.93%
9k超大框架(非802.3) ),您将获得
管理费用:78/9038 * 100%= .86%
效率:8960/9038 * 100%= 99.14%
这些是理论上的最佳情况。在现实生活中,您还会有一些硬件和操作系统开销会稍微影响效率值。卸载和多核中断控制等功能可以减少处理开销,并使您更接近理论数字(与高速NIC更为相关)。正如Pieter指出的那样,您所测量的结果看起来很现实。
评论
也许还有慢启动功能的影响,但是我不确定它是否足够大。谢谢。 :)
–没药
15年7月15日在10:35
啊,以太网在帧末尾有一个4字节的FCS,让我将其添加到计算中。
– Pieter
15年7月15日在12:00