我正在开展一个与 IoT 相关的研究项目,涉及多台设备。但是,负责基础设施的项目合作伙伴将每台设备的流量限制为每月最多 500 MB。
为了满足这一限制,我尝试使用非常基本的计算来估算请求和响应的大小。可以找到一些开销估算在 Stackoverflow 上的这个答案中在进行任何间接费用估算之前,答案是:
您对 HTTP 下面的层一无所知。您甚至不能假设 HTTP 请求将通过 TCP/IP 传递。即使是这样,您也对网络层增加的开销一无所知。或者路由的可靠性如何以及丢弃/重新发送数据包将产生哪些开销。
为了获得一些可靠的数字,我考虑在开发设置中进行一些测量,因为我同时在远程设备和服务器上工作。
有没有办法测量完整的响应和请求大小,包括有效负载和任何协议开销?如何确定网络基础设施上的完整数据吞吐量?
答案1
对于 Linux 和其他类 Unix 操作系统,您可以使用伊夫托普实用程序。例如:监控我的路由器 Web 界面:sudo iftop -f 'port 80 and host 172.19.76.1' -iwlan0
-f
--过滤器:port 80
--监控目标主机的80端口and host 172.19.76.1
--目标主机的主机名或地址。-iwlan0
-- [i]接口 wlan0
答案2
我知道这个问题很久以前就被问过了。
理论上获取 HTTP 请求和响应的大小(包括协议开销):
当协议发送应用数据时,数据会被封装成协议数据单元(PDU),一个PDU包括应用数据(Payload)和报头(Header)。
数据包大小 = 应用程序数据 + 报头大小
应用程序产生的总数据=完成一次完整数据传输所使用的所有数据包的总大小。
但实际上我还不知道如何找到尺寸。