The Group policy is completely ignored. Windows Update continues with more than 150 sessions in parallel to the same HTTP server (completely ignoring the standards that recommand NEVER using more than 4 sessions per target server: Microsoft, **** !!!)
And because of that, it makes everything else crawling at damn low speed. Because all these sessions cumulated take the priority on every other transfers !
This is not even needed ! With HTTP 1.1, BITS could use pipelining if it wants to reduce the roundrips for requesting file fragments to BITS servers (the BITS protocol is something similar to BitTorrent, except that BitTorrent has a MUCH better management
of bandwidth, and MUCH better distributes the bandwidth allocation, and it will never use more than 4 TCP sessions to the *same* target server (exact same IPv4 address, only a distinct port number).
Routers really don't like what the BITS client in Windows is doing, they have no clear way of throttling it.
As a result, my smartphone connected on the same router, is extremely slow downloading its own updates (not more than 16 kilobits/s), when BITS is downloading large updates: the 150 parallel sesssions used from a single PC to the router, are overloading
everything compared to the single HTTP session used by my Android updates.
It also severely impacts my TVoIP programs when it starts. Crowsing the web or viewing a video becoimes almost impossible, and the average roundtrip time for every internet session grows to a huge value of more than 7 seconds (instead of less than 30 milliseconds
when bandwidth is kept).
Really, BITS should monitor its own roundtrip time, which should not exceed about 500ms in all cases: if this is exceeded, this means that there are too many sessions and sessions take too much bandwidth.
So in summary, please Microsoft:
* Limit BITS sessions to at most 4 TCP connections per target server IP. Use HTTP/1.1 pipelining.
* Allow us to apply a maximum total number of sessions for the whole system, never more than 16 sessions: schedule the sessions between BITS clients including the Windows Client update).
* Monitor your the TCP roundtrip time so that it will not exceed about 500 ms.
* And respect the group policies for BITS which DO NOT work at all in Windows Update.
And probably the BITS protocol should be simply abandonned : Torrents are MUCH better (and it includes extensions for authentication and encyption if you need it!), in addition it can work with a mesh of sources, with autodiscovery, Kademlia-like structure,
easy failure recovery
(meshes are now used by Windows Update, when it can locate other Windows 10 devices where this has been authorized either on the private LAN, or on both the LAN and the Internet).
Torrents contents can be secured as well with strong content hashes. Microsoft could save a lot of bandwidth on its own servers by just hosting the initial torrent trackers and the first copies to inject the file into the mesh.
Microsoft just attempted to rewrite Bittorent protocol functionalities, but this is really a failure (and it does not even scale as well). Windows Updates would be MUCH MUCH faster with the Torrent protocol (and more reliable too!) when we want to download
large updates, notably jut after installing Windows where there are hundreds of patches to download and install, or when there's a new Windows 10 build...
In addition the Windows Updates are all going to the US Eastern coast, which is not the best location when you don't live in US. With Torrents, you would create a much better worldwide distribution platform (Torrents are very efficient as CDN). If needed
(to avoid being blocked by ISPs with the default Torrent protocol) you can use HTTPS and encryption, and use specific ports, or some varfiable signature when establishing the SSL sessions, before it gets encrypted and authenticates the client.
BITS is a mess.