Gaming29.08.2017

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.

Now read: How latency kills overseas download speeds in South Africa

Show comments

Latest news

More news

Trending news

Poll

Which bank do you use for your primary account?

View Results

Loading ... Loading ...
Sign up to the MyBroadband newsletter