使用LTE-M的eDRX模式时,TCP连接是否仍然打开?

物联网 联网 能量消耗
2021-06-14 05:02:35

我们目前有一个 IoT 设备,它使用 2G 上的原始 TCP 连接连接到我们的服务器,并且该设备有时会发送“保持活动”-ish 消息,正如我们所见,它消耗的电池更少,而不是每次我们需要发送消息时重新打开连接(~每 1 到 5 分钟一次)

我们正在考虑切换到 LTE-M,特别是因为我们已经看到 eDRX 模式可以让我们节省大量电池寿命,但是我有以下问题:

在 eDRX 模式下,TCP 连接是否仍然打开,即如果我从服务器发送一些数据,客户端会在唤醒时收到它吗?

1个回答

是的,当使用 LTE-M 的 eDRX 模式时,TCP 连接仍然打开,但根据您使用的运营商,会有一些复杂情况。

首先,从服务器向移动设备发送数据永远不会立即唤醒移动设备。移动设备将在下一个 eDRX 间隔唤醒(尽管其他一些非蜂窝事件也可能导致它更快唤醒)。

现在,令人困惑的部分是您的移动设备在下一个 eDRX 间隔唤醒时是否会从服务器接收数据。GSMA LTE-M部署指南中的第6.2节和6.4其实讨论了这个。令人不安的一行在第 6.4 节中:

因此,这意味着如果 LTE-M 设备处于 PSM 或 eDRX 中,移动终止消息,取决于 MNO 的选择,消息将被缓冲或丢弃

换句话说,蜂窝服务提供商(例如 Verizon、AT&T 等)可以决定他们是要缓冲 TCP 数据包以在您的设备稍后唤醒时转发它,还是只是丢弃它们。

即使是在 eDRX 睡眠期间缓冲数据的运营商,它们也往往有几分钟数量级的时间上限。

但是,您的服务器可能不知道 eDRX 连接的间歇性性质,并且会执行正常的 TCP 重试,并且总是有可能在 eDRX 窗口期间发送这些重试之一并连接到移动设备. 发生这种情况时,即使在确实丢弃数据的网络上,它看起来也“正常工作”,但这比其他任何事情都更幸运。(缩短 eDRX 周期时间并在服务器上使用更快的 TCP 重试率都将提高您在此设置中的运气。)