This document discusses different types of clocks used in distributed systems, including physical clocks and logical clocks. Physical clocks are tied to real time but may drift over time. Logical clocks like Lamport's logical clock and vector clocks are derived from potential causality between events and can order events without reference to real time. The document covers clock synchronization algorithms like Cristian's algorithm and Berkeley algorithm for internal synchronization. It also discusses external synchronization using protocols like NTP. Logical clocks like Lamport's clock and vector clocks can order events based on potential causality between them using logical timestamps.