Fault-Tolerant Systems — Fundamentals
Stub. Classifying and specifying faults, the flavors of fault tolerance (masking, non-masking, fail-safe, graceful degradation), failure detection, tolerating crash failures via triple modular redundancy, and tolerating omission failures via the sliding window and alternating bit protocols (with TCP as the real-world instance).
Before building algorithms that tolerate faults, fix a vocabulary for faults themselves: how they’re classified (crash, omission, timing, Byzantine) and formally specified, and what “tolerating” one can mean — masking it entirely, continuing correctly but visibly degraded (non-masking), failing safely, or degrading gracefully. Works through two concrete techniques: triple modular redundancy for crash faults, and, for omission (lost-message) faults, the sliding window and alternating bit protocols that TCP’s reliability is actually built from.
Outline (TODO — flesh out each)
- Classification of faults
- Specification of faults
- Masking, non-masking, fail-safe tolerance; graceful degradation
- Detection of failures
- Tolerating crash failures — triple modular redundancy
- Tolerating omission failures — the sliding window protocol, the alternating bit protocol, how TCP works