What's New in BranchCache in Windows and Windows Server

Updated: July 10, 2014

Applies To: Windows 8, Windows Server 2012

BranchCache is a wide area network (WAN) bandwidth optimization technology that is included in some editions of the Windows Server 2012 and Windows 8 operating systems, as well as in some editions of Windows Server 2008 R2 and Windows 7. To optimize WAN bandwidth when users access content on remote servers, BranchCache copies content from your main office or hosted cloud content servers and caches the content at branch office locations, allowing client computers at branch offices to access the content locally rather than over the WAN.

Office sizes and the number of branch offices are not limited. BranchCache supports any number of offices of any size when you deploy hosted cache mode with multiple hosted cache servers.

There is no requirement for a Group Policy Object (GPO) for each office location, streamlining deployment. A single GPO that contains a small group of settings is all that is required to deploy BranchCache in any size organization, from a large enterprise to a small business.

Client computer configuration is automatic. Clients can be configured through Group Policy as distributed cache mode clients by default, however they will search for a hosted cache server – and if one is discovered, clients automatically self-configure as hosted cache mode clients.

BranchCache is deeply integrated with the Windows file server. BranchCache uses Windows file server’s state-of-the-art technology to divide files into small pieces and eliminate duplicates. This greatly increases the chance of finding duplicate pieces in independent files, resulting in greater bandwidth savings. BranchCache is also more tolerant of small changes in large files. In addition, file division calculations are performed only one time. When a client computer that is running Windows 8 downloads content from a file server or web server that is running Windows Server 2012 and is using new Data Deduplication technology, there is no need for BranchCache to spend CPU cycles calculating how to divide the content – because the file server and web server have already made these calculations.

Duplicate content is stored once and downloaded once. When identical content exists in a file – or across many files on the content server or hosted cache server – BranchCache stores only one instance of the content, which provides disk storage savings. In addition, client computers at office locations download only one instance of duplicate content, saving additional WAN bandwidth.

Small changes to large files produce bandwidth savings. BranchCache now divides files and web pages into smaller pieces. BranchCache uses a highly optimized file server chunking system to choose intelligent split points inside of files, providing the ability for client computers to download only the part of the file that is changed.

Offline creation of content information. When you deploy a BranchCache enabled file server or Web server as a content server, content information is calculated offline, well before a BranchCache client requests a file. This provides faster performance and more bandwidth savings, because content information is ready for the first client that requests the content and calculations have already been performed.

Cache Encryption. Cached data is now stored encrypted by default. This allows you to ensure data security without using drive encryption technologies.

Cache preloading. New tools are available that allow you to load cacheable content onto hosted cache servers before the content is requested by client computers. You can preload content from media, such as DVDs or hard disks, or you can transfer the content over the network to the hosted cache server.

In addition to these improvements, the following improvements to hosted cache mode and hosted cache servers are included in Windows Server 2012:

Deployment of multiple hosted cache servers. In the previous version of BranchCache, you were able to deploy only one hosted cache server per office location. Windows Server 2012 provides the ability to scale hosted cache mode deployments for offices of any size by allowing you to deploy as many hosted cache servers as are needed at a location.

Improved database performance. BranchCache now uses the Extensible Storage Engine (ESE) database technology that powers Microsoft Exchange Server. This allows a single hosted cache server to keep up with the demands of more people while using the same hardware. It also allows a hosted cache server to store significantly more data (on the order of terabytes), which is necessary to provide high optimization for large organizations.

No server certificate requirement. Previously, hosted cache servers were required to have a server certificate that was issued by a certification authority (CA) that client computers at the office location trusted. Deploying a public key infrastructure with one or more CAs is complex and expensive, and this requirement is now removed, because BranchCache security is improved with data encryption and other technologies.

BranchCache includes the following new Group Policy and Local Computer Policy settings.

Hash Version Support for BranchCache. This policy setting specifies whether the BranchCache hash generation service supports version 1 (V1) hashes, version 2 (V2) hashes, or both V1 and V2 hashes. Hashes, also called content information, are created based on the data in shared folders where BranchCache is enabled. V2 content information describes smaller, variable sized chunks of data and enables greater savings of WAN bandwidth. V1 hashes are compatible with Windows 7 and Windows Server 2008 R2; V2 hashes are compatible with Windows 8 and Windows Server 2012.If you specify only one version that is supported, content information for that version is the only type that is generated by BranchCache, and it is the only type of content information that can be retrieved by client computers. For example, if you enable support for V1 hashes, BranchCache generates only V1 hashes and client computers – even those that are running Windows 8 - can retrieve only V1 hashes.

Set age for segments in the data cache. This policy setting specifies the age, in days, for which segments are valid in the BranchCache data cache on client computers. If you enable this policy setting, you can configure the maximum age for segments in the data cache. If you disable or do not configure this policy setting, the default age is set to 28 days.

Configure Client BranchCache Version Support. This policy setting specifies whether BranchCache-capable client computers operate in a downgraded mode in order to maintain compatibility with previous versions of BranchCache. If client computers do not use the same BranchCache version, cache efficiency might be reduced because client computers that are using different versions of BranchCache might store cache data in incompatible formats. If you enable this policy setting, all clients use the version of BranchCache that you specify in the policy options. The versions that you can select in the policy options are:

Windows Vista with BITS 4.0 installed, Windows 7, or Windows Server 2008 R2. If you select this version, later versions of Windows run the version of BranchCache that is included in these operating systems rather than later versions of BranchCache.

Windows 8 or Windows Server 2012. If you select this version, later versions of Windows run the version of BranchCache that is included in these operating systems.

If you do not configure this setting, all clients will use the version of BranchCache that matches their operating system.

Configure Hosted Cache Servers. This policy setting specifies whether client computers are configured to use hosted cache mode and provides the computer names of the hosted cache servers that are available to the client computers. Hosted cache mode enables client computers in branch offices to retrieve content from one or more hosted cache servers that are installed in the same office location. You can use this setting to automatically configure client computers that are configured for hosted cache mode with the computer names of the hosted cache servers in the branch office.

If you enable this policy setting and specify valid computer names of hosted cache servers, hosted cache mode is enabled for all client computers to which the policy setting is applied. For this policy setting to take effect, you must also enable the "Turn on BranchCache" policy setting.

This policy setting can only be applied to client computers that are running Windows 8. This policy has no effect on computers that are running Windows 7 or Windows Vista. Client computers to which this policy setting is applied, in addition to the "Set BranchCache Hosted cache mode" policy setting, use the hosted cache servers that are specified in this policy setting and do not use the hosted cache server that is configured in the policy setting “Set BranchCache Hosted cache mode.”

If you do not configure this policy setting, or if you disable this policy setting, client computers that are configured with hosted cache mode still function correctly.

Enable Automatic Hosted Cache Discovery by Service Connection Point. This policy setting specifies whether client computers should attempt the automatic configuration of hosted cache mode by searching for hosted cache servers publishing service connection points that are associated with the client's current Active Directory site. If you enable this policy setting, client computers to which the policy setting is applied search for hosted cache servers using Active Directory, and will prefer these servers and hosted cache mode rather than manual BranchCache configuration or BranchCache configuration by other group policies.

If you enable this policy setting in addition to the "Turn on BranchCache" policy setting, BranchCache clients attempt to discover hosted cache servers in the local branch office. If client computers detect hosted cache servers, hosted cache mode is turned on. If they do not detect hosted cache servers, hosted cache mode is not turned on, and the client uses any other configuration that is specified manually or by Group Policy.

When this policy setting is applied, the client computer performs or does not perform automatic hosted cache server discovery under the following circumstances:

If no other BranchCache mode-based policy settings are applied, the client computer performs automatic hosted cache server discovery. If one or more hosted cache servers is found, the client computer self-configures for hosted cache mode.

If the policy setting "Set BranchCache Distributed cache mode" is applied in addition to this policy, the client computer performs automatic hosted cache server discovery. If one or more hosted cache servers are found, the client computer self-configures for hosted cache mode only.

If the policy setting "Set BranchCache Hosted cache mode" is applied, the client computer does not perform automatic hosted cache discovery. This is also true in cases where the policy setting "Configure Hosted Cache Servers" is applied.

This policy setting can only be applied to client computers that are running Windows 8. This policy has no effect on computers that are running Windows 7 or Windows Vista. If you disable, or do not configure this setting, a client will not attempt to discover hosted cache servers by service connection point.

The following BranchCache Group Policy settings were also present in the previous version of BranchCache. These policy settings are supported on computers that are running Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2, and Windows Vista Business, Enterprise, and Ultimate editions with Background Intelligent Transfer Service (BITS) 4.0 installed.

Turn on BranchCache. This policy setting specifies whether BranchCache is enabled on client computers to which this policy is applied. In addition to this policy setting, you must specify whether the client computers are hosted cache mode or distributed cache mode clients. To do so, configure one of the following the policy settings:

Set BranchCache Distributed Cache mode

Set BranchCache Hosted Cache mode

Configure Hosted Cache Servers

Set BranchCache Distributed Cache Mode. This policy setting specifies whether BranchCache distributed cache mode is enabled on client computers to which this policy is applied. In addition to this policy, you must use the policy “Turn on BranchCache” to enable BranchCache on client computers. In distributed cache mode, client computers download content from BranchCache-enabled main office content servers, cache the content locally, and serve the content to other BranchCache distributed cache mode clients in the branch office.

Set BranchCache Hosted Cache mode. This policy setting specifies whether BranchCache hosted cache mode is enabled on client computers to which this policy is applied. In addition to this policy, you must use the policy “Turn on BranchCache” to enable BranchCache on client computers. When a client computer is configured as a hosted cache mode client, it is able to download cached content from a hosted cache server that is located at the branch office. In addition, when the hosted cache client obtains content from a content server, the client can upload the content to the hosted cache server for access by other hosted cache clients at the branch office.

Configure BranchCache for network files. This policy setting is used only when you have deployed one or more BranchCache-enabled file servers at your main office. This policy setting specifies when client computers in branch offices start caching content from file servers based on the network latency – or delay – that occurs when the clients download content from the main office over a Wide Area Network (WAN) link. When you configure a value for this setting, which is the maximum round trip network latency allowed before caching begins, clients do not cache content until the network latency reaches the specified value; when network latency is greater than the value, clients begin caching content after they receive it from the file servers.

Set percentage of disk space used for client computer cache. This policy setting specifies the default percentage of total disk space that is allocated for the BranchCache disk cache on client computers. If you enable this policy setting, you can configure the percentage of total disk space to allocate for the cache. If you disable or do not configure this policy setting, the cache is set to 5 percent of the total disk space on the client computer.

Hash Publication for BranchCache. This policy setting specifies whether a hash generation service generates hashes, also called content information, for data that is stored in shared folders. This policy setting must be applied to server computers that have the File Services role and both the File Server and the BranchCache for network files role services installed.