Unless it is guaranteed that everything arrives punctually (almost impossible in the real world, let alone the communications world!), a mechanism must be provided for recovering from the loss of one or more frames (e.g. to errors on a physical link). For this purpose, timers are integrated into a protocol which provides reliability.
Timers are pieces of hardware or software (usually provided as routines in an operating system) which count down from some preset timer value. Timers are started and stopped whenever particular types of events occur. In most cases, timers are stopped before their time out period expires, and no action is taken. If the count should reach zero, then the timer is said to have "expired". This normally triggers a specific event within a protocol.
Stop and Wait ARQ
Selective Repeat ARQ