Menu Close

VR Gaming on Azure Part 1, Network requirements

A while ago I was hanging out with some friends, and one of them had an Oculus Quest 2.
After a few hours of Beat Saber smacking on AC/DC and messing around in Job Simulator I was thinking. Can I play Half-Life Alyx on it?

You can if you connect it to a Game PC with a powerful GPU. I don’t have a game PC. But I do have a Azure Subscription. Can I use Azure as a remote gaming node?

Luckily my employer InSpark bought the Meta Quest PRO for research purposes and I got a chance to play with it.
{JerryRigEverything voice}: “Let’s get started!”

What do we need…

We need some local and Cloud resources for this project.
We also need a fast and stable Internet connection and a low latency connection to Azure. But how fast exactly?
I have found some documents from Nokia and Huawei.
Based on the documents we need a latency under 7 ms and a download speed above 260 Mbps to Azure.
Let’s try to achieve this.
But why is this important?

You will need a high download speed to stream the video output to your headset.
So if you have a low download speed and you move your head, and it’s taking a full second to move your head in-game when you are shooting zombies… Gonna have a bad time.

What about upload speed and latency?
Every movement or step your are taking with your headset on needs to be sent to Azure to process.
Based on the action or movement, the game will react. This needs to be fast as possible with low latency as possible.

What do I have

I want to test how much network speed I can get from Azure to my home, and also want to test my home network.
This is what I have.

  • 500/500 Mbps fiber internet connection
  • Draytek Vigor 2927AX (FW:4.4.2.2)
  • Meta Quest Pro (Provided by InSpark)
  • Access to a global network of super computers : Azure
  • Surface book 3 as management/benchmark system
  • Nokia XR20 5G

Why the Nokia is listed? this is for a upcoming part.

Local connection
I am using a Draytek Vigor 2927AX and the Oculus is connecting with a 5Ghz connection. 2.4Ghz seems not reliable for this setup. The Draytek is configured at 160Mhz starting on the 100th channel on the 5Ghz band.
I am achieving a 2.5Gbps uplink to my Surface and Oculus from the Draytek router.
Seems like a bit overkill, but I want to make sure my home network doesn’t cause any bottlenecks.

Internet Speedtest
On my contract from my ISP I’m having a 500/500 Mbps, But how fast is it really?
I’m using Speedtest.net with KPN-NL as a target. I’m living in Heemstede NL and this server is in Amsterdam so it’s close to my location.

TimePingDownloadUploadTarget
Speedtest.net
Source
09:003ms583Mbps674MbpsKPN-NLSurface-Home (wired)
12:302ms612Mbps668MbpsKPN-NLSurface-Home (wired)
18:303ms630Mbps643MbpsKPN-NLSurface-Home (wired)
23:002ms600Mbps689MbpsKPN-NLSurface-Home (wired)
12:453ms675Mbps306MbpsKPN-NLMeta Quest-Home(Wifi)
13:451ms9270Mbps8824MbpsKPN-NLAzure-VM (West-Europe)
19:0020ms251Mbps110MbpsKPN-NLNokia XR20 – 5G Tele2
19:0020ms256Mbps100MbpsKPN-NLNokia XR20 – 5G KPN
Based on these results, my home internet connection seems sufficient for VR gaming. But we also need to test the throughput to Azure.

Connection to Azure

Azure is separated into geographical ‘regions‘. You will need to find a region near to your location.
There are some sites to check the closest region. Azurespeed.com and azurespeedtest.azurewebsites.net.
You will also need to check the availability of the VM-SKU in your region. In this blog I am using the NV6 SKU.
Due to high demand the SKU might be not available for you.

Based om my location, I will select West Europe (Netherlands)

Throughput to Azure
To test the troughput from Azure to my home, I’m using a VM with a tool called iPerf.
Iperf is a tool for network performance measurement
I’m using a Standard_D8ads_v5 VM (West-Europe) as iperf3 server and my Surface 3 book as client.
Besides the WAN test I also want to mess around with VPN since the connection goes over public WAN.
My Draytek can also be used as a VPN Server and S2S VPN Client.
For iperf3 I used default settings and reverse mode for Download test.

PingDownloadUploadServerClientConnectionNote
3ms350Mbps434MbpsAzureVMSurfacePublic WAN
8ms56Mbps54MbpsAzureVMSurfaceOpenVPNDraytek as VPN Server
Azure VM as Client
7ms64Mbps75MbpsAzureVMSurfaceL2TP-IPSECDraytek as VPN Server
Azure VM as Client
7ms238Mbps260MbpsAzureVMSurfaceIPSEC IKEv2Site2Site VPN
VPNGW2-G2 SKU
Based on this I decided to continue over public WAN, The VPN seems to cause some overhead.

Let’s recap. Based on the whitepaper I need a latency under 7 ms and a Download speed at least 260 Mbps.
I can achieve this on my network!!
In the next part I will continue on the Azure side of the project, Including some Infrastucture as Code.