# 浅析移动蜂窝网络的特点及其省电方案

蜂窝网络的架构类似于我们常见的蜂窝，是由一个个基站组成的蜂窝，理想状态中我们的蜂窝网络应该是下面这个样子的。当然，现实生活中网络资源分布并没有这么的均匀。![](https://1795314173-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LAdZ7gFz4IllRQpWbzu%2F-LAdZ8MxWrHaExfP4jSI%2F-LAdZUiluZY6BHfvbW3M%2F15fc04330d4afbc4.png?generation=1524337087947695\&alt=media)Wi-Fi 是一种无限局域网技术，Wi-Fi 信号需要有线网来提供，比如我们家里常用的宽带上网，就是将有线信号转换成 Wi-Fi 信号。![](https://1795314173-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LAdZ7gFz4IllRQpWbzu%2F-LAdZ8MxWrHaExfP4jSI%2F-LAdZUinHcgFAwGR6ASZ%2F15fc04330d153396.png?generation=1524337083785853\&alt=media)

## 计费的差异性

我们平时使用的蜂窝网络一般都是按照流量来收费的，比如 10 元 30 M 流量套餐，但是 Wi-Fi 一般都是免费的，为什么会存在这种差异？

Wi-Fi 信号接入互联网需要依靠宽带等有线网络，而宽带这种网络我们已经支付了年费或者包月费用，规定时间内可以在接入测独享宽带资源，必然可以在这段时间内随便使用流量来上网。蜂窝网络是使用运营商的基站等通信设备来进行上网的，在上网过程中需要占用频谱等公共无线资源，而运营商通过一些基础建设提供无线资源来供用户使用，显然用户应该支付相关费用，同时大家都有体会，当多人在同一区域使用蜂窝网络的时候，网络明显就会变慢，这是因为无线资源不足导致。这种共享模式下，使用流量，也就是资源的消耗多少，来进行收费更加合理。

## 资源控制

无线资源是稀有且昂贵的，那么目前移动设备是如何来控制无线资源的呢？这就是下面要讲的 RRC （无线资源控制），RRC 不仅可以省无线资源，还可以为用户省电。

由于不是通信相关领域的开发人员，只阐述个大概意思，RRC 状态机的细节可以[参考这里](https://link.juejin.im/?target=http%3A%2F%2Fwww.vccoo.com%2Fv%2F08a9fc)。RRC 会有相关的状态，我们可以简单的理解为空闲状态和活跃状态，在手机待机的时候就可以看成是在空闲状态，在这个状态会关闭无线信号，当需要数据传输的时候再调整 RRC 的状态为活跃，状态的切换过程需要一定的延迟，这个延迟是我们移动网络数据传输延迟的一部分，是用户可以感知（这个延迟整体分为 RRC 状态切换、DNS 解析、TCP 握手、 SSL 握手、网络传输等）。下图来源于网络，可以一定程度上辅助理解（数据不一定准确）。![](https://1795314173-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LAdZ7gFz4IllRQpWbzu%2F-LAdZ8MxWrHaExfP4jSI%2F-LAdZUjjA5BOv2er0CPZ%2F15fc04330c6e8e76.png?generation=1524337099864694\&alt=media)除了延迟，还要关心移动设备的电量问题。在从空闲状态切换到活跃状态后，活跃状态会维持一段时间，如果没有数据传输会再次进入空闲状态，在活跃状态我们的设备相比是比较耗费电量的。所以对于每次网络请求，我们都要考虑它的合理性，如果频繁切换 RRC 状态，那么活跃状态就会消耗更多的电量。

而对于 Wi-Fi 不存在多状态切换，Wi-Fi 会处于始终开启状态，但是由于 Wi-Fi 的自身机制，在进行大量数据传输的时候反而比移动蜂窝网络更加省电。

## 理论上如何省电呢？

基于刚才的讨论，可以总结出一些理论上的省电方法：

* 避免无效的轮训，轮训会使手机不断的被唤醒，使设备处于高消耗状态
* 如果存在长连接，设置合理的心跳时间，并且不应该无限次重连
* 减少网络数据获取的频次，可以从合并网络请求、预拉取缓存等方面入手
* 对于大数据使用 Wi-Fi 来传输，在稳定性、延迟、电量、流量方面都更加合适

## 参考资料

* [移动网络简介与RRC](https://link.juejin.im/?target=http%3A%2F%2Fwww.cnblogs.com%2Fsyfwhu%2Fp%2F5459110.html)
* [Android性能优化-Battery篇](https://link.juejin.im/?target=https%3A%2F%2Fmy.oschina.net%2Fu%2F3026396%2Fblog%2F823206)
* [移动网络下的性能优化之省电篇](https://link.juejin.im/?target=https%3A%2F%2Fblog.wilddog.com%2F%3Fp%3D948)
* [RRC状态是如何影响手机耗电的？](https://link.juejin.im/?target=http%3A%2F%2Fwww.vccoo.com%2Fv%2F08a9fc)
* [微信终端跨平台组件 Mars 在移动网络的探索和实践](https://link.juejin.im/?target=https%3A%2F%2Fmp.weixin.qq.com%2Fs%2FMezVOuSqy2vuMWiqRGALwA)
