BranchCache Step-by-Step Guide: Demonstrate Distributed Cache Mode in a Test Lab
Updated: March 10, 2010
Applies To: Windows Server 2008 R2
BranchCache is a wide area network (WAN) bandwidth optimization technology that is included in some editions of the Windows Server® 2008 R2 and Windows® 7 operating systems.
To optimize WAN bandwidth, BranchCache copies content from your main office 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.
|This guide is available in Word format at the Microsoft Download Center, at http://go.microsoft.com/fwlink/?LinkId=185325.|
When content is cached on a server in the branch office, BranchCache is deployed in hosted cache mode. Hosted cache mode is not depicted in this step-by-step guide.
When content is cached on client computers in the branch office, BranchCache is deployed in distributed cache mode.
This guide provides instructions for deploying BranchCache in distributed cache mode in a test lab environment.
To deploy BranchCache, you must deploy a content server. This guide provides instructions for deploying a Web server content server using Microsoft Internet Information Services (IIS) in Windows Server® 2008 R2 in a test lab environment.
In this BranchCache distributed cache mode scenario, there is one BranchCache content Web server and there are three client computers.
In a real world scenario, the content server is installed at your organization’s main office, while the client computers are installed at a branch office. In addition, the branch office is connected to the main office with DirectAccess, a virtual private network (VPN) connection, or using some other remote access technology.
In this test lab scenario, all four computers are installed on the same local area network (LAN) segment and are connected to a network hub using Ethernet cables. With this test lab configuration, the network hub replaces the VPN or DirectAccess connection that would exist in the real world scenario.
Content servers and content information
When you deploy a BranchCache-enabled Web server, the Web server automatically generates identifiers for the content at the moment when the content is first requested by a BranchCache-enabled client computer. These content identifiers are called content information.
When a client requests content for the first time, the Web server computes content information as it transmits the content to the client. The Web server then stores the content information for subsequent client requests.
The server only transmits content information the second time that content is accessed.
In order to store content in its BranchCache local cache, a client computer must first receive content information from the BranchCache content Web server. Thus the second client computer that requests the same content as the first client receives both the content information and the content itself, and stores the content in the local cache.
All subsequent requests for the same content by other computers result in the content server sending only content information, while the content itself is obtained from the cache on the client computer.
The process works according to the following example.
A client computer, Client-01, requests a Web page from the BranchCache content Web server, Content-01.
Content-01 automatically generates the content information for the requested Web page. Content-01 sends the content, but not the content information, to Client-01.
Another client computer, Client-02, requests the same Web page from Content-01. The Web server sends the content information to Client-02. Client-02 uses the content information to query other client computers in the branch office for the content, and discovers that none of the clients have the content in the branch office. Client-02 then requests and receives the actual content from the Web server. Because Client-02 now has both the Web page and the content information for the Web page, Client-02 stores the content in its BranchCache cache.
Another client computer, Client-03, requests the same Web page from Content-01. The Web server sends only the content information to Client-03. Client-03 then uses the content information to query other client computers to find out if they have the content. Client-02 matches the content information to the content in its cache, and sends the requested Web page to Client-03.
The scenario provided by this guide illustrates this example of how content and content information is handled by BranchCache.
|Content information is very small in size compared to the actual content that it represents. For example, if a Web page and related content (such as images on the Web page) are around 185,000 bytes, content information for that content can be as small as around 200 bytes.|
Following is a list of operating systems that support BranchCache content server or BranchCache client computer functionality. To successfully deploy BranchCache in a test lab environment, you must use operating systems that support BranchCache.
Operating systems for BranchCache client computer functionality
To perform the steps in this guide, you must have three physical or virtual client computers that are running one of the following operating systems:
Windows® 7 Enterprise
Windows® 7 Ultimate
Operating systems for BranchCache content server functionality
To perform the steps in this guide, you must have one physical or virtual server computer to be used as a BranchCache content Web server that is running one of the Windows Server® 2008 R2 family of operating systems, with the following exceptions:
In Windows Server® 2008 R2 Enterprise Core Install with Hyper-V, BranchCache is not supported.
In Windows Server® 2008 R2 Datacenter Core Install with Hyper-V, BranchCache is not supported.
|To perform the steps in this guide, virtual computers, also called virtual machines (VMs), can be used instead of physical computers if you are running a version of Windows Server 2008 R2 that supports Hyper-V, and if the operating system on the VM supports BranchCache.|