Some protocols have multiple algorithms to choose from for e.g., cryptographic purposes. During connection set up, client and server negotiate which one they'll use.
One example is the set up of a TLS connection. During the handshake, the client shares a list of its supported ciphers (the 'ciphersuites'). The server responds by indicating the best one that both sides support.