{"id":24503,"date":"2023-03-07T19:25:05","date_gmt":"2023-03-07T18:25:05","guid":{"rendered":"https:\/\/blog.mi.hdm-stuttgart.de\/?p=24503"},"modified":"2023-08-06T21:36:55","modified_gmt":"2023-08-06T19:36:55","slug":"how-riot-games-created-their-own-internet","status":"publish","type":"post","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/03\/07\/how-riot-games-created-their-own-internet\/","title":{"rendered":"How Riot Games created their own internet"},"content":{"rendered":"\n<p>Riot Games is the developer of a number of big on- and offline games, most notably &#8216;League of Legends&#8217;. League of Legends is a real-time multiplayer online battle arena game, where two teams consisting of five players each fight one another. As the game is a fast past real-time game, split-second decisions can be the deciding factor between winning and losing a game. Therefore, low latency times are one of the core concerns of Riot Games. The Game currently has around 150 million active players world wide[8]. Back in 2014, Riot Games took a closer look at what they needed to ensure that as many of their players as possible get to have the best possible experience. They identified a number of problems and came to an interesting conclusion: They needed to create their very own internet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Problems<\/h2>\n\n\n\n<p>Real-time multiplayer games, like <em>League of Legends <\/em>of Riot Games,have very demanding requirements regarding the latency of a connection. If you open up YouTube in your Browser and the site takes one or two seconds to load, that is totally fine. In a real-time game like <em>League <\/em>however, where split-second decisions and reactions can decide the outcome of a Match, your game taking one or two seconds to receive the newest game state has a huge impact. Therefore, real-time games have great interest in keeping latency as low as possible.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Buffering<\/h3>\n\n\n\n<p>Real-time games cannot lessen the impact of latency spikes using methods like buffering. To revisit the previous example, when watching a video on YouTube, it is exactly known what information is going to be requested, allowing the next few seconds of the video to already being buffered. If the latency spikes, the video can still run for a few seconds while it waits for new data to arrive. However, real-time games like <em>League of Legends<\/em> are not predictable as they are completely dependent on user input. Therefore, a slower response time will always be noticeable.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ISPs<\/h3>\n\n\n\n<p>The &#8216;internet&#8217; is not a single, unified entity. It is made up of multiple backbone companies and Internet Service Providers(ISP). And these companies have vastly different priorities than companies like Riot Games. Riot Games wants their data to take the most latency efficient path. On the other hand, backbone companies and ISP will use the most cost efficient path, even if that one will take longer.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/routingmap.png\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"443\" data-attachment-id=\"24504\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/03\/07\/how-riot-games-created-their-own-internet\/routingmap\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/routingmap.png\" data-orig-size=\"720,443\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"routingmap\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/routingmap.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/routingmap.png\" alt=\"\" class=\"wp-image-24504\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/routingmap.png 720w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/routingmap-300x185.png 300w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 1: Map showing the routing connection from San Jose to Hillsboro. The optimal connection is marked in light green, while the actual connection is shown in red[1].<\/figcaption><\/figure>\n\n\n\n<p>In Figure 1, a real traffic flow of a <em>League of Legends<\/em> player is shown. The player, in the San Jose area, tries to connect to the Hillsboro area. The optimal connection is marked in light green and would connect directly from San Jose to Hillsboro. In reality, the traffic flows to Los Angeles, over Denver, then to Seattle until finally reaching Hillsboro. In Figure 1, the path is marked in red. The optimal connection (green) would take 14 ms, while the actual connection (red) takes 70 ms, which makes a huge difference.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Routers<\/h3>\n\n\n\n<p>Another problem lies in the size of Riot Games traffic. Most internet traffic is transmitted in 1500 bytes sized packages[2]. In comparison, Riot Games traffic is usually relatively small, around 55 bytes, as it might only contain simple data like the location of a player&#8217;s click.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/messagesizes.png\"><img loading=\"lazy\" decoding=\"async\" width=\"631\" height=\"210\" data-attachment-id=\"24505\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/03\/07\/how-riot-games-created-their-own-internet\/messagesizes\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/messagesizes.png\" data-orig-size=\"631,210\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"messagesizes\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/messagesizes.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/messagesizes.png\" alt=\"\" class=\"wp-image-24505\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/messagesizes.png 631w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/messagesizes-300x100.png 300w\" sizes=\"auto, (max-width: 631px) 100vw, 631px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 2: Size comparison of standard internet traffic and Riot Games traffic[1].<\/figcaption><\/figure>\n\n\n\n<p>The problem with this size difference is that routers have the same processing overhead for packets of any size, meaning that for the router, every packets costs the same amount of work. To send the same amount of data as standard internet traffic, Riot Games needs to send around 27 packets. From the routers perspective, these packets cost the same amount of work as normal packets, meaning that Riot Games traffic has an 27x cost increase compared to the standard traffic. Furthermore, routers have an input buffer, that could theoretically hold the increased number of packets. But the buffers are not only limited by size, but also by a fixed number of packets, meaning that Riot Games also fills these buffers 27x as fast[3]. If the buffer is full and another package arrives, it will be dropped by the router, resulting in package loss in the game. As a result, a player would experience things like taking damage out of nowhere and similar things.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_before.png\"><img loading=\"lazy\" decoding=\"async\" width=\"890\" height=\"430\" data-attachment-id=\"24507\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/03\/07\/how-riot-games-created-their-own-internet\/rd2_before\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_before.png\" data-orig-size=\"890,430\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"rd2_before\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_before.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_before.png\" alt=\"\" class=\"wp-image-24507\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_before.png 890w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_before-300x145.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_before-768x371.png 768w\" sizes=\"auto, (max-width: 890px) 100vw, 890px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 3: An illustration of the connection from a player in San Jose to the game server in Chicago[4].<\/figcaption><\/figure>\n\n\n\n<p>Figure 3 shows a summary of all the problems that can occur while connecting a player to the game server: The traffic from the player first has to go through ISP access networks, is then routed across different routers, which may be already busy, increasing the chance of overburdening the routers, resulting in package loss.<\/p>\n\n\n\n<p>Riot Games saw all these problems and intended to improve the situation. Their solution: Riot Direct, which basically turns the situation shown in Figure 3 into this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_after.png\"><img loading=\"lazy\" decoding=\"async\" width=\"890\" height=\"160\" data-attachment-id=\"24508\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/03\/07\/how-riot-games-created-their-own-internet\/rd2_after\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_after.png\" data-orig-size=\"890,160\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"rd2_after\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_after.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_after.png\" alt=\"\" class=\"wp-image-24508\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_after.png 890w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_after-300x54.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_after-768x138.png 768w\" sizes=\"auto, (max-width: 890px) 100vw, 890px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 4: The connection of a player in the San Jose area to the Chicago game servers using Riot Direct[4].<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Riot Direct<\/h2>\n\n\n\n<p>After identifying all these problems shown above, Riot Games came to the conclusion, that the best solution is for them to create their own internet. The requirements they have are just too different from the ISPs. The ISPs want to have a network with as many routers as possible, to allow for as much traffic as possible, while routing along the most cost efficient path. In contrast, Riot Games wants to route the most time efficient path and also does not need excessive amounts of routers, which would just increase their latency.<br>So Riot Games got to work and started identifying the fastest fiber routes and co-locations with the most ISPs. They started setting up routers in these co-locations and peered with as many of the other ISPs as possible. Riot Games needed to be connected with as many ISPs in as many places as possible, as users data still needs to first go through their ISPs network to reach Riot Games network. Riot Games not only had to deal with hardware, but also with software side issues, mostly with the standard internet routing protocol, &#8216;Border Gateway Protocol (BGP)'[5]. The BGP is build for the common use of the ISPs, and therefore has multiple problems with the special requirements of Riot Games network.<br>One example of the problems with BGP is traffic leaving Riot Games network.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_routing.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"592\" data-attachment-id=\"24509\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/03\/07\/how-riot-games-created-their-own-internet\/rd2_routing\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_routing.png\" data-orig-size=\"1000,592\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"rd2_routing\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_routing.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_routing.png\" alt=\"\" class=\"wp-image-24509\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_routing.png 1000w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_routing-300x178.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_routing-768x455.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 5: The routes of incoming traffic (green) and outgoing traffic (red) of players with the same ISP in different areas of the US[4].<\/figcaption><\/figure>\n\n\n\n<p>In Figure 5, the incoming (green) and outgoing (red) traffic of Riot Games servers in Chicago is shown. In this case, Riot Games peered with the same ISP in the Hillsboro and Chicago area. Players in the Chicago area of this ISP would enter Riot Games network through the Chicago peering point, and when Riot Games sent traffic back, it would return to the players the exact same route. Players from the Hillsboro area of the same ISP would enter Riot Games network through the Hillsboro peering point. However, when Riot Games tried to send traffic back to those players, the BGP would compute the fastest route from the Riot Games network in Chicago to the ISP network. As they peered with the ISP in Chicago, that meant that the return traffic would leave Riot Games network in Chicago and was routed entirely through the ISPs network, effectively bypassing Riot Games Network. To fix this, Riot Games worked together with the ISPs and had them mark their traffic using &#8216;BGP Communities'[6]. This allowed Riot Games to create special rules for the return of traffic.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Results<\/h2>\n\n\n\n<p>Riot Games released some statistics they used to measure the improvement their changes brought. For the statistics, they measured the number of players with a latency under 80 ms.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"609\" data-attachment-id=\"24510\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/03\/07\/how-riot-games-created-their-own-internet\/rd2_graph_1\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_1.png\" data-orig-size=\"1000,609\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"rd2_graph_1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_1.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_1.png\" alt=\"\" class=\"wp-image-24510\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_1.png 1000w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_1-300x183.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_1-768x468.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 6: Riot Direct impact 21.11.2014 \u2013 18.8.2015[4]<\/figcaption><\/figure>\n\n\n\n<p>As shown in Figure 6, while Riot Games was working on establishing Riot Direct, the percentage of players with a latency of under 80 ms started out somewhere between 30 \u2013 35 %. By the end of their work, that percentage climbed to around 50% of players. Furthermore, their servers used to be located on the east coast, but with the introduction of Riot Direct, they moved their servers to Chicago, a more central location.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1000\" height=\"608\" data-attachment-id=\"24511\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/03\/07\/how-riot-games-created-their-own-internet\/rd2_graph_2\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_2.png\" data-orig-size=\"1000,608\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"rd2_graph_2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_2.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_2.png\" alt=\"\" class=\"wp-image-24511\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_2.png 1000w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_2-300x182.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/03\/rd2_graph_2-768x467.png 768w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/a><figcaption class=\"wp-element-caption\">Figure 7: Impact of the Chicago server move[4]<\/figcaption><\/figure>\n\n\n\n<p>The impact of the server move to Chicago is shown in Figure 7. The percentage of players with a ping below 80 ms further increased from around 50% to 80%. All in all, Riot Games managed to increase the playing experience of around 50% of the players in the US, which is a huge success.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>The modern internet is always evolving. In the past, every aspect was left to ISPs and backbone companies, which would deliver a one-size-fits-all approach. And for the longest time, this was completely okay. However, the internet has grown grown exponentially, and the requirements that individual companies may have has also greatly diversified. Riot Games looked at the state of the internet of their time, and realized that it simply was not build in the way they needed it to be. As a result, they spent a lot of time and effort to create &#8216;their own internet&#8217;, as close to their requirements as they could. Netflix came to a somewhat similar conclusion with their Netflix Open Connect[7]. And as the internet will continue to grow, even more companies will find that they have their own special kind of requirements for &#8216;their&#8217; internet, and will continue to influence and adapt the current network to their uses.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">References<\/h2>\n\n\n\n<p>[1] Peyton Maynard-Koran, &#8220;Fixing the Internet for Real Time Applications: Part I&#8221;, <a href=\"https:\/\/technology.riotgames.com\/news\/fixing-internet-real-time-applications-part-i\">https:\/\/technology.riotgames.com\/news\/fixing-internet-real-time-applications-part-i<\/a> (06.03.23)<\/p>\n\n\n\n<p><a><\/a>[2] Wikipedia, Ethernet frame, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Ethernet_frame\">https:\/\/en.wikipedia.org\/wiki\/Ethernet_frame<\/a> (06.03.23)<\/p>\n\n\n\n<p>[3] Guido Appenzeller, Isaac Keslassy, Nick McKeown, &#8220;Sizing Router Buffers&#8221;, <a href=\"http:\/\/yuba.stanford.edu\/~nickm\/papers\/sigcomm2004.pdf\">http:\/\/yuba.stanford.edu\/~nickm\/papers\/sigcomm2004.pdf<\/a> (06.03.23)<\/p>\n\n\n\n<p>[4] Peyton Maynard-Koran, &#8220;Fixing the Internet for Real Time Applications: Part II&#8221;, <a href=\"https:\/\/technology.riotgames.com\/news\/fixing-internet-real-time-applications-part-ii\">https:\/\/technology.riotgames.com\/news\/fixing-internet-real-time-applications-part-ii<\/a> (07.03.23)<\/p>\n\n\n\n<p>[5] Wikipedia, Border Gateway Protocol, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Border_Gateway_Protocol\">https:\/\/en.wikipedia.org\/wiki\/Border_Gateway_Protocol<\/a> (07.03.23)<\/p>\n\n\n\n<p>[6] &#8220;Understanding BGP Communities&#8221;, <a href=\"https:\/\/www.noction.com\/blog\/understanding-bgp-communities\">https:\/\/www.noction.com\/blog\/understanding-bgp-communities<\/a> (07.03.23)<\/p>\n\n\n\n<p>[7] &#8220;A cooperative approach to content delivery&#8221;, <a href=\"https:\/\/openconnect.netflix.com\/Open-Connect-Briefing-Paper.pdf\">https:\/\/openconnect.netflix.com\/Open-Connect-Briefing-Paper.pdf<\/a> (07.03.23)<\/p>\n\n\n\n<p>[8] League of Legends Live Player Count and Statistics, <a href=\"https:\/\/activeplayer.io\/league-of-legends\/\">https:\/\/activeplayer.io\/league-of-legends\/<\/a> (07.03.23)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Riot Games is the developer of a number of big on- and offline games, most notably &#8216;League of Legends&#8217;. League of Legends is a real-time multiplayer online battle arena game, where two teams consisting of five players each fight one another. As the game is a fast past real-time game, split-second decisions can be the [&hellip;]<\/p>\n","protected":false},"author":1126,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,396,649,650,223],"tags":[],"ppma_author":[901],"class_list":["post-24503","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-games","category-interactive-media","category-scalable-systems","category-ultra-large-scale-systems"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":24229,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/02\/27\/hyperrace-finding-the-right-architecture-approach-for-an-online-racing-game\/","url_meta":{"origin":24503,"position":0},"title":"HyperRace &#8211; finding the right architecture approach for an online racing game","author":"Simon Janik","date":"27. February 2023","format":false,"excerpt":"IntroductionRequirementsArchitecture approachesHosted Peer-to-Peer (Hosted P2P)Dedicated ServerHybrid solutions & servicesGame States: Racing World & Player DataState SimulationClient predictionServer reconciliationInterpolationConclusionSources Introduction You all know racing games. From the realistic, simulated ones like Formula 1 or Forza Motorsport to the playful, arcade-heavy ones like Super Mario Kart or Need For Speed. The range\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/02\/sfsgfsf.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/02\/sfsgfsf.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/02\/sfsgfsf.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/02\/sfsgfsf.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":11763,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2020\/09\/30\/peer2peer-multiplayer-real-time-strategy-game-admiral-ww2\/","url_meta":{"origin":24503,"position":1},"title":"Peer2Peer Multiplayer Real-time Strategy Game \u201cAdmiral: WW2\u201d","author":"Paul Mieschke","date":"30. September 2020","format":false,"excerpt":"3D Unity Peer-to-Peer Multiplayer Game Admiral: WW2","rel":"","context":"In &quot;Cloud Technologies&quot;","block_context":{"text":"Cloud Technologies","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/scalable-systems\/cloud-technologies\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/09\/AdmiralWW2_Architecture_Overview.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/09\/AdmiralWW2_Architecture_Overview.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/09\/AdmiralWW2_Architecture_Overview.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":4395,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2019\/01\/17\/radcup-a-socialmedia-beerpong-app\/","url_meta":{"origin":24503,"position":2},"title":"Radcup &#8211; a socialmedia beerpong App","author":"Immanuel Haag","date":"17. January 2019","format":false,"excerpt":"Written by: Immanuel Haag, Christian M\u00fcller, Marc R\u00fcttler Radcup adds a bit of social media to the well-known game Beerpong. With Radcup the user has the possibility to register or login. Afterwards he can display\/localize already existing games and join them if possible or create new games. As soon as\u2026","rel":"","context":"In &quot;System Designs&quot;","block_context":{"text":"System Designs","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/system-designs\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2019\/01\/Screen-Shot-2019-01-06-at-15.09.35.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2019\/01\/Screen-Shot-2019-01-06-at-15.09.35.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2019\/01\/Screen-Shot-2019-01-06-at-15.09.35.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":25613,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/08\/15\/the-hardest-boss-in-dark-souls-a-secure-multiplayer\/","url_meta":{"origin":24503,"position":3},"title":"The hardest boss in Dark Souls: A secure multiplayer","author":"Fabian Rei\u00dfer","date":"15. August 2023","format":false,"excerpt":"Over the course of the last decades, video games have continuously risen in popularity. Today, hundrets of thousands of people play video games every day. Many of these games have multiplayer, where an enormous amount of people play together at the same time. When thinking about 'hacking' in multiplayer games,\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/DS3.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/DS3.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/DS3.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/DS3.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/DS3.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/08\/DS3.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":24936,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/07\/17\/security-knockout-how-capcoms-street-fighter-5-punched-a-hole-in-intels-security-system\/","url_meta":{"origin":24503,"position":4},"title":"Security Knockout: How Capcom&#8217;s Street Fighter 5 punched a hole in Intel&#8217;s security system","author":"Frederik Omlor","date":"17. July 2023","format":false,"excerpt":"Games are usually built in order to optimize performance, not security. Nevertheless, they can be responsible for security vulnerabilities as well. This article shows how anti-cheat software, cheaters themselves and finally also game developers can cause harm to users systems.","rel":"","context":"In &quot;Secure Systems&quot;","block_context":{"text":"Secure Systems","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/system-designs\/secure-systems\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/StreetFighterV-1.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":25863,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/09\/15\/optimizing-list-views-structuring-data-efficiently-in-firestore\/","url_meta":{"origin":24503,"position":5},"title":"Optimizing List Views: Structuring Data Efficiently in Firestore","author":"js409","date":"15. September 2023","format":false,"excerpt":"While developing our guessing game \"More or Less\", we encountered a common challenge many developers face: determining the structure of our data model. Challenge 1: List vs. Detailed View Many websites show an excerpt of their content in a list view. In our \u201cMore or Less\u201d game, for example, we\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/3_optimizing_list_views_structuring_data_efficiently_in_firestore.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/3_optimizing_list_views_structuring_data_efficiently_in_firestore.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/3_optimizing_list_views_structuring_data_efficiently_in_firestore.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/3_optimizing_list_views_structuring_data_efficiently_in_firestore.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/09\/3_optimizing_list_views_structuring_data_efficiently_in_firestore.png?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"jetpack_sharing_enabled":true,"authors":[{"term_id":901,"user_id":1126,"is_guest":0,"slug":"fabian_reier","display_name":"Fabian Rei\u00dfer","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/e3437fc273b608901b301f53eb79292ee41cbaf090c423bf20ff0b082845a368?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/24503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/users\/1126"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/comments?post=24503"}],"version-history":[{"count":4,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/24503\/revisions"}],"predecessor-version":[{"id":25323,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/24503\/revisions\/25323"}],"wp:attachment":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media?parent=24503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/categories?post=24503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/tags?post=24503"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/ppma_author?post=24503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}