查看 TCP 数据包的结构,例如此处讨论的:移动电话呼叫数据包/数据报的内部结构是什么?, 这表示 TCP 数据包大小为 192 字节,不包括数据。
从 StackOverflow 上的答案(https://stackoverflow.com/questions/2613734/maximum-packet-size-for-a-tcp-connection),我看到数据的大小是可变的,最大为 64KB,但实际上不能超过 1500B(根据其中一个答案)-我认为这是在相当不错的网络上。
然后在 Wikipida ( https://en.wikipedia.org/wiki/Maximum_segment_size ) 上,我看到出于实际原因,限制为较小尺寸的 TCP 数据包将避免 IP 碎片 - 我想这对于较差的网络质量是可取的。
如果我在具有高延迟 (400 毫秒) 的网络上使用移动设备,是否可以估算传输 1MB 的 HTTP 有效负载所需的 TCP 数据包数量?
我对网络的理解是,您可以计算通过这种连接传送所有数据包所需的时间。
即 1000 个数据包 * 400 毫秒延迟(即 400 毫秒 RTT - 我理解的延迟通常是指 RTT)= 至少需要 400 秒才能传送 HTTP 负载。
但这并没有考虑到吞吐量。如果该计算(至少在原则上)是正确的,那么增加吞吐量(即将连接从 1mbps 升级到 10mbps)将如何影响 1MB HTTP 有效负载的交付?
它会允许增加 TCP 段大小吗?如果是这样,这是通过 TCP 应用程序自动完成的吗?