16

在 Android 文档页面Optimizing Downloads for Efficient Network Access上,要点是“唤醒收音机很糟糕”、“批量传输”或“搭载 GCM”。那篇文章为好奇的人留下了一些内部工作原理:

  1. 它说:“每次您创建新的网络连接时,无线电都会转换到全功率状态。” 这里的连接是什么意思?那是TCP连接吗?这是否意味着发送 UDP 数据包不会唤醒收音机?

  2. 待机中它说:“待机:没有网络连接处于活动或不需要网络连接的最小能量状态。” 这是否意味着网络模块已完全关闭?如果是这样,即使设备处于睡眠模式,GCM 也如何工作?如果不是,与全功率模式相比,它大约使用多少电池?

  3. “每次您创建新的网络连接时,无线电都会转换到全功率状态。” 这对长寿命的 TCP 连接有什么好处?如果我创建一个 TCP 连接然后继续接收数据包,那么我将不会创建新的网络连接或发送任何数据。这是否允许网络模块进入待机模式?

  4. iPhone的工作方式几乎相同吗?

4

2 回答 2

20

@minhaz 的链接让我开始了漫长的探索,以了解网络层方面的蜂窝网络。所以这里是:

这个问题原来主要是关于 3G 网络是如何实现的。回答中心问题:“那么 GCM 如何在‘空闲状态’中接收消息”可以回答上述所有问题。

简答

是的,在空闲模式下,收音机仍然可以接收有限的“控制信号”。基本上,网络运营商会要求设备切换能量状态,以便能够接收实际的有效载荷。他们用来执行此操作的机制类似于您接收电话或短信的方式。

长答案

事实证明,状态转换是由网络运营商控制的,而不是手机本身。来自资源无线电控制 (RRC);协议规范

8.6.3.3 取决于接收到的信息元素的通用状态转换规则

IE(信息元素)“RRC 状态指示符”指示 UE(用户设备)应进入的状态。UE 应进入由 IE “RRC State Indicator... 指示的状态”

当 RRC 处于空闲模式时,网络运营商如何做到这一点?摘自《3G、4G 及以后:将网络、设备和 Web 结合在一起》一书:

2.2.3.3 无线电资源控制状态

... 空闲状态——未主动与网络通信的设备处于此状态。在这里,他们定期收听寻呼信道以获取传入的语音或视频呼叫和 SMS 消息。

来自子弹中的 LTE

23.1 RRC 连接建立过程总是由 UE 发起,但可以由 UE 或网络触发。...网络通过发送寻呼消息触发RRC连接建立过程。...

因此,我们有它。现在很明显可以看出所有这些是如何联系在一起的。要回答原始问题:

  1. 连接意味着RRC连接。由于 RRC 连接是第 3 层,所有(正常)类型的网络活动,包括 TCP 和 UDP,都将创建 RRC 连接(即“唤醒无线电”)。

  2. 由于收音机仍然需要收听寻呼频道,因此它并没有完全关闭。根据经验,它仍然使用 @minhaz 提供的XMPP 链接所试验的能量。结果,与其他州相比,能源消耗减少了 2 个数量级。

  3. 正如堆栈溢出的各个地方所提到的,显然 TCP 连接是在内存中维护的,并不真正关心底层是否经历了 RRC 重新连接过程。如果 TCP 连接空闲,则可以释放 RRC 连接(即 UE 可以变为空闲)。如果它继续接收数据,网络将不会指示 UE 释放 RRC 连接,因此它不会进入空闲状态。

  4. 由于RRC 属于 UMTS WCDMA,它是 3G 的基础,iPhone 很可能也以类似方式运行。


笔记:

  • 我链接到的资源混合了 3G 和 4G。我怀疑 4G 是一种渐进式改进,因此主要概念可以在它们之间混合使用。

用于更深入理解的资源转储(即上述摘要的来源):

于 2013-10-03T07:06:20.777 回答
2

我不是 SOC 专家,但在这里我通过阅读相同的文档了解。

It said "Every time you create a new network connection, the radio transitions to the full power state." What does connection mean here? Is that a TCP connection? Does that mean sending a UDP packet will not wake up the radio?

通过网络进行的任何类型的数据传输都会唤醒无线电,无论是 UDP 还是 TCP 1 字节还是 1 MB。

In Standby it said: "Standby: The minimal energy state during which no network connection is active or required." Does that mean the network module is completely shut off? If so how can GCM even work even when the device is in sleep mode? If not, roughly how much battery does it use compared to full power mode?

在不唤醒整个收音机的情况下,您仍然可以保持与无线发射塔的连接。我相信这个设计很久以前就是为了节省手机电池而做的,它与Android无关。它可能只为这项工作使用不同的芯片,但我会将这个答案留给 SOC 专家。

"Every time you create a new network connection, the radio transitions to the full power state." How does that gibe with long lived TCP connections? If I create a TCP connection and then just keep receiving packets, then I won't be creating new network connections or sending out any data. Does that allow the network module to go to Standby mode?

要打开 TCP 连接,您总是需要一定程度的握手,这将保持无线电发射器唤醒。TCP 是一种可靠的协议,这意味着传输将在两端进行验证,以避免传输错误。而且,在我们的例子中,这意味着无论如何,系统总是会通过网络发送、接收一些东西。TCP 保持活动还进行网络握手(keep_alive),这意味着如果仍然没有传输数据,它将保持发送器唤醒。

于 2013-10-02T16:47:58.613 回答