BranchCache 概述

译者:方文辉日期:2010-03-12

BranchCache™ 设计用于对分支机构的员工访问远程服务器内容时减少WAN的连接并提高应用程序的响应速度。分支机构客户计算机使用本地维护的数据缓存来减少WAN连接的流量。缓存可以分布于多台客户计算机(分布式缓存模式)或者可以存在于分支机构的一台服务器上 (主机缓存模式)。

BranchCache 设计时考虑到了防止非授权的内容访问。内容在设备间的传输是加密的。只能使用主办公室内容服务器提供的识别码才能解密。内容服务器只向授权的客户提供识别码。 BranchCache 支持端到端安全通道的下载,如 HTTPS 和 IPsec安全通道。

BranchCache 只能优化 Windows Server 2008 R2 服务器和 Windows 7 客户机之间的传输流。BranchCache 功能是一个可选的 Windows Server 2008 R2 组件,必须在使用 BranchCache 前先安装和启用。要优化 SMB 传输,文件服务器角色必须启用。 BranchCache 在 Windows 7 的客户机上是缺省安装的,但是 IT 必须启用 BranchCache 并创建防火墙规则来启用客户机之间的通信。

分布式缓存模式

如果客户计算机是配置成分布式缓存模式的,缓存的内容就会存放于分支机构网络中的多台计算机里。除了运行 Windows 7 的计算机外,分支机构不需要其它的基础设备和服务。

图1 分布式缓存模式

  1. 客户机1 对启用了分支机构缓存的总部服务器发布一个文件请求。这个请求可以用任何能启用BranchCache的协议(HTTP、SMB、 或BITS)传送。客户机使用兼容BranchCache协议的字段、消息或消息头等方式告诉服务器它是能使用BranchCache 的。
  2. 客户机1 查找本地已经下载并缓存了内容的计算机。这个查找是通过BranchCache 发现协议来实现的(它使用的是 WS-Discovery协议), 这是通过 UDP 发送的一个多播协议。客户机 1 是第一个下载了这部分内容的分支机构计算机,所以它没有得到任何查找回应。
  3. 客户机1 发布另一个请求到总部服务器,使用能启用BranchCache的协议(HTTP、SMB、 或BITS)。这个请求没有标记成能使用BranchCache 的。服务器回应请求的数据。客户机于是把数据加入到本地缓存。
  4. 客户机2 请求客户机 1 早先已下载过的同样的数据。客户机2 从总部服务器得到描述所请求内容的识别码。
  5. 客户机2 使用 BranchCache 发现协议来查找内容。客户机1 得到这个请求,在其本地缓存中找到了请求的内容,并回应给客户机2。
  6. 客户机2 向客户机1 请求内容,使用的协议是BranchCache 取数据协议 (它使用 HTTP). 客户机1 传送数据给客户机 2, 通过 BranchCache 加密方案来保护数据。客户机2 使用从总部服务器中取到的识别码来验证数据。

主机缓存模式

在主机缓存模式中,缓存的内容是维护于一台运行Windows Server 2008 R2 的分支机构本地网络中的计算机。

图2 主机缓存模式

  1. 客户机1 向总部启用了BranchCache服务器的请求数据。这个请求可以通过任何能启用BranchCache的协议发送 (HTTP, SMB, BITS). 客户机向服务器表示它是能够使用BranchCache 的, 客户机使用兼容BranchCache协议的字段、消息或消息头等方式告诉服务器它是能使用BranchCache 的。 服务器响应,发送一组识别码来描述需要下载的内容。这些识别码通过BranchCache兼容协议发送。
  2. 客户机1 向分支机构中缓存有内容的主机请求数据,使用BranchCache 取数据协议 [MS-PCCRD] (使用HTTP, TCP, 缺省时源端口: ephemeral, 目标端口: 80 ). 主机响应,告诉客户机1所需要的数据不存在。
  3. 客户机1 向总部服务器发送另一个请求,使用能启用BranchCache的协议 (HTTP, SMB, BITS). 这个请求没有标记为能用BranchCache 的,服务器响应数据。
  4. 客户机1 向主缓存机广告它新下载了数据,使用BranchCache 主机缓存协议 [MS-PCHC]。这个协议是在 HTTPS 上的(TCP, 缺省时源端口: ephemeral, 目标端口: 443 )。
  5. 主缓存服务器连接到客户机,并下载客户机广告中提到的下载内容,使用BranchCache 取数据协议 [MS-PCCRD] (使用HTTP, TCP, 缺省时源端口: ephemeral, 目标端口: 80)。
  6. 客户机2 向总部服务器发送请求,需要得到客户机1早先下载的同样的数据。客户机2得到总部服务器描述这些内容的识别码。
  7. 客户机2 向分支机构中的主缓存主机请求得到需要的数据,使用BranchCache 取数据协议 [MS-PCCRD] (使用HTTP, TCP, 缺省时源端口: ephemeral, 目标端口: 80)。缓存主机响应数据。客户机2使用从总部得到的识别码验证数据。

如果一台客户机不能从本地缓存主机中获取数据,它会向总部服务器请求下载数据。

主机缓存模式和分布式缓存模式是相互排斥的。一个客户机只能配置使用其中一种模式。