Glossary of terms

accept mode

The accept mode defines how a Relay server handles requests from clients trying to connect. The accept mode is always AUTO.

ACCEPTED message

An ACCEPTED message is a message type in the Relay Message Protocol specification that indicates a confirmation message sent from a Relay server to a requesting client after a successful connection to a target client.

allocation

An allocation is a request to reserve space on a Relay server for the host and the number of players the host is expecting to join their game (indicated with the max_players field in the /allocate request). After joining players join the host player’s allocation, they receive a unique allocation ID and are considered allocated.

allocation ID

A unique identifier of a player’s allocation on a Relay server.

allocations service

The entry point for interacting with the Relay service. It exposes a public-facing API that allows players to allocate a slot on a Relay server.

best available Relay server

A Relay server that best fits the needs of an allocation request.

BIND message

A BIND message is a message type in the Relay Message Protocol specification that indicates a bind request sent from a client to a Relay server.

BIND_RECEIVED message

A BIND_RECEIVED message is a message type in the Relay Message Protocol specification that indicates a successful response from the Relay server to a client after receiving a BIND request.

client

Check out game client.

client timeout

Check out timeout time to live.

CLOSE message

A CLOSE message is a message type in the Relay Message Protocol specification that indicates a request from a client to unbind from a Relay server.

CONNECT_REQUEST message

A CONNECT_REQUEST message is a message type in the Relay Message Protocol specification that indicates a request from a player (the requesting client) to connect to another player (the target client).

connecting player

A connecting player (or joining player) is a player that wants to join a host player for a game session on a Relay server.

connection data

An opaque data blob that uniquely represents a player's connection to a Relay server. The primary purpose of connection data is for establishing a RELAY message channel between the host player and the connecting players.

connection details

The connections details represent a player's connection to a Relay server and include the Relay server IP address, the Relay server port, the secret key, and the player's allocation ID.

connection slot

A logical place on a Relay server that a player can connect to.

datagram

A basic unit of data within a packet-switched network. A datagram typically consists of a header and payload. For more information, check out RFC 1594.

dedicated game server

A game server hosted on a remote machine that multiple players can connect to by using a game client.

DGS

Check out dedicated game server.

DISCONNECT message

A DISCONNECT message is a message type in the Relay Message Protocol specification that indicates a request to disconnect two connected players.

ERROR message

An ERROR message is a message type in the Relay Message Protocol specification that indicates an error that has occurred.

friends system

A subsystem of a game that allows players to communicate with one another and to add players as friends.

game client

Clients, or game clients, are executable programs that players use to play a game. Clients allow players to connect to other players to participate in a game match in multiplayer games.

game match

In the Relay service, a game session is an active match between multiple players connected through a Relay server. One player is the host player to which the other connecting players communicate using the Relay message protocol.

game session

Check out game match.

HMAC

An HMAC, or hash-based message authentication code, is a message authentication code that uses a cryptographic hash function and keys to authenticate messages.

host player

A host player is a player that initiates a game session on a Relay server and generates a join code to share with other players. There is only one host player per game match.

idle timeout

An idle timeout disconnects a player from a Relay server when no Relay protocol messages are detected for a specific amount of time. Game clients can prevent an idle timeout by periodically sending a PING message to the Relay server.

join code

A simple, randomly generated code that allows connecting players to join a host player's game.

joining player

Check out connecting player.

max connections

Check out maximum connections.

maxConnections

Check out maximum connections.

maximum connections

An integer that indicates the maximum number of peer connections a client allows to communicate with them. This parameter must be less than or equal to 100.

multi-tenanted

Multi-tenanted refers to software architecture in which a single instance of a process runs on a server and serves multiple tenants. Relay servers are multi-tenanted.

nonce

A nonce, or cryptographic nonce, is an incrementing number that's used in cryptographic communication to ensure earlier messages can't be resent arbitrarily. Each following message must increment the nonce. This way, if a bad actor tries to use a earlier message in a replay attack, the service can reject the message. In the Relay service, you use nonces as part of the HMAC creation process.

out-of-band

Out-of-band communication is communication that occurs outside of the game client. Examples of out-of-band communication include third-party chat services and spoken word.

PING message

A PING message indicates a ping message sent between a client and a Relay server (both directions) to keep the connection alive.

player

A player is an end-user connected to a game client who wants to play in a game match. In Relay, each game match has a single host player and one or more connecting players.

player ID

Check out player identity.

player identity

A unique ID identifying a player connected to a Relay server. Because players can only communicate with other players within the same session, player IDs aren't globally unique.

Relay IP

The IPv4 IP address of the Relay server

RELAY message

A RELAY message is a message type in the Relay Message Protocol specification that indicates a request to send a message between two players (clients).

Relay message protocol

A custom datagram protocol that provides message types for communication between Relay servers, host players, and connecting players.

Relay port

The port of the Relay server.

Relay server

A server within the Relay service that relays messages between multiple players. Relay servers ensure that game clients don't need to keep track of each player's network information.

Relay server capacity

The total number of open connection slots for new players on a Relay server.

Relay server IP

Check out Relay IP.

replay attack

A replay attack, or playback attack, is a network attack in which valid data transmissions are maliciously repeated or delayed.

requesting client

A requesting client is the game client of a connecting player—the requesting client requests to join a target client on a Relay server for a game session.

secret key

Check out shared secret key.

server capacity

Check out Relay server capacity.

session

Check out game match.

shared secret key

A shared secret key is a key generated by the Relay server for a game client to use to sign an HMAC that has the connection data.

target client

A target client is the game client of a host player—the target client is the target of a request from a requesting client to join a game session on a Relay server.

timeout time to live

Check out this linked topic for details.

timeout TTL

Check out timeout time to live.

turn-based game

A game in which players take turns making moves instead of making moves or decisions simultaneously. Turn-based games have less need for low latency communication than real-time games.

Unity PID

Check out Unity project ID.

Unity project ID

The unique identifier of your Unity project.

Unity Transport Package

A modern networking library built for the Unity game engine to abstract networking. UTP allows developers to focus on the game rather than on low-level protocols and networking frameworks.

UPID

Check out Unity project ID.

UTP

Check out Unity Transport Package.