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.