关于 Pushmail 那些事儿

公司

2009-07-20 00:05

handspring@Twitter

有什么推送方案?

Pushmail 的意义在于,客户端不再是定时或手动发起收取邮件的动作,而是通过服务器的新邮件通知来触发收取邮件这一行为。
在我们常用的公司局域网或固网宽带上,这一创新的意义并不大,因为流量多数都是按月来收取,带宽也不是什么问题,但是相反在移动网络中,流量的资费以及带宽的限制,使得这一方式赢得了移动用户的欢心。
Pushmail 采用的通知协议主要有两种,一种是通过短信的形式来通知客户端收取邮件,RIM 和一些 Pushmail 服务商采用这类方式;另一种是通过在在一个已有的 TCP 连接中发送通知数据包的方式来触发客户端收取邮件, Gmail 和一部分 Pushmail 服务商采用这类方式, IMAP IDLE 是这类方式中知名度和应用较为广泛的一个。

IMAP IDLE 模式是 IMAP 协议的一项高级功能,在这种模式下,客户端登录连接服务器后并无主动查询新邮件的动作,而是停留在 IDLE(空闲)状态,当服务器接收到新邮件后通知客户端,客户端再开始查询新邮件的动作,此动作完成后,客户端重新回到空闲状态。使用 IMAP IDLE 模式的好处是,服务器收到新邮件时客户端马上就会收到通知。这种推送方式需要长期在线连接。

而不支持 IMAP IDLE 的客户端或者服务器,检查新邮件是靠客户端手动刷新或者定期查询(比如每 5 分钟),这种方式查询新邮件会有时间延迟,如果新邮件没有赶上上次查询,必须等到客户端下次查询时才能收到通知。

使用 IMAP IDLE 功能需要第三方软件的支持,因为服务器在客户端没有登录的情况下不知道如何把邮件推送到你的手机,而且服务器只会通知客户端有新邮件,而下载新邮件的工作还需要客户端完成的,并且这个过程中客端必须一直保持与服务器的连接才能收到通知进而完成下载邮件 的工作,所以,这也正是为何很多人说 IMAP IDLE 是伪 Push 的原因。

IMAP 有什么缺点?

IMAP IDLE 诞生已久,对于手机来说,这是不需要运营商或第三方介入最佳的移动邮件解决方案之一。但是 IMAP IDLE 主要有 3 个缺点:
1. 效率不高,IDLE 只是起到通知的作用,具体的邮件体收取动作仍然由手机发起完成。IMAP 在邮件收取上没有一些 Pushmail 服务提供商的私有协议高效,主要表现在传输过程的数据包压缩率上。
2. 在 2G 的网络中, 长时间保持在线会影响用户的通话以及短信收发,因此 Pushmail 服务提供商所提供的短信触发功能更加实用。
3. IMAP IDLE 会对邮件服务器造成巨大的压力。
不过作为 IMAP 的一个变形协议,Push-IMAP 较为有效的解决或缓解了上述几个问题,但应用于移动网络还需待以时日。

RIM 为何采用短信通知的方式?

BES 的方式是从 2G 网络延用下来的,但不论是短信触发还是用户长时间在线,用户体验上差别不大。只是使用短信触发成本较高,也只有 BB 这么高的月费才能负担得起。
实际上你去看 RIM 的 3G 终端策略,他是所有的手机厂商里推出 3G 手机最晚的之一,大概就比 iPhone 3G 早一点。因为单纯使用邮件的话, BB 终端对 3G 的需求没那么大。
而 IDLE 是非运营商或第三方中转的最佳方案之一,Exchange 搭建成本太高。
短信触发一般都会需要通过运营商或第三方服务,这个在大规模运营的时候是一块不小的成本。
考虑到 3G 下便宜的流量资费,在国外多数第三方 Pushmail 服务商都避免使用短信触发方式,来降低用户的使用成本和自身的运营成本。

但 RIM 采用短信触发的方式是有历史渊源的,在 RIM 起家的北美市场, CDMA2000 网络占据了将近 50% 的份额,在 CDMA2000 网络下。如果数据通信保持长连接,那么即便没有数据在传送,短信和电话也都是无法进入。这就注定了,长连接方式无法应用在 CDMA 网络。
相反在 GSM 网络下,只有在手机的 GPRS 连接在传输数据时,才偶尔会有电话或短信进不来的现象,多数情况下如果网络侧侦测到有电话进来,会将数据连接占用的信道暂时挂起,分配给电话或短信。这也就是为什么我们会看到手机左上方的双向箭头有一个/的标记。

关于 Nokia 的 Pushmail 支持

1. 目前支持 IMAP IDLE 协议的手机很多,S60 的自带邮件客户端基本上都支持,只是自带的邮件使用界面实在简陋到令人发指的地步。
2. Nokia Messaging 有点类似于 BIS 的解决方案,Nokia Messaging 本身并非邮件服务器,也不支持 POP3 或 IMAP IDLE 协议,因此在 Nokia Messaging 与其客户端程序之间所通讯的协议为 Nokia 自己研发,同时也支持短信触发,只是并未启用该功能,因此你可以发现 Nokia Messaging 在手机的客户端与手机自带的完全不同。

补一张数据传输量的对比图,就可以看出相比于 Nokia Messaging 或 BB, IMAP 和 POP3 实际是属于效率比较低的邮件传递协议。

Original 是指原始数据的大小,然后测算通过不同的设备或协议来收取这些邮件所耗费的流量。Nokia Messaging 所使用的协议解释见上。

短信触发和长时间在线,哪个更优?

对于短信触发或保持连线方式电力消耗的对比,曾经有人做过评估,结论如下:

According to our past experience, because creating the PDP context is so power-hungry (about the same as establishing a call), a permanent TCP connection is more power-efficient for users who are getting about 15-20 emails per day.
Ideally, when SMS push is available for a carrier, users who have statistically sent/received more than 20 emails daily should automatically be switched to TCP push and vice-versa。

结论:
在 2G 网络中,数据语音不可同时使用。
采用短信触发有助于减轻网络的压力,电力消耗取决于邮件数量。
长连接:电力消耗同样取决于邮件数量,日均 20 封以上比短信触发更优,但是实际上 2G 不支持数据和语音同时传输,手机功能变得不可靠。

但是随着 3G 时代的来临,情况也发生了一些变化。3G 下语音和数据有单独的信道,互不干扰,也就是说你在打电话的同时照样能够上网。
短信触发方式,耗电量与 2G 下相同,邮件数据多仍然费电。
采用长连接方式,由于语音和数据信道分离,虽然建立数据连接的过程依然是需要的, 只是不会相互干扰。 所以如果邮件较多,长连接会比短信触发更省电,因为省去了反复建立数据连接的初始过程。

在 3G 日益盛行的今天,带宽不再是瓶颈,流量资费也日趋下降,因此多数用户选择 BB 不会仅仅因为它有良好的邮件体验 (公司用户例外), BB 的设计和易用性占了更大的比重。

论坛讨论:http://bbs.ifanr.com/viewthread.php?tid=1971&extra=page%3D1

登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中