2024-01-31
Disclaimer: I'm sure I have a few things wrong so my fellow Reddit friends will help me out here. The goal is to start a discussion on networks and how we may help those that need it. Unfortunately my time is limited today in how much I can write but I'll try to put down as much as I can to get the discussion going.
I see a common complaint with many Google Stadia users:
People complain about network performance issues, lag, and disconnects. But Motavar... I have a 1 gig connection and I can download software and stream Netflix without issue. Stadia's network sucks and the system is broken.
What Stadia does is expose poor networks, poor LAN/WAN setups, and wireless networks with poor design/interference. Maybe we can break this down a bit to see what is wrong with your network, some myths, and how we may solve them.
The amount of bandwidth you purchased doesn't always mean you have that bandwidth available to your target destination.
So your ISP sold you a 1 gigabit connection. You spin up speedtest and test the closest ookla test point and sure enough you're around 900+ mbps to that location. Great you say.. but what you're missing is that some ISPs will give priority for the speedtest traffic over their network or setup a local ookla speedtest point on their network. Sure you may test well to that location or within your ISPs network but what about the rest of the Internet?
Your ISP unfortunately does not have unlimited bandwidth so the service is always oversubscribed. The amount of bandwidth will vary depending upon how loaded your local area is.
Your ISP has peering with other networks and backbones to reach the Internet. These same networks have limited bandwidth and cannot always give you, lets say, 1gbps to the target destination. The target destination may also have limited bandwidth and throttle the incoming requests. You will see this a lot when downloading a new game from an online store where everyone is trying to hit the location at once. The target destination unfortunately doesn't have unlimited bandwidth so your throughput will be lower. Not to mention the transit links you go through to reach that destination may be oversubscribed or have problems.
You can test with other online speed tests to find out what you're really getting but what's the point.. you're not going to convince another provider or backbone to increase their infrastructure just because you paid for 1gbps and they only have 500mbps. You need to get the i have 1gbps internet everywhere
out of your head.
But I can stream Netflix and youtube without a problem.
Sure, but that network stream can buffer to make up for times when the speed or latency is increased. There is some wiggle room but in the case of Stadia (or anything requiring near real time) you do not want buffering. So there is no wiggle room to make the connection appear to be smooth. You'll notice those times of reduced throughput or maybe route changes on the Internet cause additional latency.
Most networks or ISPs have multiple connections to backbones and unfortunately in the real world people run into telephone polls and fiber breaks, backhoes dig up lines, squirrels chew on your internet, hardware/optic failures happen, and well.. you're traffic ends up re-routing through another location which may cause latency to change all of a sudden. It might appear like google's servers are having issues when you're really noticing problems out in the physical world.
Lets Talk Wifi
NOTE: You'll have to do additional research on your own since I cannot explain it all in this thread
So you picked up that fancy 5ghz dual band wireless router and stuck it in your house or apartment closest to your modem. You have like 8 antennas, maybe you spent like $150-300 for the thing so surely it's badass. It should cover the whole place and you're sitting on the other side of your house or apartment and speeds are low, latency sucks, so why is this?
You're most likely you're missing the whole part about wireless design and how RF works.
We'll get into wireless design further below but first lets talk about 2.4 and 5ghz.
1. We'll start with 802.11 2.4ghz:
The recommended channels for this setup would be 1, 6, or 11. To keep it clean you'll want to use these channels because of the following:
Channel 1 covers over way up to channel 3.
Channel 6 covers over channels 5 and 7
Channel 11 covers over 10 and 12
If you setup your home router with channel 1 and then channel 3 you'll end up causing your own interference for connected devices. I recommend you look at your router configuration and google 2.4ghz channels image and look at the pictures. You want to make sure your home network doesn't have anything that overlaps with each other. To keep it simple use the channels I listed above.
Unfortunately most people live in an area with neighbors and the 2.4ghz signal can travel pretty far. They usually see your traffic and choose a channel that doesn't match their neighbor. Unfortunately this usually overlaps with your channel and on top of that they turn up their wireless signal power thinking this will help drown you out. Unfortunately that doesn't help the situation and we'll get into that on wireless design below.
NOTE:
I could go further into 2.4ghz but honestly the only reason at this point to use 2.4ghz would be for legacy devices and if you live an area where you don't have a lot of people close by. If you didn't already know, the 2.4ghz range is also subject to interference from Bluetooth devices, microwaves, cordless phones, and other devices. So sticking with 2.4ghz you'll most likely run into problems so I recommend you move on from 2.4ghz.
2. 5ghz Wifi
This discussion we'll assume you're using 802.11AC 5ghz wifi since most people haven't moved into AX or beyond. This is what you want to be connected to, to avoid the problems listed above.
You'll want to use 5ghz since it has less interference from microwaves, cordless phones, Bluetooth, etc. Unfortunately it has less range so maybe we'll just jump into the wireless design to explain it further.
Wireless Design
Wireless is a physics problem.
In 5ghz wifi the signal doesn't penetrate walls or structures like 2.4ghz does.
To begin this setup I recommend you download a wifi signal application onto your phone(analyzer). This will help you view the wireless signals around you and help you design your network. Any free wifi signal app on your phone should be okay.
Channels
There are 20mhz, 40mhz, 80mhz, and 160mhz wide channels. You can google 5ghz channels on google images or view this link for example:
https://www.extremetech.com/wp-content/uploads/2014/06/graphic-80211-acChannels-all.png
You have non-DFS and DFS channels. Think of the 5ghz wireless space like this.. you have wireless channels that are available for use all the time and channels that are borrowed from other areas like weather and aircraft radar.
The non-DFS channels are always available for us to use. They just work and we want to use these on our network.
The DFS channels are channels that we are borrowing from weather and aircraft radar. Under US law for example if you are using a DFS channel and an aircraft flies over your location your wireless device, by law, must shutdown that channel and wait (up to 20 mins) before trying to turn back on. Same goes with weather radar.. if you something scans your area those DFS channels will shutdown for a holdback time. Sucks, right?!
So here are the channels we want to use for best performance:
- 36-48
- 149-165
The DFS channels (which could be affected at any time) are:
- 52-144
...make a note of this as this will affect how we setup our network. BTW, if you haven't looked at an image of the 5ghz channels you really should, this will make a lot more sense!
These channels are broken up into groups.
You can run at:
- 20mhz wide and get 36, 40, 44, 48
- 40mhz wide and get 36-40 , and 44-48
- 80mhz wide and get 36-48
- 160mhz - I wont go into this because it goes into the DFS range. I just don't want to go there.
NOTE: The smaller the channels the more room for using non-DFS. But the smaller the channel the less throughput on SU-MIMO devices.
So Motavar what is the point behind all these channels and 20mhz to 80mhz wide?
Well it all has to do with speed. Think of the channel like a hose connected to a faucet. The 20mhz is a small hose and a 80mhz is a big hose. The bigger the hose the more water it can hold. So the bigger the channel the more data you can squeeze in there. We can put down a lot of little hoses on the ground or put down bigger hoses but less of them.
Up until recently your wireless network card (or NIC as we'll call it) could only connect to one channel. This was called SU-MIMO. So if you connected a SU-MIMO NIC at 80mhz wide you're throughput would be 450mbps. But what if your NIC supported MU-MIMO like an iphone or galaxy s10.. MU-MIMO allows you to connect to lets say (2) channels (or 2 spatial streams). So you could get 450mbps x 2 or 867mpbs PHY.
What does this all mean? Break it down.
Well, if you have an older NIC that does SU-MIMO and your router is set for 80mhz wide channels your max throughput would be 450mbps. If you're running at 40mhz wide your throughput would be lower. If you had a newer device with MU-MIMO you could connect to lets say 2 80mhz wide streams for 867mpbs.
Okay.. and..
Well with this info we are going to try and fix your wireless and solve this physics problem
We'll throw a few things out there (and correct me if I'm wrong):
- If you're trying to get 1gbps out of your wireless you're most likely not going to get it. Most modern devices would do MU-MIMO at 2x spatial streams. At 80mhz wide you're looking at 867mpbs PHY.
- If you think this is going to be easy, it wont be.
- If you think this is going to be cheap, it won't be.
So lets dig in!
You want to bring up your wireless analyzer app on your phone and walk around your house or apartment. The goal here is look at signal strength. For optimal performance you want to design your wireless network coverage for -68 or less (like -30). Wait, what.. yes, -68 or smaller. If you spot an area greater than -68 (like -70 to -90) then you'll want another AP (Access point) in this location.
Mental Note: You're wireless coverage should be -68 or less (-30).
With 5ghz you'll need to place wireless access points closer to your devices. For example in a 2600 square foot house I have (4) wireless access points (on the inside. 2 upstairs, 2 downstairs) and (2) wireless access points on the outside. (Wait, what, you're nuts!! yeah.. just work with me on this)
But Motavar we'll just turn the power up on the router!
WRONG… DON'T DO IT
Turning up the power on a wireless router (increasing signal output) is not the correct way to resolve wireless issues. Here is an example of what happens. If you turn the power up on your router, yes, it can talk further, but unfortunately your smaller devices like cameras, mobile phones, etc do not have the power to communicate back. Lets think of it this way:
Motavar is on one side of your house with a megaphone and is screaming at you “Hey it's me!”! He's yelling at the top of his lungs and with a megaphone you can hear him loud and clear! But you, reddit user, you don't have a megaphone so you say “here I am” but Motavar cannot hear you. ☹
^This is what happens when you turn up wireless power.
Your mobile device can hear the wireless signal but due to antenna design and low power it just can't reach the router. Or it may reach, very weak, so the throughput is lower. Mobile devices are design to conserve power so output is usually lower. Same with something like a chromecast.
But maybe your mobile device works sort of okay. Increased power causes another issue. Roaming
“Roaming between wireless access points is a function of the client and NOT the wireless access point”. Each manufacturer of wireless devices at what threshold a device will “roam”. On windows devices for example you get setup aggressive roaming which tells it to roam to another AP when the signal is just a little bit better. But on a mobile device you cannot tweak this (that I know of). So if you turned the power up on a wireless access point, the inbound signal looks strong but it cannot talk back. But since the signal is strong it won't roam to a closer AP. So your performance sucks as you move around. If all of your Aps are at high power you're less likely to roam to the better access point. Turning down your wireless power will allow your mobile devices to roam better.
MENTAL NOTE: YOU WANT TO TURN YOUR POWER DOWN OR ACCESS POINTS
This gives your mobile device a chance to roam to the nearest AP which it can actually talk to!
Okay but looking at your wifi app analyzer you have low signal strength (greater than -68). Now what?
Well here is the hard part. You need to add more Access Points for additional coverage. But what.. I didn't have to do that with 2.4ghz. Well 2.4ghz goes through walls easier, 5ghz doesn't. So more access points is what you need.
And this friends is why 5ghz = $
So lets get into Channels and MU-MIMO
You now realized that you need more access points
What channel should you setup?
80MHZ vs 40MHZ
80mhz...
If want the best throughput you would go for 80mhz wide.
The only reason to go this route would be if you had modern NICs or devices that could do MU-MIMO.
If you have MU-MIMO devices you want to divide your network into two main areas:
You want your primary area to be channel 36-48 – 80mhz wide. So your MU-MIMO device will do 867mbps You want your second most important area to be 149-165 – 80mhz wide. So your other MU-MIMO devices can do 867mbps there.
The rest of your wifi network that isn't that important (basement, kitchen, bathroom) can use the DFS channels which would die at any point (remember that weather radar and aircraft bullshit.. yeah.. it's a real thing). So you have to think of these areas as changing channels or dying at any point.
40mhz...
Unfortunately not all devices talk 80mhz wide on MU-MIMO
So lets say you hook up an Amazon Alexa device to your new fancy 80mhz wide network. It only talks 40mhz. So now it takes up airtime on your 80mhz wide channels and ends up slowing down the whole 80mhz wide channel. What do you do?
This is why most people would want to setup a 40mhz wide channel design for their home.
It gives you more channels to work with that are outside of the DFS range. You don't have to worry about channels shutting down for 20 minutes when aircraft is detected. This would be the best setup for most people.
But Motavar, you told me that 40mhz was slower. Unfortunately it is but if you want stability this is what you most likely have to do. But What if I really wanted to have 80mhz MU-MIMO 867mbps speeds for when I work from home and yet I wanted 40mhz for my IOT devices?
Well that is where we get into making multiple wireless networks. Lets do it!
Breaking down your home Wifi into multiple wireless networks:
I recommend the following:
- Put your 2.4ghz onto one wireless network name (call it Legacy or whatever.. FBI VAN1)
- Put your 5ghz 40mhz wide onto one wireless network name (IOT_Crap)
- Put your 5ghz 80mhz wide onto one wireless network name (Fast_Stuff)
We breakdown wireless networks into different performance groups. We do this for a few reasons.
- If your 2.4ghz wireless name and your 5ghz wireless network have the same names you'll run into roaming issues, performance issues, etc. You have no control over where the wireless endpoint is going or connecting to. iPhones and other devices have an issue switching between 2.4/5 with the same SSID. Be smart, take control of your wifi, and put legacy stuff on 2.4ghz. Put the new stuff on 5ghz. We do this by creating new network names or SSIDs.
Note: The switching between 2.4ghz and 5ghz using the same ssid (network name) is called bandwidth steering. Unfortunately the technology is known to have issues with different wireless network devices and mobile devices. Save yourself the frustration and create a different network for your 2.4ghz devices. - Put your chromecasts, alexas, and IOT devices onto a 5ghz 40mhz wide network. This is done to control broadcast traffic and bandwidth usage. Most of these devices do not support 80mhz wide. So instead of slowing down our 80mhz wide network we'll put them into their own little world.
- Put your most critical high bandwidth devices like work from home laptops and modern phones onto your wireless 80mhz wide network for the most bandwidth. Just make sure they support MU-MIMO or 2x spatial streams for 867mbps. If they cannot do 867mpbs+ then stick them on the 40mhz wide wifi network.
- And while we're at it...
Make a guest network for your kids and kids friends. Keep them off your production network. I can't tell you how many times my daughters friends drove up and sat outside our house using wifi. You don't want them on your production network poking around. If your home router supports a guest network then do this. You'll thank me later.
Example: You're daughter breaks up with her Boyfriend and now you change the wifi password. If they are not on a guest network that means you're running around to X amount of devices changing the wifi. I have 40+ devices in my home.. changing the password is not an easy thing. Stick the kids and friends on guest and save yourself the headache.
Okay so now you realized that you need to have multiple wireless networks. Now what!?!
- Bust out the phone with the signal analyzer, walk around, and start looking where you need additional access points. You want -68 (or better) in all areas where devices will sit. Put your phone in the spot where the device will be. If the signal is greater than 68 (like -70 or -90) its time for a closer AP.
- Put in additional access points.
- Create your different wifi networks. Create your 2.4ghz legacy network, Setup your guest network and setup your 40mhz wide network.
- Make sure each Access Point has its own non-DFS channel assigned to it that doesn't overlap with the access point near it.
- Once again, look at those images on google and look at what channels do not overlap. Just say no to overlapping channels!
What about Mesh networks?
Disclaimer: I'm not familiar with the mesh networks and what channels they use for communications. Its very well possible that they use non DFS channels to build their connection but I don't know if that is 40 or 80 wide. My take on this would be to use non-DFS for the mesh. If it uses 40mhz wide that would still leave you non-DFS channels for use with clients. My only advise is to try and avoid DFS channels in your network layout.
Some reddit people will have to comment on Mesh networks and what they use for channel width.
Note: I spent the time running cables through my home to attach APs and avoid using mesh networks. This is because I was going for 80mhz throughout for optimal performance. While mesh works I personally did not want to go down that road.
Take Aways (thoughts)
- Look at your wireless network and confirm you have no overlap
- Turn down your wireless power and add additional access points
- Design your network around -68 and better to all devices in your house
- Design around 40mhz wide and only design for 80mhz wide for newer devices which require higher throughput
- Only design for 80mhz wide if you have newer devices that support MU-MIMO 2x spatial streams. Only put newer MU-MIMO devices on your 80mhz wide wireless network. Only create 80mhz if you really really need 867mpbs.
- Don't call your 2.4ghz wireless network the same name as your 5ghz wireless network. Create different wireless networks. It's okay, just don't exceed 4 networks (SSIDs)
- Create a guest network for kids and friends. Never give them access to your production network.
- Use your phone app/wireless signal analyzer to find weak spots in your wireless coverage
- Try to avoid 2.4ghz whenever possible.
AND FINALLY
- IF IT DOESN'T MOVE IT GETS A PATCH CORD.
If you have a device that is there all the time, and if possible, run an ethernet cable to it. Wireless is a shared medium meaning the bandwidth is shared and limited. It has to wait for people to stop talking before others can talk. Don't fill up your wireless network with devices that never move around. Spend the time and run an ethernet cable to it. The less devices on your wireless network the better performance you will have. - INVEST IN YOUR HOME NETWORK
I know networking equipment isn't cheap but you really need to start thinking about what you're doing with your home network. Maybe you work from home, or watch movies, provide access for your kids to do research or school work, manage your home IOT devices/cameras/security systems. Start investing into your network since the amount of devices being added will only grow.
And this is why Google Stadia recommends plugging the Chromecast into your ethernet connection.
They know most of you have a single router sitting in a closet somewhere and the signal strength is low. Most likely you have like 30 devices on a single access point so the airtime is limited for communications. You're probably too cheap to upgrade your 2.4ghz linksys router to something new. It's nothing personal but they know you most likely didn't invest in your home network, so recommending you plug-in your chromecast is an easy fix.
There are many factors that go into network performance and unfortunately many of these are outside the control of Google. Before you bash the service and get pissed off that Stadia sucks you really need to understand whats going on in your network and your Internet connection. Google Stadia is amazing and what it really showed us is that many networks have problems.
So just because you have super fast Internet at home doesn't really mean you have a great network for Stadia.
-Motavar
PS:
This post was to start a discussion on home networks in general.
I agree that bandwidth doesn't equal performance.
It probably would have be better for me to state that you cannot just throw a wifi router in your house and claim to have 1gbps internet so your performance is good. When your chromecast is connected at 2.4ghz on channel 3, you live in an apartment with 6 other neighbors using 2.4, and your chromecast is about 60 feet away from the router. The latency and interference would probably suck.
I think the goal here is to show that having a great internet connection is not always that easy. Setting up a home wireless network isn't always plug and play as it sounds.
There is work that goes into setting up your network (or wifi network) and a lot of people cannot just turn around and blindly blame Google because Stadia lags.
I'm hoping the community will chime in and offer advice for everyone that has network issues. There are more factors that we haven't touched on like other people on your network sucking up bandwidth, trying to prioritize network traffic, solar flares (hahah), I mean the list can go on and on and on.
But maybe we can help everyone out and share setups that work. Go over products that seem to work for people. Point out things that cause issues on their networks. Maybe show how to trouble-shoot issues using traceroute or how to use a wifi analyzer on your phone. I'm not sure how far we want to go to help people but it's an attempt.
But why go through all this effort?
My personal goal is to promote Stadia because what I think what Google did here is amazing. It opens a whole new world of large scale gaming, gaming in any location that has a great Internet connection, opens up gaming on devices that do not have 3d hardware. Will it replace PCs and consoles.. nah.. but I see it opening more options for us as gamers. I think its cool that I can pick up a controller and play a game, then move to another room in the house without having to move a console. I think it's cool that I can travel and play a game on my work laptop or phone without any drama. I have nothing invested in google (and honestly my wife who works for Microsoft hates me when I talk about this) but I think this is something that we should promote. Lets help each other out. I mean really.. no one likes shitty Internet at their friends house. :)
PPS:
Special Note on -68 signal strength:
When you see me talk about -68 OR LESS in signal strength I'm really talking about -0 to -68. For all my math friends out there technically this would be greater than -68 which would result in a smaller number like -30. But for this post I would request that you ignore the - part and think of signal strength as the smaller the number you see the better the signal is. We can get go down the rabbit hole of greater vs less than.. and that is what I expect from reddit but maybe we can save it for another day? :)
Source: r/Stadia network design by u/Motovar, r/Stadia optimize