Tcp 用户带宽和下载间隔之间的权衡
我正在设计一个非商业的开源客户端应用程序,它需要定期从服务器下载100 KB的数据,并根据数据变化在客户端应用程序中显示警报。现在我需要在Tcp 用户带宽和下载间隔之间的权衡,tcp,architecture,software-design,bandwidth,system-design,Tcp,Architecture,Software Design,Bandwidth,System Design,我正在设计一个非商业的开源客户端应用程序,它需要定期从服务器下载100 KB的数据,并根据数据变化在客户端应用程序中显示警报。现在我需要在用户带宽和下载间隔之间进行权衡 分析, 如果我将间隔设置为1小时。这意味着应用程序将在1个月内下载30*24*100KB=72MB 如果我将间隔设置为30分钟。这意味着应用程序将在1个月内下载30*48*100KB=144MB 等等 现在,我只考虑文件大小,实际上除了数据流之外,还有一部分带宽用于控制流。要从服务器下载100 KB的文件,在分析TCP通信时,我
用户带宽
和下载间隔
之间进行权衡
分析,
间隔设置为1小时
。这意味着应用程序将在1个月内下载30*24*100KB=72MB
间隔设置为30分钟
。这意味着应用程序将在1个月内下载30*48*100KB=144MB
10KB
,则每月总使用量将包括14.4MB额外数据,需要在我的分析中确定
注意:(1)我仅限于分析客户端应用程序部分。(2) 此时无法对服务器端进行任何更改(即,无法应用从拉式到推式、部分数据更改api等)。(3) 我只能使用TCP下载该文件。(4) 尽管在实践中通常不会考虑这么大的粒度,但让我们假设,在我的案例中,分析需要这么大的粒度,我需要知道数据与控制带宽的比率。
如果您只要求TCP/IP部分,则对于IPv4,有效负载/PDU比率为1460/1500,对于IPv6,为1440/1500,假设MTU为1500字节(来源:,) 我还发现,它允许您查看任意协议堆栈的所有头大小,并允许您使用 但是,除了协议头之外,还有更多降低带宽的效果:
- TCP将发送额外的消息,例如在建立连接时执行握手
- 可能会发生数据的重新传输
- 实际帧大小在较低的通信层上协商,因此TCP段可能比假设的小李>
您是否考虑过测量传输一个(或多个)100KB有效负载块所需的实际数据量,而不是进行理论分析?可能适合,但不幸的是,我在该网站上没有太多的声誉来提出这个问题。如果可能的话,有人可以移动。我认为Vern Paxson在20世纪80年代写的一篇论文表明TCP的效率最高可达83%。我相信它是或它的继任者之一。也许也有帮助: