  Message-passing models of distributed computing vary along numerous
dimensions: degree of synchrony, kind of faults, number of faults...
Unfortunately, the sheer number of models and their subtle distinctions hinder
our ability to design a general theory of message-passing models. One way out
of this conundrum restricts communication to proceed by round. A great variety
of message-passing models can then be captured in the Heard-Of model, through
predicates on the messages sent in a round and received during or before this
round. Then, the issue is to find the most accurate Heard-Of predicate to
capture a given model. This is straightforward in synchronous models, because
waiting for the upper bound on communication delay ensures that all available
messages are received, while not waiting forever. On the other hand, asynchrony
allows unbounded message delays. Is there nonetheless a meaningful
characterization of asynchronous models by a Heard-Of predicate?
  We formalize this characterization by introducing Delivered collections: the
collections of all messages delivered at each round, whether late or not.
Predicates on Delivered collections capture message-passing models. The
question is to determine which Heard-Of predicates can be generated by a given
Delivered predicate. We answer this by formalizing strategies for when to
change round. Thanks to a partial order on these strategies, we also find the
"best" strategy for multiple models, where "best" intuitively means it waits
for as many messages as possible while not waiting forever. Finally, a strategy
for changing round that never blocks a process forever implements a Heard-Of
predicate. This allows us to translate the order on strategies into an order on
Heard-Of predicates. The characterizing predicate for a model is then the
greatest element for that order, if it exists.
