Client and server versions with the same protocol version are compatible with each other. For example, a client running Java Edition 1.8.9 can connect to a server running Java Edition 1.8, as both have a protocol version of 47.
Upon attempting to join a multiplayer server, the game will check if the client has a protocol version newer or older than the selected server; if it does, the game will then alert the player that their client (or the server) is outdated.
All versions, including minor releases and development versions on both Java and Bedrock editions, have their own protocol version. The version takes the form of an ever-increasing positive integer unlike client versions. Protocol versions may occasionally be skipped between major releases.
Each Minecraft build since 18w47b specifies its current protocol version in the version.json file, found in the root directory of the client and server jars.
protocol_version: The protocol version of this build.
Rewrote the protocol versioning system to use Netty, resetting protocol versions back to 0. Protocol versions before this update are not compatible with server versions with the same protocol number after this update.
Pocket Edition 알파
Added protocol versions.
↑server.jar, located in class com.mojang.bridge.game.GameVersion