If you’re distributing content in your ConfigMgr environment, you should consider BranchCache. It’s a bandwidth optimization tool included in modern server and some versions of client operating systems. Simply put, BranchCache allows content to be copied over the wire once and cached locally for future use.
When content requests are made by client computers, they download content information from the server instead of the actual content. Content information, or simply CI, consists of hashes that are calculated using chunks of the original content and are quite small compared to the content in the original data. CIs are also chunked when downloading from other peers. Client computers then use the CI to locate the content from a cache in the remote location, whether the cache is located on a client computer or on a server. This is done via multicast. Client computers and servers also use CIs to secure cached content so that it cannot be accessed by unauthorized users, so tell your security team to calm down.
Data deduplication is a server operating system feature that can help reduce redundant data and optimize free space. It can be used separate from BranchCache. Dedup accomplishes this task by breaking files into chunks and then identifying unique chunks. While this is happening, a hash is created to act as a fingerprint for the chunks of data. Where it gets interesting is that dedup and BranchCache use the same hashing algorithm.
Let’s get to the fun part. Since dedup is only currently available on a server, the client gets to do some magic. Except the magic isn’t really all that magical. The client reads the CI, which as you remember is just a list of hashes.
Since A, B are there several times, it will only download it once, making it quite an efficient download over the WAN. To sum it up, the download saves the same data on the wire as dedup.
There’s a lot more to be written about dedup and BranchCache both on their own and together, but this is a blogpost, not a novel.
Git r’ dun