Fix Windows 10/11 Update Download Slow or Stuck: Delivery Optimization + Bandwidth Limits
Difficulty: Intermediate | Time Required: 15 minutesWindows Update downloads can become painfully slow (stuck at 0%, crawling for hours, or repeatedly "Downloading…" with no progress). In many cases, the culprit isn't Windows Update itself — it's Delivery Optimization settings, bandwidth limits, or background network rules that unintentionally throttle downloads.
This guide covers both sides of the problem: what Delivery Optimization actually is and why Windows uses it, and the step-by-step click-path to fix a slow or stuck download in Windows 10 and Windows 11.
What Delivery Optimization Actually Is
Delivery Optimization is a reliable HTTP downloader with a cloud-managed layer on top of it. When your PC needs an update, app, or Defender definition, Delivery Optimization can pull the pieces from more than one source at once: the normal Microsoft download servers, other Windows devices on your network or the internet (peer-to-peer), or — in managed/enterprise environments — a dedicated Microsoft Connected Cache server. If neither peers nor a cache server can supply the content, it falls back to the standard Microsoft servers automatically. Peer-to-peer is always optional on top of that HTTP path, never a replacement for it.It's not just for Windows Update — Delivery Optimization also handles Microsoft Store app installs and updates, Windows Defender definition updates, Microsoft 365 app updates, Edge browser updates, and (in managed environments) Intune Win32 apps and Configuration Manager Express updates.
Why it exists: downloading and distributing large update packages consumes real network resources on every device that receives them. Sharing that work among nearby devices — instead of every single PC pulling the full file over the internet independently — reduces bandwidth consumption without giving up reliability.
The actual "Download Mode" options (these are the real, named settings behind the simple toggle you'll use in Step 4 below — useful to know if you ever manage more than one PC, or if a workplace/school laptop behaves differently than a personal one):
- HTTP Only (0): disables peer-to-peer entirely. This is the default on Windows Server — server fleets don't peer with each other out of the box the way client PCs do.
- LAN (1): the default on Windows client editions. Peers with other devices behind the same public IP/router (your home or office NAT).
- Group (2): peers across internal subnets, restricted to devices sharing a Group ID (by default, your Active Directory site, domain, or Microsoft Entra tenant). This is Microsoft's own recommendation for organizations — and Microsoft's internal IT team uses exactly this: piloted then rolled out Group mode restricted to their AD domain, with content cached for 24 hours, and measured more than 76% of update content coming from peer devices instead of the internet.
- Internet (3): allows peering beyond the local network, over the internet — the "PCs on my local network and the Internet" option you'll see in Step 4.
- Simple (99): disables Delivery Optimization's cloud services entirely. Windows switches to this automatically for offline/disconnected environments, or when a file is under 50MB.
- Bypass (100): deprecated starting in Windows 11 — routes through the older BITS service instead. Not something you should configure manually today.
How it relates to BranchCache: WSUS environments can use either Delivery Optimization or BranchCache for local content caching. If both are present on a device, Delivery Optimization takes priority and is used instead of BranchCache.
Under the Hood: How the Cloud Coordination and Network Transfer Actually Work
Understanding the mechanics helps explain why some of the settings below behave the way they do.Three-layer distribution model: every download is split into byte-range segments, and the local Delivery Optimization service (
dosvc.dll, running inside a shared svchost.exe -k NetworkService -p process) pulls different segments in parallel from whichever sources are actually available — the standard Microsoft CDN, a local Microsoft Connected Cache server, and nearby peers — combining them into one file.Every downloaded segment is cryptographically verified against a signed Personal Hash File fetched directly from Microsoft over an encrypted channel, before it's accepted or shared with any other peer. If that verification can't happen for any reason, the client falls back to a direct HTTP download from Microsoft instead of trusting an unverifiable peer segment — this is what stops a compromised or misbehaving peer from injecting bad data into the mesh.
Finding peers is a cloud-coordinated matchmaking process, not a broadcast: your PC's Delivery Optimization client talks to five specialized Microsoft cloud endpoints (a Geo service for regional routing, a Key-Value service for bootstrap config, a Content Policy service for per-file rules, a Discovery service, and an Arrays service that returns the actual list of matching peers) to build a list of nearby devices caching the exact same content, filtered by your network position and Group ID.
Peer traffic uses its own traffic-shaping protocol (LEDBAT) over TCP port 7680, engineered to automatically yield bandwidth the instant it detects other normal network traffic on the same connection — a real technical reason peer-to-peer updates are designed not to noticeably compete with everyday browsing. Local-network (LAN) peer traffic isn't throttled by the percentage-based bandwidth limits in Step 5 at all; those limits only apply to internet-sourced traffic (Microsoft's servers, Connected Cache, and non-local peers).
Why It's Restricted or Turned Off in Certain Places
If you've ever noticed Delivery Optimization behaves differently on a work laptop, a school PC, or a device connected over VPN, it's not a bug — these are deliberate, documented defaults:- VPN connections don't peer by default. Delivery Optimization detects a VPN connection and, unless an administrator explicitly enables peer caching over VPN, it won't upload to or download from peers while connected — a deliberate security tradeoff, since P2P traffic over a VPN tunnel behaves differently than on a trusted local network. On Windows 11, this is refined further: local peer discovery can use multicast DNS (mDNS) directly instead of the cloud matchmaking service, which lets peer-to-peer transfers keep working on the local network even while a corporate VPN is active, if an administrator has specifically turned that discovery mode on.
- Devices don't upload to peers while on battery, by default. Acting as an upload source for someone else's download costs battery life, so laptops won't do it unless an administrator specifically allows uploads above a set battery percentage.
- A monthly upload data cap applies by default (20GB). This protects a device from silently burning through a metered or capped connection acting as a peer source for others.
- Minimum hardware requirements gate participation. A device generally needs at least 4GB of RAM and 32GB of free disk space before Windows will let it act as a peer-caching source at all.
- Security and compliance policy. Some organizations disable peer-to-peer outright (Download Mode 0, HTTP Only) because they don't want devices on their network communicating directly with each other, or because they need every update to be centrally distributed and auditable through WSUS or Configuration Manager rather than shared informally between machines.
- Network segmentation. In environments with multiple isolated subnets or guest networks, peer discovery is intentionally restricted so devices in one segment can't reach devices in another.
For IT Pros: How Delivery Optimization Compares to BranchCache and Configuration Manager Peer Cache
If you manage more than a handful of PCs, you likely have a choice between three different Microsoft distribution technologies — they aren't interchangeable, and mixing them up without understanding the differences is a common source of "why isn't this caching locally" support tickets.- Delivery Optimization: self-organizing, cloud-coordinated peer mesh. No on-premises infrastructure required beyond an optional Connected Cache server. Works with Windows Update, Store apps, Defender, Intune Win32 apps, Microsoft 365, Edge, and Configuration Manager Express updates. Needs an active connection to Microsoft's cloud endpoints for matchmaking, except in Simple mode (99) or Windows 11's local mDNS discovery.
- BranchCache: a Windows feature, not a cloud service — operates entirely inside your own network, in either Distributed mode (peer-like) or Hosted mode (a designated cache server). Limited to WSUS and Configuration Manager BITS-based workloads. On Windows 11, Delivery Optimization content can't use BranchCache at all — Bypass mode (100), the old workaround, is deprecated.
- Configuration Manager Client Peer Cache: uses Configuration Manager's own Boundary Groups (not Delivery Optimization's Group ID) to decide which clients can share content, and peer sources report their cache state directly to their Management Point. A peer source automatically refuses requests if it's on low battery, CPU is over 80%, or disk queue latency is too high — protecting the "peer" PC's own performance.
Prerequisites
Quick walkthrough- Administrator access on the PC
- A stable internet connection (Wi‑Fi or Ethernet)
- Windows 10 (Settings layout varies by version, especially 1909/20H2 vs 21H2/22H2) or Windows 11 (21H2/22H2/23H2/24H2)
- Optional but helpful: know whether your connection is metered (common on hotspots)
Note: Delivery Optimization affects Windows Update downloads and Microsoft Store content. These changes can speed up updates but may increase network usage while updates are downloading.
Step-by-step: Fix slow or stuck Windows Update downloads
1) Confirm Windows Update is actually waiting on a download
- Open Settings:
- Windows 11: Start > Settings
- Windows 10: Start > Settings
- Go to:
- Windows 11: Windows Update
- Windows 10: Update & Security > Windows Update
- Check the status:
- If you see Downloading… with no movement for 10+ minutes, or stuck at 0%, continue below.
Tip: If the update is stuck on "Installing" rather than "Downloading," this tutorial may still help a bit, but the main fixes are different (servicing stack, component store, etc).
2) Make sure your connection isn't set as "Metered"
Metered connections can heavily restrict update downloading.- Open Settings
- Go to:
- Windows 11: Network & internet > Wi‑Fi (or Ethernet) > select your network
- Windows 10: Network & Internet > Wi‑Fi (or Ethernet) > select your network
- Find Metered connection and set it to Off
Warning: If you're on a data-capped plan, turning metered off may use significant data during updates.
3) Open Delivery Optimization settings
Delivery Optimization controls how Windows downloads updates (from Microsoft and sometimes from other PCs).
- Open Settings
- Navigate to:
- Windows 11: Windows Update > Advanced options > Delivery Optimization
- Windows 10: Update & Security > Delivery Optimization
4) Decide whether to allow downloads from other PCs (P2P)
This setting can either help or hurt depending on your network and ISP — and it's the consumer-facing version of the "Download Mode" options explained above.
- In Delivery Optimization, find Allow downloads from other PCs
- Choose one:
- Off (recommended for troubleshooting): forces downloads directly from Microsoft servers — equivalent to HTTP Only mode
- On: can speed up downloads if you have multiple PCs or good peer availability
- PCs on my local network (the LAN mode described above — safer, often useful in homes/offices with multiple machines)
- PCs on my local network and PCs on the Internet (the Internet mode — can help speed, but may increase upload usage)
Recommendation: If your updates are stuck/slow, start with Off to remove variables. You can re-enable later.
5) Remove hidden throttles: set bandwidth limits to "unlimited" (or realistic)
Bandwidth limits are the most common reason downloads crawl.- On the Delivery Optimization page itself (not a separate sub-page), find the Download options row — it's labeled "Limit bandwidth used for downloads"
- Click directly on that Download options row to expand it in place
- This reveals a dropdown (e.g. Percentage of measured bandwidth) plus separate sliders/fields for foreground and background download limits
- Do one of the following:
- Best for troubleshooting: uncheck/disable the limits (if available), or set the sliders to 100%
- Best for everyday use: set a reasonable percentage (e.g., 50–90% foreground, 20–50% background) — or, for genuinely slow connections, switch the dropdown to an absolute KB/s limit instead of a percentage
Note (Windows 10 vs 11): Wording and layout differs, but both include foreground/background download controls in Delivery Optimization's advanced settings on most builds.
6) Check upload limits (they can indirectly affect performance)
If Delivery Optimization is allowed to upload to other PCs, Windows may reserve bandwidth and resources.- Still on the Delivery Optimization page, find the Upload options row just below Download options — labeled "Limit bandwidth used for uploads"
- Click directly on that Upload options row to expand it in place
- This reveals the upload bandwidth slider/field and the Monthly upload limit (Windows defaults this to 20GB)
- For troubleshooting:
- Set upload bandwidth limit low (or disable peer downloads entirely as in Step 4)
- Consider setting a Monthly upload limit (e.g., 5–20 GB) to prevent surprise usage
Tip: If you have slower upload speeds (common on many cable/DSL connections), peer uploading can reduce overall responsiveness.
7) Temporarily force Windows Update to "Foreground"
Foreground downloads typically use the less-restrictive limit.- Go back to Windows Update
- Click Download / Download & install (or Resume) and keep the Settings window open for a few minutes
- Avoid heavy downloads in other apps while testing
Tip: On some systems, foreground activity (you actively initiating/resuming downloads) can help Windows allocate more bandwidth to Windows Update.
8) Restart Delivery Optimization and Update services (quick refresh)
If the download is "stuck," services may need a kick.- Press Win + R, type
services.msc, press Enter - The list is alphabetical — scroll down and click directly on each of these three service names, one at a time, to select and confirm you've found the right one before restarting it:
- Delivery Optimization (DoSvc)
- Windows Update (wuauserv) — further down, near the bottom of the W's
- Background Intelligent Transfer Service (BITS) — near the top, under the B's
- With each one selected, right-click it and choose Restart
- Return to Windows Update and try again
Warning: Don't stop random services you don't recognize. Stick to the three listed above.
9) (Optional) Reset Windows Update download cache if it's still stuck
If settings are correct but downloads won't move, the update cache may be corrupted.- Open Terminal/Command Prompt as Administrator
- Windows 11: right-click Start > Terminal (Admin)
- Windows 10: right-click Start > Windows PowerShell (Admin) or Command Prompt (Admin)
- Run these commands:
Code:
net stop wuauserv
net stop bits
net stop dosvc
ren %windir%\SoftwareDistribution SoftwareDistribution.old
net start dosvc
net start bits
net start wuauserv
- Go back to Windows Update and click Check for updates
Note: This forces Windows to rebuild the download database and re-fetch update files. The first check afterward can take a bit longer.
10) (Advanced / IT Pros) Diagnose with PowerShell
If the click-path above didn't resolve it, or you manage more than one PC, Windows ships PowerShell cmdlets built specifically for diagnosing Delivery Optimization.- Open Terminal/PowerShell as Administrator
- Run these commands to inspect the current state:
Code:
Get-DeliveryOptimizationStatus
Get-DOConfig -Verbose
Get-DeliveryOptimizationPerfSnap -Verbose
- Get-DeliveryOptimizationStatus shows the live download mode and byte sources. If DODownloadMode shows 99 (Simple) unexpectedly, your PC can't reach Microsoft's cloud matchmaking endpoints — check that outbound HTTPS to
*.do.dsp.mp.microsoft.comand*.dl.delivery.mp.microsoft.comon port 443 isn't blocked by a firewall or proxy. - Get-DeliveryOptimizationPerfSnap reports NumberOfPeers. If it's zero on LAN mode, your PCs likely have different public IP addresses (LAN mode requires the same one); on Group mode, double-check both devices share the exact same Group ID.
.ps1 extension):
Code:
Install-Script -Name DeliveryOptimizationTroubleshooter -Force
DeliveryOptimizationTroubleshooter.ps1 -HealthCheck
DeliveryOptimizationTroubleshooter.ps1 -P2P
DeliveryOptimizationTroubleshooter.ps1 -MCC
For fleets, not just one PC: if you manage many devices, Windows Update for Business Delivery Optimization reports (via Azure Monitor) track bandwidth savings automatically — the percentage of bytes served from peers/cache instead of the internet. A result under 60% is flagged as a Warning, and under 10% as an Error, meaning peer configuration needs attention fleet-wide.
Tips and troubleshooting notes
- Use Ethernet if possible. Wi‑Fi interference often looks like "stuck downloads."
- Pause/Resume trick: In Windows Update, try Pause updates (pause), wait 10 seconds, then Resume.
- VPN impact is by design, not a bug: Delivery Optimization deliberately doesn't peer over a VPN connection unless an administrator has explicitly allowed it — if updates seem slower on VPN, that's the peer-to-peer path being intentionally skipped, not a malfunction.
- Third-party "internet optimizer" tools: Some tweak TCP or QoS settings and can hurt update performance. If you've used one, consider reverting.
- Router QoS / bandwidth control: If your router has QoS enabled, it may deprioritize Windows Update traffic. Test briefly with QoS off (if you know what you're doing).
- Check Disk Space: Low free space can stall downloads/unpacking. Aim for at least 15–20 GB free on the system drive for feature updates.
Conclusion
By understanding what Delivery Optimization actually does, reviewing its P2P and bandwidth limits, and restarting update-related services, you can usually fix Windows 10/11 updates that download slowly or appear stuck — and understand exactly why your settings behave differently from a friend's PC or a work laptop.Key Takeaways:
- Delivery Optimization is a hybrid HTTP + peer-to-peer + Connected Cache downloader, not just a bandwidth limiter — peer sharing is always optional on top of the normal Microsoft download path.
- The "Allow downloads from other PCs" toggle in Settings is the consumer-facing version of Download Mode (HTTP Only / LAN / Group / Internet / Simple) — the same mechanism Microsoft's own IT team uses internally, restricted to their AD domain, to source over 76% of update content from peers instead of the internet.
- VPN connections, battery power, and monthly upload caps all restrict peer behavior by default — this is deliberate, not a malfunction.
- Turning off metered connection and testing with downloads from other PCs disabled removes major throttles.
- Restarting DoSvc/BITS/Windows Update (and optionally resetting
SoftwareDistribution) often clears stuck downloads. - Delivery Optimization, BranchCache, and Configuration Manager Peer Cache are three different tools, not interchangeable — Delivery Optimization is the only one that's cloud-coordinated, and Windows 11 has fully deprecated the old BranchCache bypass workaround.
- PowerShell diagnostics (
Get-DeliveryOptimizationStatus,Get-DOConfig) and the built-in troubleshooter can pinpoint exactly why peering isn't working when the Settings toggle alone doesn't tell the whole story.
This tutorial was generated to help WindowsForum.com users get the most out of their Windows experience.
Last edited by a moderator: