© The Author(s), under exclusive license to APress Media, LLC, part of Springer Nature 2022
S. Kelly, K. KumarUnity Networking Fundamentalshttps://doi.org/10.1007/978-1-4842-7358-6_8

8. Servers

Sloan Kelly1   and Khagendra Kumar2
(1)
Niagara Falls, ON, Canada
(2)
Katihar, Bihar, India
 

Servers are like computers that sit at the other end of the network helping you do things. Servers are used for multiple purposes, including as webservers. They are used for data storage, loud storage, cloud computing, research, and for games as well.

Games use servers in different ways, which means the way the servers are developed is different as well (see Figure 8-1).
  • Dedicated servers

  • Listen servers

  • Peer-to-peer networks

../images/504537_1_En_8_Chapter/504537_1_En_8_Fig1_HTML.jpg
Figure 8-1

Server and clients

What Is a Server?

A server is a computer that connects to different computers over the network to serve data over LANs (Local Area Networks) or WANs (Wide Area Networks).

You might have heard of different types of servers—email servers, web servers, file servers—these servers have similar hardware components whereas the software they run is unique.

Server software includes Apache, Nginx, and Microsoft IIS, which are most predominantly used for website hosting. Some SMTP servers used for email services include Exim, iMail, etc.

While any computer can be configured as a server, the major difference is the hardware design. Servers are designed to run around the clock without any hiccups. Many industries and big organizations don’t use traditional computers for servers; they use especially designed cases for servers named as 1U, 2U, 3U and so on, the sizes of which vary upon their usage. These servers are typically mounted on hardware racks for storage.

Since these devices are capable of running with major interruptions and can be left alone, most of these servers are configured in a way that they can be controlled and managed remotely.

Dedicated Servers

Dedicated servers are exactly what they sound like. These servers are dedicated to one specific purpose, which can be for video streaming, web hosting, or for any other purpose. Most businesses prefer dedicated servers because of their immense power and flexibility. Servers are mostly used by websites over the Internet and most websites across the Internet are hosted on shared servers.

Shared servers are servers that host hundreds or thousands of websites. This makes renting server space a lot cheaper for owners who don’t require a lot of storage and computational power. However, once they need to upgrade their plan, they can migrate to dedicated servers, which are usually known as VPSs (Virtual Private Servers).

With a VPS, you get a virtual computer, which you can configure according to your needs. A VPS is as flexible as dedicated servers to an extent. But this is still far from an actual dedicated server, which means you have access to the actual server. The major downsides to this kind of approach are cost and maintenance. As their devices are manufactured to run continuously in isolation, they also can be extremely loud and might require an ideal environment to operate at 100% capacity.

Who Should Get a Dedicated Server?

Consider these characteristics of dedicated servers:
  • Scalability: Dedicated servers are very easy to scale up, which is beneficial for growth. For example, websites like Google and YouTube, which serve billions of users daily and are expected to grow, would burn a lot of money in renting servers.

  • Security: Companies that deal with very sensitive data may not want to use dedicated servers. Keeping that data in a shared space is a big concern. If any of the websites or services hosted on that same shared space are compromised, the possibility of confidential data being leaked is significant.

    Any malicious web service could also rent the same server with bad intentions to compromise the service. They could infect the service with ransomware, virus-vulnerable code, or any other malicious activity.

  • Speed: Shared services can lead to instability, depending on a load of the shared websites and this, in turn, can affect the performance of your services.

  • Control: As discussed earlier, dedicated servers allow you to customize your services as needed, which means you have the power to offer non-traditional services, such as game builds, game streaming, etc.

Dedicated Servers in Gaming

Since the beginning of personal computers, private game servers/dedicated game servers were always among the top choices for gaming platforms. This was preferrable to depending on a multiplayer service provider.

Creating your dedicated game server has a lot of benefits, including stability, customizability, and control. A lot of different multiplayer systems use dedicated game servers, including PUBG, ARK: Survival Evolved, Team Fortress 2, etc.

Most public game servers use the client-server model (discussed in Chapter 5) or peer-to-peer (P2P) hosting, both of which have their problems. Client servers are run by process owners, usually the publishers or manufacturer, and as a consequence they can manage individual connections. This model works in most cases, but it lags in terms of customizability options.

P2P (peer-to-peer networking) is another very popular modern multiplayer gaming service. Using P2P, one player can dynamically act as host or master, which can facilitate connections from other devices or players. This system is highly random, as anyone can be chosen as the host. If the host’s network is poor, everyone will have a bad gaming experience.

Headless Server, AKA Listen Server

A headless server can be controlled over a network. These servers don’t have a keyboard, mouse, or any other peripherals. For example, servers that are configured on rack mounts are typically headless servers, as shown in Figure 8-2.
../images/504537_1_En_8_Chapter/504537_1_En_8_Fig2_HTML.jpg
Figure 8-2

Server racks in a datacenter

