在用户带宽和下载间隔之间进行权衡。

问题描述 投票:1回答:1

我正在设计一个非商业性的开源客户端应用,它需要下载的数据正好是 100 KB 并根据数据变化在客户端应用程序中显示警报。现在我需要在 user bandwidthdownload interval.

分析:

  1. 如果我设置了 interval = 1 hour. 这意味着在1个月内应用程序将下载 30*24*100KB = 72MB.
  2. 如果我设置 interval = 30 mins. 这意味着在1个月内应用程序将下载 30*48*100KB = 144MB.
  3. 以此类推。

现在,我只考虑了文件的大小,在实践中,除了数据流,还有一部分带宽用于控制流。对于下载的文件大小正好是 100 KB 从服务器。我应该考虑控制流的开销带宽是多少? 在我对TCP通信的分析中?有没有什么指导性的参考资料? 或对该主题的研究?

假设,如果 10KB 用于控制流量,每月总使用量将包括14.4MB的额外数据,这需要在我的分析中确定。


请注意,我只分析了客户端应用部分。 (1) 我只限于分析客户端应用部分。(2)目前服务器端还不能做任何改动(即基于拉式到基于推式,部分数据变更api等不能应用。). (3)我只能用TCP下载文件。(4) 虽然在实践中不常考虑这么多的粒度,但我们假设,对于我的案例,分析需要这么多的粒度,我需要知道数据与控制带宽的比例。

tcp architecture software-design bandwidth system-design
1个回答
3
投票

如果你只问TCPIP部分,那么IPv4的payloadPDU比是14601500,IPv6的payloadPDU比是14401500,假设MTU为1500字节(来源。这个已经提到的讨论, 此番对话, 本篇).

我还发现 这个网页真不错 允许您查看任意协议栈的所有头大小,以及 本论文.

然而除了协议头之外,还有更多的影响会降低带宽。

  • TCP会发送额外的信息,例如在建立连接时进行握手。
  • 可能会发生重传数据的情况。
  • 实际的帧大小是在较低的通信层上协商的,所以TCP段可能比假设的小。

总之,这个问题不容易准确回答,因为在传输过程中,有一些影响因素是你无法控制的。

你是否考虑过要 衡量 传输一个(或多个)100KB的有效载荷块所需的实际数据量,而不是进行理论分析?

© www.soinside.com 2019 - 2024. All rights reserved.