duplication and misordering of requests/responses.
Some distributed systems choose virtual circuits for their transport service. As an
example, the communication in R*, is built on top of the IBM SNA (Systems Network
Architecture), a virtual circuits protocol. Virtual circuits not only handle the flow and
error control, but also facilitate failure detection and resolution. Based on the model that
a user computation is a tree of processes connected by virtual circuits, R* uses a very
simple failure-resolution mechanism, which is safe unless the failure is detected during
the commit procedure in which case, R* uses datagrams as well.
2.2.2. Communication Primitives