A system without a head (a monitor) or without a local interface is also headless. There need to be peripherals like a keyboard, mouse, screen, or a local interface to control it. Headless systems lack graphical systems to access and administer them, instead they are usually administered remotely over a network, via SSH or VNC.

Why a Headless Server?

When we talk about servers, we mostly talk about datacenters and very large server arrays that look like a sci-fi movie scene. In these environments, computers are usually stacked on top of one another and hundreds of racks of that type are placed together. These server farms or datacenters are controlled via networks and they rarely need human intervention for maintenance.

These systems are managed over the Internet so they don’t need any peripherals except networking gear. Server hardware is getting smaller and more efficient, and these systems can run for years without any human intervention, provided the Internet and power are constantly provided. The popularity of headless servers is growing day by day.

Headless Servers in Games

In game-based dedicated servers, the server might act as a bot or be coordinating the actions of another player or playing by themselves as a bot. This is considered a dedicated gaming server and these types of games are usually multiplayer games. In this case, a headless server is mostly used for administrative purposes.

Many times, you’ll want to play an online game where a server will be used mostly for administrative purposes. These servers do not have a graphical interface or have any human interaction from the server-side. For example, consider a game where every person has a task to complete and they are not competing with each other. The AI is running on a device, competing against a real human. Just for the sake of management and a sense of competitiveness, the server will be used to assign the level and AI parameters, which means the allocation and administrative jobs. In this case, it uses a headless server.

Peer-to-Peer Networks

As you might notice, we don’t call these peer-to-peer servers because peer-to-peer communication is not considered server-based, per se.

When two or more devices connect to each other directly, without any entity in between, that’s called a peer-to-peer network. The device trying to share the data is directly connected to the device waiting to receive the data.

Peer-to-Peer Networks in Games

This type of network is widely used with games that want to create a local group of players, such as with Counter Strike, Mini Militia, and many more. They can create a local server on which players can connect and then directly join the game. These kinds of network games are called peer-to-peer games. Because there is a local server, the delay and other networking issues will be minimized.

Benefits of a Peer-to-Peer Network

  • No central server: Developers do not need to manage costly servers and handle all the networking issues.

  • No queue management: Developers don’t have to manage multiple game rooms and do matchmaking for players, as this is handled automatically by the players. The local network can support more than 10 people.

  • No downtime: As most servers will be completely managed by the local players and there is very little dependency on the Internet, there isn’t any downtime.

  • No loss of players: In online games, developers have to deal with loss of players due to loss of network, rage quits, etc. These need to be handled and developers manage them by replacing the player with a bot. In this case, developers don’t have to do that, as a local peer-to-peer setup reduces the chances of network dropout. Developers don’t need to use bots either.

Load Balancers

As the name suggests, the basic functionality of a load balancer is to help the datacenter balance the load between the servers. It can also be seen as a tool to distribute the workload request from the client to different servers in order to optimize the delivery time and effective utilization of servers.

A load balancer can be a physical device or a virtual device running along the server to process incoming requests and control the assigning of requests to different servers. This is also known as Application Delivery Controllers (ADCs) and this type of system is designed to improve the performance and security of systems (see Figure 8-3). They predominantly use scheduling algorithms like Round-Robin, SJFS, and many more to effectively manage loads.
../images/504537_1_En_8_Chapter/504537_1_En_8_Fig3_HTML.jpg
Figure 8-3

Load balancing ADC

Load balancers are a crucial part of the modern Internet infrastructure, a load balancing-capable ADC will help the IT department ensure secure scalability by ensuring 100% availability of services. Their advanced functionality of traffic management can help businesses and consumers efficiently serve customer requests while maintaining efficient usage of hardware resources. An ADC might offer additional services to enhance security and flexibility, such as firewall protection, data encryption, and DDOS protection.

A load balancer can be of two types (see Figure 8-4):
  • Hardware based

  • Software based

../images/504537_1_En_8_Chapter/504537_1_En_8_Fig4_HTML.jpg
Figure 8-4

Load balancer types

Hardware-Based Load Balancers

Hardware-based load balancers are capable of securely managing and processing hundreds of gigabits of traffic from multiple sources. They also have built-in virtualization capabilities that allow them to be configured as an army of load balancers for some specific use cases. This kind of flexibility provides a multi-tenant architecture with full isolation, along with other benefits. See Figure 8-5.
../images/504537_1_En_8_Chapter/504537_1_En_8_Fig5_HTML.jpg
Figure 8-5

Load balancing switching

Software-Based Load Balancers

The job of load balancers is to manage the load or incoming traffic, and software-based load balancers can be installed on any hypervisor to ensure the functionality of load balancers. They can run on the same server using a hypervisor or they can be run inside containers of Linux subsystems to reduce the load on an existing server. This can save a lot of space and hardware expense.

Summary

The chapter started with a discussion of servers and how they work. You learned about server segregation based on game systems, like dedicated, headless, and P2P servers, and you also learned about how these servers are used in games.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset