如果我们:
1)计算网络适配器级别的字节/位数(通过NIC的原始位数)和,
2)计算所有HTTP / S请求/响应中的字节数。
假设只有HTTP / S流量,并假设统计相关数量的“典型”网络流量:
我想知道,由于额外的网络开销,NIC级别的流量将比HTTP / S级别(计算http标头和所有级别)计算多少。
答案 0 :(得分:21)
您对HTTP下面的图层一无所知。您甚至不能假设HTTP请求将通过TCP / IP传递。即使是这样,您也不了解网络层添加的开销。或者路由的可靠性是什么以及由于丢弃/重新发送的数据包会产生什么开销。
更新:根据您的评论,这里有一些背面的估计:
maximum segment size(不包括TCP或IP标头)通常在各层之间协商,大小为MTU减去标头大小。对于以太网,MTU通常配置为1500字节。 TCP header是160位,或20个字节。 IPv4 header的固定部分是160位,或20字节。 IPv6 header的固定部分是320位或40字节。因此:
开销= TCP + IP = 40字节
payload = 1500 - 40 = 1460字节
开销%= 2%(40 * 100/1460)
开销= TCP + IP = 60字节
payload = 1500 - 60 = 1440字节
开销%= 4%(60 * 100/1440)
以下是假设:
答案 1 :(得分:9)
使用100Mbit / s以太网,大文件传输速率为94.1Mbit / s。
这是6%的开销。如果您还计算在相反方向上流动的TCP ACK,则它接近9%。对于千兆以太网,开销(百分比)保持不变。假设:TCP / IPv4和文件大小> 100kB。 (在此大小,我们可以忽略初始的HTTP和TCP设置。)
比较下载速率时,请注意从位到字节的因子8。我想没有人会收取以太网前导码或帧间间隙的费用,但“有效载荷”不应按字面意思理解。
计算:有效负载/总体
payload = 1500 - 20 - 32(Ethernet_MTU - IPv4 - TCP)
总体= 8 + 14 + 1500 + 4 + 12(前导码+ Ethernet_header + Ethernet_MTU + CRC + Interframe_gap)
由于以太网现在总是全双工,因此偶尔以相反方式流动的TCP ACK不会改变传输速率。如果为开销每两个数据帧添加一个ACK(这是我在Wireshark中观察到的),则总开销为8.5%。虽然MTU大小通常为1500字节,但在某些网络中可能更小,如果路径中的每个设备都配置了它,则可能更大。
答案 2 :(得分:1)
什么额外的网络开销? HTTP顶部的TLS开销相当于密钥交换。你注意到它主要是处理开销。
http://en.wikipedia.org/wiki/HTTP_Secure#Difference_from_HTTP
下线(在服务器之后)wan accelerator或代理会将您的流量区别对待,因为它不可缓存或可压缩。