At some point in a digital communications receiver, an analog waveform must be sampled. Good performance requires that these samples be taken at the right times. The process of synchronizing the sampler with the received analog waveform is known as timing recovery. As error-control codes get more and more powerful, conventional timing recovery strategies become less and less viable; this is because conventional strategies ignore the presence of error-control coding, and are thus doomed to fail when the SNR is sufficiently low. This book describes iterative timing recovery, a method for implementing timing recovery in cooperation with error-control decoding. The book provides an overview of the timing recovery problem, and it reviews conventional timing recovery strategies based on a phase-locked loop. The book then explores iterative timing recovery strategies based on per-survivor processing. No prior exposure to timing recovery is assumed, although the reader will benefit from some familiarity with basic signal processing and communications principles.