In iOS, if you start two iPads simultaneously doing app update downloads in the ‘App Store’ app using ‘update all’, do you ever find that you get error reports for some apps? I have had this several times recently, and I don’t know if this is because the link is overloaded with traffic and some things are timing out
I have not done a traffic capture. If you start ‘update all’, does the system simply fire up n TCP connections, without limit, or is there some kind of queue so that it doesn’t start too many connections simultaneously? Is it really that simplistic?
It seems daft to simply start up a ridiculous unlimited number of TCP connections, because on a very slow link it is bound to hit the retransmission timeout in the end, surely? A limited number of connections and a queue would seem much more sensible.
A decent o/s ought to be able to have some kind of ‘slow TCP’ where it doesn’t try to maximise performance but instead intends to be a good citizen, taking no more than some chosen fraction of the currently available internet access link capacity. One way would be to look at latency changes. I would prefer to do a subnet multicast to advertise what we are doing and ask other systems for permission to do a certain amount of work. (This could be abused as an attack, mind you.)