云消息服务如何到达NAT /防火墙后面的设备?


8

使用具有本地IP的设备获取推送通知效果很好。我只是想知道它是如何工作的。只是uPnP吗?设备开始与云消息传递服务进行通信,然后启动IGD?因此,映射保持不变。推送通知客户端是否与云服务器保持稳定的连接?我想事实并非如此。

我特别对推送通知如何知道到达NAT或防火墙后的设备的方式感兴趣。是否存在Google推送通知无法访问设备的情况?

Answers:


6

您可能会想到,Google在实现细节方面非常安静。因此,我将以一般情况和非常基本的形式对此进行描述。

推送的方式是客户端(即电话)打开到消息传递服务器(例如Google)的TCP连接。只要打开手机,此连接就将保持打开状态。幸运的是,TCP连接在不传输任何内容时绝对不使用带宽,因此它不会浪费大量数据,无线电发射机可以关闭电源,等等。

该连接可以无限期保持打开状态,但是在NAT之后,NAT基础结构会保留正在处理的打开连接表,并丢弃闲置了一段时间(通常为10-15分钟)的连接。两端均未收到此通知。因此,这可以通过发送TCP保持活动数据包来处理,该数据包刷新运营商NAT连接表中的条目。这仅花费大约50个字节左右,并且仅需要每隔几分钟执行一次。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.