protocol to exchange messages between remote endpoints