If you have a good internet connection but still sometimes run into the issue of slow downloads on the PlayStation 4, this explanation by one tech-savvy Reddit user, MrRiddell, might be of interest to you. Do note, however, that his post is highly technical but there’s also a simplified explanation below for those who are curious. First, here’s what MrRiddell thinks happens after he carried out extensive tests:
The PS4 is (at least in some cases) using an incredibly small Receive Window which causes the download servers to have to spend a lot of time waiting, rather than sending more data.
During my testing, I was downloading for a server approximately 22ms away, so as a rough guide, the BDP calculation would indicate that I would need to be advertising a receive window of approximately 540KB in order to fully utilize my available bandwidth.
- When looking at the TCP handshake from the PS4 I can see that it’s using an initial Window Size of 8192 (Bytes) and a Scaling Value of 6 (multiply by 64). All looking good so far and pretty typical.
PS4 SYN Packet
- After the handshake has been completed, the Window size on the PS4 has been reduced all the way down to 135 Bytes which gives an effective window of 8640 (135*64). For the rest of the capture, the PS4 effective window fluctuates between around 3K and 8K but never exceeds 8640 Bytes.
PS4 Window Size
- Because the PS4 advertises such a small Window, the download server can only send a handful of packets at a time (each packet is 1448 Bytes) before it has to stop and wait for the PS4 to tell it to send more. So the sequence is, server sends 5 packets or so and then waits for 22ms before it gets the response back from the PS4 telling it to send more. Server sends another 5 packets and then waits for another 22ms etc etc. You can see the behaviour quite clearly here and here.
To put it in perspective, with a latency of 22ms between my PS4 and the Playstation Servers and a 8640 byte Window, my maximum bandwidth available is 3.14 Mbit/s as opposed to my actual maximum of 200 Mbit/s.
Now, here’s a simpler explanation if you didn’t understand the above (courtesy of user tibiazak):
The PS4 and PSN are like two movers. The PS4 tells the PSN, “Hey, I can only carry this much at a time,” and once the PSN has handed the PS4 that much, it has to wait while the PS4 sets it down and then says, “Okay, I’m ready for more.”
The problem here is that the PS4 has the carrying capacity in these cases of a hypothetical semi-truck but it’s asking for an extremely small and thin plastic bag. And the reason that the local proxy works is that it reduces the time it takes for the PS4 to set things down and ask for more. It still gets a small plastic bag but if you’re moving ten of those a minute as opposed to one a minute, that’s going to significantly speed things up.
Does any of this make sense to our readers? Let us know.
If you want to find out more about MrRiddell’s test, make sure to follow the source link below.