A better protocol would be to eagerly send data for short
messages in the header, assuming some fixed-size buffer
is preallocated at the receiving end. The two-message protocol
would be reserved for long messages. This marginally complicates the
implementation but does not essentially change the rest of the discussion,
or the benchmark results presented below, since the latter concentrate on the
asymptotic case.

In a real physical system, this is similar
to the change from a magnetized to an unmagnetized state in a magnetic
material such as iron, or to the change from a solid phase (e.g. ice)
to a liquid phase (e.g. water).