0

通过以太网的带宽(ethernet_bandwidth)的值是否正确计算了TCP(TCP / IP)的带宽?

部分生产带宽(标头除外):

part_of_productive_bandwidth = (MTU - 40)/MTU

一秒内回复所需时间:

time_took_for_reply = (ethernet_bandwidth/TCP_receive_window)*ping

部分生产时间(期望回复除外):

part_of_productive_time = (1 - time_took_for_reply) / 1

真实带宽:

real_bandwitdh = ethernet_bandwidth * part_of_productive_bandwidth * part_of_productive_time

或者:

real_bandwitdh = ethernet_bandwidth * (MTU - 40)/MTU * 
    (1 - (ethernet_bandwidth/TCP_receive_window)*ping)

例如:

ethernet_bandwidth = 1 Gbit/s = 125 000 000 B/s
MTU = 1500 B
TCP_receive_window = 128 KB = 131072 B
ping = 0.001 sec

real_bandwitdh  = 125 000 000 * (1500-40)/1500 * (1 - (125 000 000/131072)*0.001) = 
    125 MB/s * 0.973 * 0.046 = 5.59 MB/s

这是真的吗?

4

1 回答 1

1

为什么不坚持使用 TCP 层统计信息?发送的数据包数 * MTU 除以所用时间。基本上,TCP 层没有明确考虑任何带宽。整个发送速率估计(又名窗口大小变化)是基于有多少数据包(在什么阶段 - 慢启动,拥塞避免)通过而没有重传。

于 2013-09-03T06:25:59.537 回答