Summary of reliable data transfer mechanisms and their use
| Checksum |
Used to detect bit errors in a transmitted packet. |
| Timer |
Used to timeout/retransmit a packet, possibly because the packet (or its ACK) was lost within the channel.
Because timeouts can occur when a packet is delayed but not lost (premature timeout),, or when a packet has been
received by the receiver but the receiver-to-sender ACK has been lost, duplicate copies of a packet may received
by a receiver.
|
| Sequence number |
Used for sequential numbering of packets of data flowing from sender to receiver. Gaps in the sequence numbers
of received packets allow the receiver to detect a lost packet. Packets with duplicate sequence numbers allow the
receiver to indicate the duplicate copies of a packet.
|
| Acknowledgment |
Used by the receiver to tell the sender that a packet or a set of packets has been received correctly.
Acknowledgments will typically carry the sequence number of the packet or packets being acknowledged. Acknowledgments
may be individual or cumulative, depending on the protocol. Cumulative acknowledgment acknowledges a set of packets
with sequence numbers less or equal to the sequence number in the ACK.
|
| Negative acknowledgment |
Used by the receiver to tell the sender that a packet has not been received correctly. Negative acknowledgments
will typically carry the sequence number of the packet that has not been received correctly.
|
| Window, pipelining |
The sender may be restricted to send only packets with sequence numbers that fall within a given range. By allowing
multiple packets to be transmitted but not yet acknowledged, sender utilization can be increased over a stop-and-wait
mode of operation. The window size may be set on the basis of the receiver's ability to receive and buffer messages,
or the level of congestion in the network, or both.
|