通过以太网的带宽值来计算TCP的带宽是否正确?

通过以太网的带宽值来计算TCP的带宽是否正确?,tcp,ip,ping,ethernet,mtu,Tcp,Ip,Ping,Ethernet,Mtu,通过以太网带宽值(以太网\u带宽)正确计算TCP(TCP/IP)带宽吗 生产带宽的一部分(标头除外): 生产带宽的部分=(MTU-40)/MTU 在一秒钟内回复所需的时间: 回复所用的时间=(以太网带宽/TCP接收窗口)*ping 部分生产时间(预期回复除外): 生产时间的部分=(1-回复时间)/1 Real bandwitdh: real\u bandwitdh=以太网带宽*部分生产带宽*部分生产时间 或: 例如: ethernet_bandwidth = 1 Gbit/s = 125 000

通过以太网带宽值(以太网\u带宽)正确计算TCP(TCP/IP)带宽吗

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

生产带宽的部分=(MTU-40)/MTU

在一秒钟内回复所需的时间:

回复所用的时间=(以太网带宽/TCP接收窗口)*ping

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

生产时间的部分=(1-回复时间)/1

Real bandwitdh:

real\u bandwitdh=以太网带宽*部分生产带宽*部分生产时间

或:

例如:

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

这是真的吗?

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

但是如果我们使用
选择性确认(RFC 2018)
,它关闭慢启动并禁用窗口大小变化,那么我的计算结果接近于事实?我想从理论上理解,如果没有数据包丢失,为什么速率会显著降低。你能确认SACK关闭慢启动并禁用窗口大小的变化吗?请你给我指一下文件(如果可能的话,页码/段落号)。据我所知,SACK只是提供了一个更广泛的ACK,最多包含3个丢失的数据包。即使使用SACK,TCP也不会恢复到使用本地LAN参数。TCP是一种端到端传输协议,使用慢启动/拥塞避免/恢复,它间接估计带宽。顺便说一句,TCP的一个变体称为TFRC,它确实估计带宽:。它仍然不使用LAN特性,而是使用数据包丢失、RTT和超时。
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