ID:1683881
 
Something people always complain to me about is the RSC download times, despite having a very good transfer rate on the server a piddly download from byond to the client takes forever, but i could grab the file from ftp/http and max out my download speed(75mbps) without an issue.
The highest i've seen the server upload is less than 800kB/s for 1 client when the rest were at around 20-50kB/s. What is the issue here?
Well, it's the upload bandwidth on the server you're interested in. Did your FTP/HTTP test involve running an FTP/HTTP server on your server machine, and accessing a file from it remote location?
Yes I can download a file via http/ftp at around 7mB/s typically during the day, and more than that in the late evenings. But downloading the rsc from the byond server in network profiling it doesn't even reach 1mB/s. I suspsect there is some QoS byond is doing that is preventing proper throughput.

Here is an example, http://puu.sh/bNkQ1/28a26b4f0b.png
http://ss13.undo.it/test/100mb.test - Test file i downloaded to the server from cache fly in a few seconds, at 0950 gmt-5 with ISP CoxCommunications I was able to reach a peak download of about 7.12mB/s during the download.

edit:
Example of network profile after I clear my cache and reconnect to the server. byond://ss13.undo.it:7777
http://puu.sh/bNl46/7165139d85.png
My suspicion is more that it's due to some back and forth about the resource files it is initially loading.

If you are able to compile for this server, I'd suggest trying out client/preload_rsc = "http://url" providing the RSC file on that HTTP server on the same machine as the BYOND server.

If you still have slowness receiving that when you have a clean cache (you'd have to track the request from the HTTP server side, as BYOND server is no longer involved in that download), then it suggests a BYOND client socket config / QoS thing, as you suspect.

If it's nice and quick comparatively, then it suggests a BYOND server socket config / QoS thing or a protocol design limitation.

client/preload_rsc has the slight downside of needing to rename the file on every version of the code you put live, as BYOND caches the URL, to avoid re-downloading every login. Failing to do that means clients would need to download new resources not in the original RSC they downloaded on login, on a case-by-case basis, which I imagine would be kind of slow.