Unfortunately this raises some new questions, which can't be answered experimentally. With no facts, there's no option except to speculate wildly! Yes, it must be intentional. It's not any kind of subtle operating system level behavior; it's most likely the PS4 UI explicitly manipulating the socket receive buffers.
But why? I think the idea here must be to not allow the network traffic of background downloads to take resources away from the foreground use of the PS4. For example if I'm playing an online shooter, it makes sense to harshly limit the background download speeds to make sure the game is getting ping times that are both low and predictable.
So there's at least some point in that 7kB receive window limit in some circumstances. It's harder to see what the point of the kB receive window limit for running any app is. The only thing I can think of is that they're afraid that multiple simultaneous downloads, e. But even that seems like a stretch. There's an alternate theory that this is due to some non-network resource constraints e. CPU, memory, disk. I don't think that works. If the CPU or disk were the constraint, just having the appropriate priorities in place would automatically take care of this.
If the download process gets starved of CPU or disk bandwidth due to a low priority, the receive buffer would fill up and the receive window would scale down dynamically, exactly when needed. Especially in a console UI, it's a totally reasonable expectation that the foreground application gets priority.
If I've got the download progress bar in the foreground, the system had damn well give that download priority. Not some application that was started a month ago, and hasn't been used since. Applying these limits in rest mode with suspended apps is beyond insane. Second, these limits get applied per-connection. So if you've got a single download going, it'll get limited to kB of receive window. If you've got five downloads, they'll all get kB, for a total of kB. That means the efficiency of the "make sure downloads don't clog the network" policy depends purely on how many downloads are active.
That's rubbish. This is all controlled on the application level, and the application knows how many downloads are active. If there really were an optimal static receive window X, it should just be split evenly across all the downloads. Third, the core idea of applying a static receive window as a means of fighting bufferbloat is just fundamentally broken. Using the receive window as the rate limiting mechanism just means that the actual transfer rate will depend on the RTT this is why a local proxy helps.
For this kind of thing to work well, you can't have the rate limit depend on the RTT. You also can't just have somebody come up with a number once, and apply that limit to everyone. The limit needs to depend on the actual network conditions. There are ways to detect how congested the downlink is in the client-side TCP stack. The proper fix would be to implement them, and adjust the receive window of low-priority background downloads if and only if congestion becomes an issue.
That would actually be a pretty valuable feature for this kind of appliance. But I can kind of forgive this one; it's not an off the shelf feature, and maybe Sony doesn't employ any TCP kernel hackers. Fourth, whatever method is being used to decide on whether a game is network-latency sensitive is broken. It's absurd that a demo of a single-player game idling in the initial title screen would cause the download speeds to be totally crippled.
This really should be limited to actual multiplayer titles, and ideally just to periods where someone is actually playing the game online.
Just having the game running should not be enough. I have no idea. Sony must know that the PSN download speeds have been a butt of jokes for years. It's probably the biggest complaint people have with the system. So it's hard to believe that nobody was ever given the task of figuring out why it's slow.
And this is not rocket science; anyone bothering to look into it would find these problems in a day. But it seems equally impossible that they know of the cause, but decided not to apply any of the the trivial fixes to it.
Hell, it wouldn't even need to be a proper technical fix. It could just be a piece of text saying that downloads will work faster with all other apps closed. So while it's possible to speculate in an informed manner about other things, this particular question will remain as an open mystery.
Big companies don't always get things done very efficiently, eh? So idle that I hadn't even logged in, the app was in the login screen. The CDN that was being used from to was using a delay-based congestion control algorithm, and reacting to the extra latency by reducing the amount of data sent.
The CDN used earlier in the connection was using a packet-loss based congestion control algorithm, and did not slow down despite seeing the latency change in exactly the same pattern.
If you liked this and want to be notified of new posts, follow me on Twitter. Very interesting post! Thank you for doing this research. Have a feeling this will be posted in forum debates a lot.
PS2 can not run any things in the background but I'm just curious about how it's networking stack works, being an older system. Also has video apps like youtube, twitch and Netflix. Large companies don't really have mechanisms in place for feedback like this.
Sure, one could send it to customer support or something like that. But the report will never reach engineering. The best one can hope is that somebody is keeping statistics on exactly the subjects people complain about, and once a quarter somebody looks at those statistics to decide what to prioritize. And also, I think it's basically guaranteed that somebody at Sony is already aware of all the details in this post.
Now if we could only find out why the PS4 "randomly" goes "LAN cable not connected" even though it damn well isn't. Very interesting read. Could you share more detail on how you went about gathering the data used in the graphs? I took a packet capture on the next hop after the PS4. This packet capture was then analyzed with a hacky perl script which just picked out the parts of the TCP header I wanted, and aggregated them by-connection at a 10s granularity.
I doubt the code going to be useful for anyone, but I do like it as an illustration of just how simple this kind of ad hoc analysis can be even without explicit tool support. That's a good guess!
Some sort of new failure of exactly that code is what I was hoping to find. But unfortunately it's not the case. All of the connections were using TCP timestamps, but the autoscaling was not in effect at all despite that. They're clearly manually setting the receive buffer size with setsockopt , and that disables the autoscaling. I didn't check whether non-PSN connections had autoscaling enabled or not.
Thanks for this very interesting blog post, BTW.. Have been annoyed by this particular set of issues for a very long time. Strangely, I never thought that the software could be such an egregiously bad actor in this case. I think a more egregious issue is why the PS4 is so much slower over WiFi than over Ethernet - would it really just be congestion at the AP?
But I think that ought to be demonstrably false when I can download at high speeds on a laptop that said, I'm most likely not using any of the same sources as the PS4. I honestly think that the set of devices released by Sony around the same time as the PS4 suffer similar problems - Currently, our TV cannot "find internet" over our WiFi, and that's when it manages to find and connect to our WiFi in the first place!
If they wanted to limit the rate of downloads it would make a lot more sense to set the allowed rate to e. Any thoughts on why Wifi speeds are just so slow? Is it a similar issue where the software caps speeds of downloads if the system sees it's on a Wifi connection? You're on the right track, except that it needs to go a step further. The allowed rate should not be static, like 1Mbps. It should actually depend on the network conditions.
The core goal of making sure background downloads don't interfere with games or streaming is reasonable. It's just that it's implemented in the wrong way, and triggered even when not necessary. If I understand correctly, I would not be able to notice these issues at all with my 5 Mbps adsl. Welcome to Germany. Seems like a "feature" that only surfaced with the advent of high Speed internet.
Interesting to have some figures on this matter although I thought everyone was aware of the fact that apps being open at all limited the download speed. That said I have apps set to be suspended in rest mode but have measured how fast the same download took Both with ps4 on and in game and in rest mode with game suspended and even accounting for changes in Internet bandwidth that occurred in that time period the download when in rest mode was almost twice as fast.
Something not explained by changes in Internet bandwidth. Out of interest I don't think you said we're you using normal Ps4 or ps4 pro? As the pro in theory has faster clocks peed on cpu which might effect how games using cpu effect any download limiting in those cases it also has the newer WiFi chipset I believe. Thanks for that, community. We need people like you in the company, rather than just business folk! It appears that the ARM coprocessor is not actually used for downloads, even though it was the original plan.
Sony stated this officially soon after the PS4 launch, and nothing I've seen suggests that things have changed since then. This was on an non-slim PS4. Yes, there could be a difference between "game running" and "game suspended in rest mode"; specifically it does look like actively playing a game can cause the download to genuinely starve for CPU.
You can find the section where this is discussed by searching for "Horizon". Excellent article thanks. Explains why pointing at my synology nas proxy sorted out the performance for me. I just wonder if receive window affects ps now applications as well. Ideally, the router and console should be in the same room, or as close as you can manage.
Follow these tips to get a better wireless signal. Many users swear that setting up a proxy server on a local machine solved their download woes. A proxy is like a gateway to the internet most commonly found on a corporate network. One Reddit user explains how this can help improve your download speeds:. By getting a computer on your local network to do some of the heavy lifting, it may be possible to increase your download speed. This is especially true for early PlayStation 4 models, which have notoriously flaky network adapters.
Hold the Options key and click on the Network icon in the top-right corner of the screen. Keep in mind that your PS4 will need to use this proxy to access the internet. The DNS servers you use determine which servers are resolved when you enter a web address. Some have theories that your choice of DNS servers affect which servers your console uses for downloads. The best way to do this is to change your DNS servers on your router, which will affect all devices on your network.
When was the last time you tested your internet speed? If your internet speed is slow to begin with, nothing you do to your PS4 is going to improve things. Test your connection using a laptop or desktop computer by going to Speedtest. Browse All iPhone Articles Browse All Mac Articles Do I need one? Browse All Android Articles Browse All Smart Home Articles Customize the Taskbar in Windows Browse All Microsoft Office Articles What Is svchost.
Browse All Privacy and Security Articles Browse All Linux Articles Browse All Buying Guides. Best iPhone 13 Pro Case. Best Bluetooth Headphones for Switch. Best Roku TV. Best Apple Watch. Best iPad Cases. Best Portable Monitors. Best Gaming Keyboards. The agonizingly slow download speeds of Sony's PlayStation Network are well-documented. It's especially obnoxious when you come home from a long day of work, ready to play a newly released game or expansion, but are faced with an update that is estimated to finish downloading long after your bedtime.
Many "fixes" have been discussed over the years -- manually changing your DNS server to Google's, for instance -- but most are snake oil. This fix, though, might actually work for you, as some internet sleuthing and personal testing have revealed a high success rate. You're going to set up a local proxy on your computer and run your PS4's internet connection through that for downloads. As someone who's had PSN download speed problems for years -- especially on the day of a release or major update -- I found myself frequently Googling for and testing out potential fixes that never worked.
Changing DNS servers, ritualistically switching between WiFi and Ethernet, superstitiously pausing and unpausing downloads at different completion percentages, and even trying to let all downloads progress while the PS4 is in Rest Mode. Nothing ever worked. I finally landed on this potential fix from Redditor TheTigerbite, which described a very simple four-step process that only took a couple of minutes and basically completely uncapped my PSN download speeds.
I'm just here to let you know that, if you fall into the camp I've been stuck in for years -- every fix you come across not working -- this one actually works.
That's it.
0コメント