With the new BranchCache feature in Microsoft Windows 7 , users in remote offices no longer must accept less-than-perfect performance when tapping data on servers at headquarters.
The tool offers a way for organizations to optimize their WAN connections by providing local cached copies of frequently accessed files. Without buying further tools, an organization can use this Windows 7 feature to reduce bandwidth, improve productivity and control data costs.
BranchCache works in two modes, with or without Windows Server 2008  Release 2 (Hosted and Distributed Cache respectively). In either mode, it requires Windows 7 running on the client.
Without Server 2008 R2, BranchCache is less scalable, and Microsoft recommends an upper limit of 50 devices on the remote network. Content normally delivered via Hypertext Transfer Protocol, Server Message Block or Background Intelligent Transfer Service can be cached. It’s worth noting, however, that BranchCache always uses HTTP to retrieve cached content.
In branch offices that don’t have the luxury of a dedicated server, BranchCache in Distributed Cache mode lets clients broadcast on the local network for cached copies of files (or other content) before attempting to download data from a remote server.
When a user requests content from a remote server, the content’s metadata is sent back to the user’s computer, and the content is retrieved from another Windows 7 client on the LAN. If the content hasn’t been requested before, it’s retrieved directly from the remote content server.
If a Windows 7 client on the LAN has previously cached the requested content, BranchCache encrypts the content (using a key generated from the hashes that form part of the content’s metadata) and sends it. The requesting client then decrypts the content and matches the hashes against those in the content metadata received from the remote content server. That validates that the data hasn’t been modified.
Hosted Cache mode uses the same hashes to identify content in the cache, but when a client downloads uncached content from a BranchCache-enabled content server at the main office, the client advertises the new content to the local cache server. The local server then connects to the client and transfers the data to its cache via HTTP. The local cache server then handles any subsequent requests for the data, again using HTTP.
BranchCache must be installed in Windows Server 2008 R2 to enable content to be cached by Windows 7 or a dedicated Hosted Cache server. In this example, we’ll set up BranchCache in Distributed Cache mode.
Log in to Windows Server 2008 R2 as a domain administrator. Steps 1 through 6, which are optional, detail how to install BranchCache for use with Internet Information Services and add support for a Hosted Cache. Steps 7 through 11, which are required, allow use of BranchCache in a File Server role.
Next you need to configure BranchCache on the server. Create a Group Policy Object (GPO) that is linked to the organizational unit (OU) where the content server is located in Active Directory.
Windows 7 must also be configured for BranchCache. Repeat steps 1 through 4 above, but create and link the GPO to the OU where your Windows 7 computer accounts are located in Active Directory and name the GPO BranchCache.
In a production environment, you should consider modifying the default inbound firewall rules created in steps 6 and 7 to work with the domain profile only.
To confirm that BranchCache is configured on your Windows 7 clients correctly, log in as an administrator, open a command prompt and type netsh branchcache to show status (Figure 6).
BranchCache works only with files larger than 64 kilobytes. Before a client retrieves a file from a cache, it must have been downloaded twice from the content server: once to create hashes and a second time to cache the content locally.
WAN links between offices are one of the most costly aspects of IT infrastructure. Although there are technologies available for optimizing data transfer across WANs, Windows 7 can improve transfer speeds without an additional investment. If you already have a fast network link in place, the default network latency settings in BranchCache will ensure that cached content is used only if the link becomes congested.