Network Models

Assuming bidirectional point-to-point communication between two nodes:

  • Reliable links: A message is received if and only if it is sent. Messages may be reordered
  • Fair-loss links: Messages may be lost, duplicated, or reordered. Repeated attempts will eventually deliver the message
  • Arbitrary links: A malicious adversary may interfere with messages (eavesdrop, modify, drop, spoof, replay)

A fair-loss link can be turned into a reliable link by retrying on the sender’s side and deduplicating on the receiver’s side

An arbitrary link can be transformed into a fair-loss link, assuming the adversary does not block communication indefinitely, by using cryptographic techniques such as TLS

Timing Models

  • Synchronous: Assumes bounded network delay, process pauses, and clock error. This does not imply exactly synchronized clocks or zero network delay; only that these factors will not exceed some fixed upper bound
  • Partially synchronous: Means that a system behaves like a synchronous system most of the time, but it sometimes exceeds the bounds for network delay, process pauses, and clock drift
  • Asynchronous: An algorithm is not allowed to make any timing assumptions. The system does not rely on timeouts and lacks a clock

Nodes Models

  • Crash-stop faults: A node may fail by crashing, and stops responding permanently
  • Crash-recovery faults: Nodes may crash and later recover. Nodes have persistent storage that survives crashes, but their in-memory state is lost
  • Byzantine faults: Nodes may behave arbitrarily, including attempting to deceive or mislead other nodes

References