我正在设计一个非商业性的开源客户端应用,它需要下载的数据正好是 100 KB
并根据数据变化在客户端应用程序中显示警报。现在我需要在 user bandwidth
和 download interval
.
分析:
interval = 1 hour
. 这意味着在1个月内应用程序将下载 30*24*100KB = 72MB
.interval = 30 mins
. 这意味着在1个月内应用程序将下载 30*48*100KB = 144MB
.现在,我只考虑了文件的大小,在实践中,除了数据流,还有一部分带宽用于控制流。对于下载的文件大小正好是 100 KB
从服务器。我应该考虑控制流的开销带宽是多少? 在我对TCP通信的分析中?有没有什么指导性的参考资料? 或对该主题的研究?
假设,如果 10KB
用于控制流量,每月总使用量将包括14.4MB的额外数据,这需要在我的分析中确定。
请注意,我只分析了客户端应用部分。 (1) 我只限于分析客户端应用部分。(2)目前服务器端还不能做任何改动(即基于拉式到基于推式,部分数据变更api等不能应用。). (3)我只能用TCP下载文件。(4) 虽然在实践中不常考虑这么多的粒度,但我们假设,对于我的案例,分析需要这么多的粒度,我需要知道数据与控制带宽的比例。
如果你只问TCPIP部分,那么IPv4的payloadPDU比是14601500,IPv6的payloadPDU比是14401500,假设MTU为1500字节(来源。这个已经提到的讨论, 此番对话, 本篇).
我还发现 这个网页真不错 允许您查看任意协议栈的所有头大小,以及 本论文.
然而除了协议头之外,还有更多的影响会降低带宽。
总之,这个问题不容易准确回答,因为在传输过程中,有一些影响因素是你无法控制的。
你是否考虑过要 衡量 传输一个(或多个)100KB的有效载荷块所需的实际数据量,而不是进行理论分析?