Tcp 用户带宽和下载间隔之间的权衡

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通信时,我

我正在设计一个非商业的开源客户端应用程序,它需要定期从服务器下载100 KB的数据,并根据数据变化在客户端应用程序中显示警报。现在我需要在
用户带宽
下载间隔
之间进行权衡

分析,

  • 如果我将
    间隔设置为1小时
    。这意味着应用程序将在1个月内下载
    30*24*100KB=72MB
  • 如果我将
    间隔设置为30分钟
    。这意味着应用程序将在1个月内下载
    30*48*100KB=144MB
  • 等等
  • 现在,我只考虑文件大小,实际上除了数据流之外,还有一部分带宽用于控制流。要从服务器下载100 KB的文件,在分析TCP通信时,我应该考虑控制流的开销带宽是多少是否有关于该主题的指导/参考或研究

    假设,如果控制流使用
    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%。我相信它是或它的继任者之一。也许也有帮助: