关于物联网卡流量统计的那些事儿

对于物联网应用而言,SIM卡流量资费占据整个系统运营成本相当大比重,显得很“金贵”。如果前期评估不当,要么造成卡套餐流量不足,影响业务正常进行,要么付出很大的无效流量成本,虽然一台设备流量有限,但如果几万个设备的小型应用,一个月也要多付出很多流量成本。那么开发者应该如何精确统计流量使用情况,将流量成本压缩到最低呢?

每月实际消耗流量=每天发送次数一次发送实际消耗流量30

这个公式看起来简单明了。但是,也只能大概估算出每月流量,因为设备的联网情况是各异的,无法用一个简单公式的套用求得各种情况的精确值。

以常用的协议TCP为例:

采用TCP协议进行数据业务,并保持长连接,连接不断开,定时发送心跳,服务器不主动下发数据。此场景忽略建立连接时三次握手和连接断开是4次挥手的流量(大约400多字节),在此场景下统计流量。

网络中传输的数据包由两部分组成:一部分是协议所要用到的首部,另一部分需要发送的数据。数据发送完成后服务器还会向终端回复应答信息,格式与发送数据包类似,首部数据长度相同,
以太网首部 IP首部 TCP首部 实际数据
14 20 20

下图为终端向服务器发送数据过程:
在这里插入图片描述

每月实际消耗流量=每天发送次数一次发送实际消耗流量30
一次发送实际消耗流量=发送数据包首部+一次发送有效数据量+服务器应答

比如:一次发送10个字节,一次实际消耗流量=54+10+54=118B
每天发送24次,每次发送10字节数据
每月有效数据消耗流量为=241030=7020B=7020/1024KB=7K
每月实际消耗流量为=24118B30=82080B=82080/1024KB=83KB

实际消耗流量比发送有效数据的消耗流量要大10多倍,虽然协议头等数据无实际意义,但是流量统计无法忽略。

上述事例也是在设定在理想的网络环境条件下,进行的统计,只具有参考意义,实际情况下流量消耗还需要考虑其他多种因素。比如:网络信号的不稳定需要重连,设备的远程升级,平台的指令设置,消息推送等等。

因此,计算流量,应该在多种场景计算平均值,而不是单纯的计算单次用量(计算用电量也是如此,而且还要考虑温度等多种因素)。譬如统计各种情况下的日、周流量,再扩大对应倍数,算的月流量(估)。

怎样才能减少流量消耗呢?改善信号(最大限度避免重连)、优化流程(减少不必要的通信)、选择在满足实际应用场景需要前提下,开销小, 轻量化的符合物联网场景的协议、动态调整心跳包间隔(根据实际场景代码自动调整心跳包间隔,而不是固定间隔心跳包)、压缩通信数据(删除不必要的通信信息,压缩数据),可以有效地减少流量消耗。

发布了32 篇原创文章 · 获赞 0 · 访问量 2208

猜你喜欢

转载自blog.csdn.net/AmazIOT/article/details/104518812
今日推荐