Delivery Optimization for Windows 10 updates
- Windows 10
Looking for consumer information? See Windows Update: FAQ
Windows updates, upgrades, and applications can contain packages with very large files. Downloading and distributing updates can consume quite a bit of network resources on the devices receiving them. You can use Delivery Optimization to reduce bandwidth consumption by sharing the work of downloading these packages among multiple devices in your deployment. Delivery Optimization can accomplish this because it is a self-organizing distributed cache that allows clients to download those packages from alternate sources (such as other peers on the network) in addition to the traditional Internet-based servers. You can use Delivery Optimization in conjunction with Windows Update, Windows Server Update Services (WSUS), Windows Update for Business, or Microsoft Endpoint Configuration Manager (when installation of Express Updates is enabled).
Delivery Optimization is a cloud-managed solution. Access to the Delivery Optimization cloud services is a requirement. This means that in order to use the peer-to-peer functionality of Delivery Optimization, devices must have access to the internet.
WSUS can also use BranchCache for content sharing and caching. If Delivery Optimization is enabled on devices that use BranchCache, Delivery Optimization will be used instead.
The following table lists the minimum Windows 10 version that supports Delivery Optimization:
|Device type||Minimum Windows version|
|Computers running Windows 10||1511|
|Computers running Server Core installations of Windows Server||1709|
Types of download packages supported by Delivery Optimization
|Download package||Minimum Windows version|
|Windows 10 updates (feature updates and quality updates)||1511|
|Windows 10 drivers||1511|
|Windows Store files||1511|
|Windows Store for Business files||1511|
|Windows Defender definition updates||1511|
|Office Click-to-Run updates||1709|
|Win32 apps for Intune||1709|
|SCCM Express Updates||1709 + Configuration Manager version 1711|
In Windows 10 Enterprise, Professional, and Education editions, Delivery Optimization is enabled by default for peer-to-peer sharing on the local network (NAT). Specifically, all of the devices must be behind the same NAT, but you can configure it differently in Group Policy and mobile device management (MDM) solutions such as Microsoft Intune.
For more details, see "Download mode" in Delivery optimization reference.
Set up Delivery Optimization
See Set up Delivery Optimization for suggested values for a number of common scenarios.
You can use Group Policy or an MDM solution like Intune to configure Delivery Optimization.
You will find the Delivery Optimization settings in Group Policy under Configuration\Policies\Administrative Templates\Windows Components\Delivery Optimization. In MDM, the same settings are under .Vendor/MSFT/Policy/Config/DeliveryOptimization/.
Starting with Microsoft Intune version 1902, you can set many Delivery Optimization policies as a profile which you can then apply to groups of devices. For more information, see Delivery Optimization settings in Microsoft Intune)
Starting with Windows 10, version 1903, you can use the Azure Active Directory (AAD) Tenant ID as a means to define groups. To do this set the value for DOGroupIdSource to its new maximum value of 5.
For complete list of every possible Delivery Optimization setting, see Delivery Optimization reference.
How Microsoft uses Delivery Optimization
At Microsoft, to help ensure that ongoing deployments weren’t affecting our network and taking away bandwidth for other services, Microsoft IT used a couple of different bandwidth management strategies. Delivery Optimization, peer-to-peer caching enabled through Group Policy, was piloted and then deployed to all managed devices using Group Policy. Based on recommendations from the Delivery Optimization team, we used the "group" configuration to limit sharing of content to only the devices that are members of the same Active Directory domain. The content is cached for 24 hours. More than 76 percent of content came from peer devices versus the Internet.
For more details, check out the Adopting Windows as a Service at Microsoft technical case study.
Frequently asked questions
Does Delivery Optimization work with WSUS?: Yes. Devices will obtain the update payloads from the WSUS server, but must also have an internet connection as they communicate with the Delivery Optimization cloud service for coordination.
Which ports does Delivery Optimization use?: Delivery Optimization listens on port 7680 for requests from other peers by using TCP/IP. The service will register and open this port on the device, but you might need to set this port to accept inbound traffic through your firewall yourself. If you don't allow inbound traffic over port 7680, you can't use the peer-to-peer functionality of Delivery Optimization. However, devices can still successfully download by using HTTP or HTTPS traffic over port 80 (such as for default Windows Update data).
If you set up Delivery Optimization to create peer groups that include devices across NATs (or any form of internal subnet that uses gateways or firewalls between subnets), it will use Teredo. For this to work, you must allow inbound TCP/IP traffic over port 3544. Look for a "NAT traversal" setting in your firewall to set this up.
Delivery Optimization also communicates with its cloud service by using HTTP/HTTPS over port 80.
What are the requirements if I use a proxy?: You must allow Byte Range requests. See Proxy requirements for Windows Update for details.
What hostnames should I allow through my firewall to support Delivery Optimization?:
For communication between clients and the Delivery Optimization cloud service: *.do.dsp.mp.microsoft.com.
For Delivery Optimization metadata:
For the payloads (optional):
Does Delivery Optimization use multicast?: No. It relies on the cloud service for peer discovery, resulting in a list of peers and their IP addresses. Client devices then connect to their peers to obtain download files over TCP/IP.
How does Delivery Optimization deal with congestion on the router from peer-to-peer activity on the LAN?: Starting in Windows 10, version 1903, Delivery Optimization uses LEDBAT to relieve such congestion. For more details see this post on the Networking Blog.
This section summarizes common problems and some solutions to try.
If you don't see any bytes from peers
If you don’t see any bytes coming from peers the cause might be one of the following issues:
- Clients aren’t able to reach the Delivery Optimization cloud services.
- The cloud service doesn’t see other peers on the network.
- Clients aren’t able to connect to peers that are offered back from the cloud service.
Clients aren't able to reach the Delivery Optimization cloud services.
If you suspect this is the problem, try these steps:
- Start a download of an app that is larger than 50 MB from the Store (for example "Candy Crush Saga").
Get-DeliveryOptimizationStatusfrom an elevated Powershell window and observe the DownloadMode setting. For peering to work, DownloadMode should be 1, 2, or 3.
- If DownloadMode is 99 it could indicate your device is unable to reach the Delivery Optimization cloud services. Ensure that the Delivery Optimization hostnames are allowed access: most importantly *.do.dsp.mp.microsoft.com.
The cloud service doesn't see other peers on the network.
If you suspect this is the problem, try these steps:
- Download the same app on two different devices on the same network, waiting 10 – 15 minutes between downloads.
Get-DeliveryOptimizationStatusfrom an elevated Powershell window and ensure that DownloadMode is 1 or 2 on both devices.
Get-DeliveryOptimizationPerfSnapfrom an elevated Powershell window on the second device. The NumberOfPeers field should be non-zero.
- If the number of peers is zero and you have DownloadMode = 1, ensure that both devices are using the same public IP address to reach the internet. To do this, open a browser Windows and search for “what is my IP”. You can DownloadMode 2 (Group) and a custom GroupID (Guid) to fix this if the devices aren’t reporting the same public IP address.
Clients aren't able to connect to peers offered by the cloud service
If you suspect this is the problem, try a Telnet test between two devices on the network to ensure they can connect using port 7680. To do this, follow these steps:
- Install Telnet by running dism /online /Enable-Feature /FeatureName:TelnetClient from an elevated command prompt.
- Run the test. For example, if you are on device with IP 192.168.8.12 and you are trying to test the connection to 192.168.9.17 run telnet 192.168.9.17 7680 (the syntax is telnet [destination IP] [port]. You will either see a connection error or a blinking cursor like this /_. The blinking cursor means success.
- Update Windows 10 in the enterprise
- Overview of Windows as a service
- Prepare servicing strategy for Windows 10 updates
- Build deployment rings for Windows 10 updates
- Assign devices to servicing channels for Windows 10 updates
- Optimize update delivery for Windows 10 updates
- Configure BranchCache for Windows 10 updates
- Deploy updates for Windows 10 Mobile Enterprise and Windows 10 IoT Mobile
- Deploy updates using Windows Update for Business
- Configure Windows Update for Business
- Integrate Windows Update for Business with management solutions
- Walkthrough: use Group Policy to configure Windows Update for Business
- Walkthrough: use Intune to configure Windows Update for Business
- Deploy Windows 10 updates using Windows Server Update Services
- Deploy Windows 10 updates using Microsoft Endpoint Configuration Manager
- Manage device restarts after updates