Reliable delivery has been succinctly defined as "Data is accepted at the remote endpoint in the same order as was transmitted at the other end, without loss and without duplicates."
This implies four constraints:
(i) No loss (at least one copy of each PDU is sent);
(ii) No duplication (no more than one copy of each PDU is sent);
(iii) FIFO delivery (the PDUs are forwarded in the original order);
(iv) A PDU must be delivered within a reasonable period.
For a communications protocol to support reliability, requires that the protocol identifies each individual PDUs that is transmitted. The protocol implements an error recovery procedure (e.g. Stop and Wait).
There is very little data which is so important that it must be sent no matter how late. If the links in the network are therefore liable may lead to loss of packets, a reliable protocol should be used. When the under-lying network is very reliable (as in an Ethernet LAN), best effort protocols may be sufficient.
Reliability may be provided at various layers. Examples of reliable communications protocols are:
Layered protocols usually also employ timers at each level, governing this interval. The service provided by a protocol layer may be unreliable for various reasons including:
Link Layer, (e.g., HDLC ABM, RLC in mobile phones).
Four types of ARQ are common:
Gorry Fairhurst (c) 2020