直推技术使用 Exchange
ActiveSync 来保持 Windows Mobile 驱动的设备上的数据与 Microsoft Exchange
服务器上的数据同步。它不再依赖 SMS 来进行通知。
直推技术 直推技术由两部分组成:一部分位于设备(客户端)上,另一部分则位于 Exchange Server 2007 邮件服务器上。以下列表介绍了该技术的这两个部分:
- Windows Mobile 6 驱动的设备。设备上的 ActiveSync 技术管理与 Exchange 服务器的直推通信。它会在指定的时间建立与服务器的 HTTP 或 HTTPS 连接,然后进入睡眠状态,等待服务器响应。服务器的响应有两种状态,即表明收到新项目或没有新项目到达。然后,设备会发送一个同步请求或另一个直推请求。发生的频率是动态调整的,依据是 OEM 或移动运营商设置的参数,以及 HTTP 或 HTTPS 连接可以在运营商的网络和客户的企业网络上闲置保留的时间长度。
- Exchange Server 2007(安装了客户端访问服务器角色)。此版本的 Exchange 服务器包括直推组件,它支持手动和计划的同步,是对 Exchange ActiveSync 基础结构的补充。一旦信息到达服务器,Exchange Server 便使用基于 IP 的通知向设备传递电子邮件、联系人、日历和任务更新。
当服务器上的数据更改时,更改会通过永久 HTTP 或用于直推的 HTTPS 连接传输至设备。移动运营商网络中的超时值指定了永久连接可以在不活动状态保留多久。
为防止此连接在两次更新之间超时,设备会在服务器响应时重新发出一个请求。这个定期的传输称为检测信号。检测信号是为了直推而保留到服务器的连接;每个检测信号都会提醒服务器,设备已经准备好接收数据。
直推过程 直推通信看起来象一些发往某个 Internet 网站的小型 HTTP 请求,而该网站又需要很长时间才发出响应。Microsoft 建议使用安全套接字层来对数据包的内容进行加密,使之难以通过探查来识别直推通信。
下面的步骤说明了直推的过程:
客户端向某个 Exchange 服务器发出一个 HTTP 消息(即 ping 请求),让服务器报告在指定的时间限制内用户的邮箱是否发生任何变化。在这个 ping 请求中,客户端指定 Exchange 需对其变化进行监视的文件夹。通常是收件箱、日历、联系人和任务。
当 Exchange 收到此请求后,它会监视指定的文件夹,直到发生下列情况之一:
- 超过时间限制。时间限制是由网络路径中最短的超时决定的。如果发生这种情况,Exchange 会向客户端发出一个“HTTP 200 OK”响应。
- 文件夹之一发生变化,如邮件到达。如果发生这种情况,Exchange 会向请求发出一个响应,并会标识出发生变化的文件夹。
客户端会通过下列方式之一对来自 Exchange 服务器的响应作出反应:
- 如果收到“HTTP 200 OK”响应,表明没有发生任何变化,它会重新发出 ping 请求。
- 如果收到除“HTTP 200 OK”外的其他响应,则它会针对每一个发生变化的文件夹发出一个同步请求。同步完成后,它会重新发出 ping 请求。
- 如果在指定的时间内没有收到来自 Exchange 服务器的响应,则它会减少 ping 请求中的时间间隔,然后重新发送请求。
直推调整 在直推过程中,设备会先等待连续的往返,然后再尝试调整用来保持开启与服务器连接所需的时间量。在向客户端发送“OK”前,服务器要等待个人信息管理器 (PIM) 的变化或新邮件到达的时间量称为检测信号间隔。
检测信号间隔是由客户端指定的,并作为 ping 请求的一部分发送。检测信号以默认的频率开始。然后,客户端上的直推算法会对检测信号间隔进行动态调整,以保持检测信号之间在不超过超时值前提下的最长时间。调整的依据是网络条件、HTTP 或 HTTPS 连接可以在运营商的网络和客户的企业网络上闲置保留的时间长度,以及移动运营商可以指定的一些设置。
为确定最佳的检测信号间隔,算法会保存 ping 请求的日志。如果 ping 请求收到响应,则算法会增加间隔。如果在间隔结束时没有收到响应,则客户端会确定网络超时,并降低间隔。
使用此算法,客户端最终可以确定无线网络和公司防火墙上可能的最长闲置连接时间。
下图显示了在客户端和 Exchange 服务器之间典型的直推通信期间,检测信号间隔是如何得到调整的。
图中的“T”表示时间推移。
下面的步骤对通信进行了说明。编号对应图中的编号:
客户端醒来并通过 Internet 向 Exchange 服务器发出一个 HTTP 请求,然后进入睡眠状态。
为了让会话保持活动状态,请求会注明检测信号间隔,也就是服务器在向客户端发送“OK”信息前等待 PIM 变化或新邮件到达的时间量。在此图中,检测信号间隔是 15 分钟。
由于在检测信号间隔期间没有邮件到达,因此服务器返回“HTTP 200 OK”。
在本例中,由于运营商网络或企业网络都无法保持长期的 HTTP 连接,因此失去了响应;客户端将永远无法收到它。
客户端在检测信号间隔末尾加 1 分钟(总共为 15 + 1 = 16 分钟)后醒来。
注意:
设备会等待连续的往返,然后再尝试调整检测信号间隔。算法中的调节组件可以将增量变为与指定的量不同的值。
如果是连续往返而没有收到来自服务器的响应,则客户端会发出一个更短期的请求(8 分钟)。
在本例中,由于检测信号在上一次 ping 期间没有增加,因此检测信号被更改为最低的检测信号值(8 分钟)。
由于在检测信号间隔期间没有邮件到达,因此服务器返回“HTTP 200 OK”。
服务器的响应唤醒了客户端。由于连接在间隔期间没有超时,因此客户端确定网络支持闲置的连接至少可以达到这段时间。
如果是连续的往返,则客户端会决定可以增加下一次请求的间隔。
直推对网络和 Exchange 服务器的影响
设置检测信号的算法还会最小化通过无线发送的字节数,并尽量延长电池使用寿命。
实施数据压缩可以缩小在 Exchange 服务器(客户端访问服务器角色)和客户端之间传送的数据包大小。然而,带宽的消耗量以及它是否会影响用户的数据计划则极大地依赖于以下因素:
- 用户选择同步的项目,例如超过了默认文件夹。
- 邮箱中和移动设备上被更改的数据数量。
更改直推设置的影响 为了帮助您在直推期间保持充足的设备性能,Microsoft 对在各种直推设置使用的值提供了建议。
检测信号间隔 检测信号间隔是由移动运营商在设备上设置的。使用值为 30 分钟的检测信号间隔可帮助延长电池使用寿命,并减少带宽消耗量。当允许延长直推会话的寿命(如 30 分钟)时,HTTP 的往返次数就会减少,同时数据收发量及设备能耗也会降低。
检测信号间隔太短可以尽量让用户保持更新状态,但这会缩短电池使用寿命,因为它会不停地 ping 服务器。
最低检测信号 如果检测信号低于最低检测信号级别的设备请求到 Exchange 服务器的连接,服务器会记录一个事件,以提醒管理员直推没有正常工作。
Exchange 会话 要在帮助尽量延长电池使用寿命的同时保持设备信息的最新状态,Exchange 服务器会话持续时间应稍微长于最大检测信号设置。如果服务器会话较短,它可能会达到闲置超时,从而导致会话中断。这会造成在客户端重新连接之前无法传递邮件,且用户长期处于不同步状态。
防火墙超时 网络闲置连接超时指出当 TCP 连接完全建立后,在没有通信的情况下允许连接保留的时间。
必须对防火墙会话间隔进行设置,以允许检测信号间隔和企业会话间隔可以进行有效通信。如果防火墙关闭了会话,会造成在客户端重新连接之前无法传递邮件,并会导致用户长期不同步。通过将防火墙会话超时设置为等于或大于移动运营商网络上的闲置超时时间,防火墙将不会关闭会话。
设置防火墙的闲置连接超时:
- Microsoft 建议移动运营商将传出防火墙上的闲置连接超时设置为 30 分钟。
- 企业需要将他们的传入防火墙上的超时设置为 30 分钟。
Web 服务器、网络安全设备以及系统网络堆栈有若干基于时间的阈值,旨在将它们与未经充分测试或具有恶意的客户端隔离。您可以安全地增加闲置连接超时设置,而不会破坏网络的安全性。
在直推情形中,在 HTTP 请求发出到发生下面两种情况期间,连接是闲置的:1) 检测信号间隔过期,或 2) 发生变化(如收到邮件)时服务器响应请求。直推不对其会话长度做任何假设;不论检测信号间隔是 1 分钟还是 30 分钟,电子邮件都会被迅速传递。
增加闲置连接超时通常不会增加或降低受攻击的风险。下表显示了一些攻击示例,并说明了如何用其他设置来缓解受攻击的风险。