How a programmer fixed his slow PlayStation 4 downloads
Swiss systems programmer Juho Snellman recently discovered why his PlayStation 4 downloads from the PlayStation Network were slow, publishing his findings.
Snellman said Sony was “throttling downloads” when apps were running on his console in the background, and that the throttling was excessive.
“For games, the interaction model is that opening a new game closes the previously-running one,” said Snellman.
“This is not how other apps work – they remain in the background indefinitely until you explicitly close them.”
To close an app, you hold the PS4 button on the controller and select “Close applications”.
Snellman said this may be a reason why users report faster download speeds after a firmware update, as the firmware installation requires a system reboot – closing all apps.
TCP Receive Window
Slow downloads on the PS4 can also be attributed to high latency, which can drastically reduce download speeds.
Called the Bandwidth Delay Product, high ping to a server essentially affects download speeds from that server.
This is due to the way Transmission Control Protocol (TCP) works. TCP ensures transferred data ends up where it must go, using a system of sending packets of data and waiting for them to be acknowledged by the recipient device.
Until the sender receives confirmation, the next packet will not be sent.
After enough time has passed without an acknowledgement, it is assumed the data was lost in transit, and it is retransmitted. This is known as packet loss.
As there is a maximum size for the amount of data that can be sent over TCP before waiting for an acknowledgement – the TCP Receive Window – the amount of time you have to wait for an acknowledgement can impair throughput.
Packet loss causes a theoretical limit on the bitrate of a connection, calculated using an equation referred to as the Mathis Equation.
However, the reported download speeds on PS4 were below the theoretical Mathis limit.
Snellman investigated, and found that when a game was running in the background, the console was setting the TCP Receive Window size to smaller than it typically would be – 7KB, at least 100-times smaller than expected.
When apps like Netflix were running in the background, the TCP Receive Window was set to 128KB. If no apps or games were running in the background, the window increased to 650KB.
PS4 download speeds in SA
To see how this issue impacts South African players, we ran pings against several PlayStation servers. The results were as follows.
| PlayStation URL | Average latency | Standard deviation | Packet loss |
|---|---|---|---|
| a2047.w6.akamai.net a04.cdn.update.playstation.net zeus.dl.playstation.net |
10.668ms | 15.306ms | 1.2% |
| sonycoment.vo.llnwd.net | 170.819ms | 18.386ms | 1.1% |
| gs2.ww.prod.dl.playstation.net | 174.083ms | 14.772ms | 0.7% |
This provided round-trip times based on real-world results that could be plugged into the Bandwidth Delay Product equation.
Swiss ISP Switch.ch has a TCP Throughput Calculator on its website, which provided the results in the table below.
They show that when PlayStation Network content comes from a local Akamai node, you can easily achieve fast download speeds.
However, once you have to download a patch or game that has not been cached locally, the throttling effect becomes evident.
Based on Snellman’s findings, if you’ve left a game running in the background, downloads may not go faster than 6.2Mbps.
People on 40Mbps and faster connections are also likely to be disappointed with the throughput of international downloads if the PS4 doesn’t allow TCP Receive Windows greater than 650KB.
| TCP Receive Window | Latency | Maximum Throughput (BDP-based) |
|---|---|---|
| Local Cache | ||
| 7KB | 11ms | 5.21Mbps |
| 64KB | 11ms | 47.66Mbps |
| 128KB | 11ms | 95.33Mbps |
| 450KB | 11ms | 335.13Mbps |
| 650KB | 11ms | 484.07Mbps |
| International EU Download | ||
| 7KB | 170ms | 0.34Mbps |
| 64KB | 170ms | 3.08Mbps |
| 128KB | 170ms | 6.17Mbps |
| 450KB | 170ms | 21.68Mbps |
| 650KB | 170ms | 31.32Mbps |
How to speed up downloads
A solution to the problem, as suggested by Forbes and used by Snellman, is that PS4 owners try proxy software such as CCProxy for Windows, or SquidMan for Mac.
While the PS4 will still throttle its TCP Receive Window, the proxy provides lower latencies, allowing for faster downloads. The proxy also downloads the updates from the server first, using larger TCP Receive Windows, which speeds up the process.
For example, at a round trip time of 1ms and a TCP Receive Window of 7KB, the maximum throughput becomes 57.34Mbps.
Sony Europe did not reply to a request for comment on the download issues detailed above.