通过具有以太网带宽的值来正确计算TCP的带宽吗?

时间:2013-09-02 18:22:02

标签: tcp ip ping ethernet mtu

通过具有以太网带宽(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

真正的bandwitdh:

  

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

是真的吗?

1 个答案:

答案 0 :(得分:1)

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