浅析移动蜂窝网络的特点及其省电方案
Last updated
Last updated
蜂窝网络的架构类似于我们常见的蜂窝,是由一个个基站组成的蜂窝,理想状态中我们的蜂窝网络应该是下面这个样子的。当然,现实生活中网络资源分布并没有这么的均匀。Wi-Fi 是一种无限局域网技术,Wi-Fi 信号需要有线网来提供,比如我们家里常用的宽带上网,就是将有线信号转换成 Wi-Fi 信号。
我们平时使用的蜂窝网络一般都是按照流量来收费的,比如 10 元 30 M 流量套餐,但是 Wi-Fi 一般都是免费的,为什么会存在这种差异?
Wi-Fi 信号接入互联网需要依靠宽带等有线网络,而宽带这种网络我们已经支付了年费或者包月费用,规定时间内可以在接入测独享宽带资源,必然可以在这段时间内随便使用流量来上网。蜂窝网络是使用运营商的基站等通信设备来进行上网的,在上网过程中需要占用频谱等公共无线资源,而运营商通过一些基础建设提供无线资源来供用户使用,显然用户应该支付相关费用,同时大家都有体会,当多人在同一区域使用蜂窝网络的时候,网络明显就会变慢,这是因为无线资源不足导致。这种共享模式下,使用流量,也就是资源的消耗多少,来进行收费更加合理。
无线资源是稀有且昂贵的,那么目前移动设备是如何来控制无线资源的呢?这就是下面要讲的 RRC (无线资源控制),RRC 不仅可以省无线资源,还可以为用户省电。
由于不是通信相关领域的开发人员,只阐述个大概意思,RRC 状态机的细节可以参考这里。RRC 会有相关的状态,我们可以简单的理解为空闲状态和活跃状态,在手机待机的时候就可以看成是在空闲状态,在这个状态会关闭无线信号,当需要数据传输的时候再调整 RRC 的状态为活跃,状态的切换过程需要一定的延迟,这个延迟是我们移动网络数据传输延迟的一部分,是用户可以感知(这个延迟整体分为 RRC 状态切换、DNS 解析、TCP 握手、 SSL 握手、网络传输等)。下图来源于网络,可以一定程度上辅助理解(数据不一定准确)。除了延迟,还要关心移动设备的电量问题。在从空闲状态切换到活跃状态后,活跃状态会维持一段时间,如果没有数据传输会再次进入空闲状态,在活跃状态我们的设备相比是比较耗费电量的。所以对于每次网络请求,我们都要考虑它的合理性,如果频繁切换 RRC 状态,那么活跃状态就会消耗更多的电量。
而对于 Wi-Fi 不存在多状态切换,Wi-Fi 会处于始终开启状态,但是由于 Wi-Fi 的自身机制,在进行大量数据传输的时候反而比移动蜂窝网络更加省电。
基于刚才的讨论,可以总结出一些理论上的省电方法:
避免无效的轮训,轮训会使手机不断的被唤醒,使设备处于高消耗状态
如果存在长连接,设置合理的心跳时间,并且不应该无限次重连
减少网络数据获取的频次,可以从合并网络请求、预拉取缓存等方面入手
对于大数据使用 Wi-Fi 来传输,在稳定性、延迟、电量、流量方面都更加合适