Lesson 1.4: Fundamental models
Distributed systems share core characteristics that can be modeled through three fundamental aspects:
1. Interaction Model
Purpose: Captures how processes communicate and coordinate.
Key Challenges:
- Variable Latency: Network delays are unpredictable (e.g., satellite links vs. LAN).
- Bandwidth Limitations: Shared networks reduce throughput.
- Clock Drift: No global time source; local clocks diverge over time.
Approaches:
Model | Assumptions | Use Cases |
---|---|---|
Synchronous | Bounded process/message times | Real-time systems (e.g., avionics) |
Asynchronous | No timing guarantees (e.g., Internet) | Web apps, email systems |
Example: Email threads may display messages out of order due to network delays.
2. Failure Model
Purpose: Classifies and handles system faults.
Failure Types:
- Process Failures:
- Crash-stop (halts permanently)
- Byzantine (arbitrary behavior)
- Network Failures:
- Message loss/delay
- Network partitions
Mitigation:
- Redundancy (replication)
- Timeouts + retries
- Consensus protocols (e.g., Paxos)
3. Security Model
Purpose: Defends against threats to confidentiality/integrity.
Attack Vectors:
- Eavesdropping: Intercepted messages
- Spoofing: Fake identities
- DoS: Overwhelming resources
Defenses:
- Encryption (TLS)
- Authentication (OAuth)
- Firewalls + rate-limiting