Apparently, our server box running Windows Server 2008 R2 has a per connection bandwidth limit of 0.2 MB/s. Meaning, while one TCP connection can pull at max 0.2 MB/s, 60 parallel connections can pull 12 MB/s. We first noticed this when trying to checkout large SVN repository from this server.
I used a simple Java application to test this, transferring data from server to workstation using variable number of threads (one connection per thread). Server part of the application simply writes 1 MB memory buffer to socket 100 times, so there is no disk involvement. Each connection topped at 0.2 MB/s. Same per connection limit was for only one as was for 60 parallel connections.
The problem is that I have no idea from where this limit comes from. I have very little experience administrating Windows Server, so I was mostly trying to find something by googling. I have checked the following:
Local Computer Policy QoS Packet Scheduler Limit reservable bandwidth: it's Not configured;
Group Policy Management Console: we have two GOPs, but neiher has any Policy-based QoS defined;
There isn't any bandwidth limiter program installed, as far as I can tell.
We're using standard Windows Firewall.
I can update this question with any additional information if needed.