  Communicating state machines provide a formal foundation for distributed
computation. Unfortunately, they are Turing-complete and, thus, challenging to
analyse. In this paper, we classify restrictions on channels which have been
proposed to work around the undecidability of verification questions. We
compare half-duplex communication, existential B-boundedness, and
k-synchronisability. These restrictions do not prevent the communication
channels from growing arbitrarily large but still restrict the power of the
model. Each restriction gives rise to a set of languages so, for every pair of
restrictions, we check whether one subsumes the other or if they are
incomparable. We investigate their relationship in two different contexts:
first, the one of communicating state machines, and, second, the one of
communication protocol specifications using high-level message sequence charts.
Surprisingly, these two contexts yield different conclusions. In addition, we
integrate multiparty session types, another approach to specify communication
protocols, into our classification. We show that multiparty session type
languages are half-duplex, existentially 1-bounded, and 1-synchronisable.
To~show this result, we provide the first formal embedding of multiparty
session types into high-level message sequence charts.
