Site home page
Get alerts when Linktionary is updated
Book updates and addendums
Get info about the Encyclopedia of Networking and Telecommunicatons, 3rd edition (2001)
Download the electronic version of the Encyclopedia of Networking, 2nd edition (1996). It's free!
Contribute to this site
Electronic licensing info
Note: Many topics at this site are reduced versions of the text in "The Encyclopedia of Networking and Telecommunications." Search results will not be as extensive as a search of the book's CD-ROM.
An acknowledgment is a confirmation of receipt. When data is transmitted between two systems, the recipient can acknowledge that it received the data. Acknowledgments compensate for unreliable networks. However, acknowledgments can reduce performance on a network. If every packet sent requires an acknowledgment, then up to half of the data transmission is spent exchanging acknowledgments.
Modern networks such as LANs and WANs are considered highly reliable. There is little need to acknowledge every packet, so acknowledgments are used for groups of packets or not at all. Unreliable networks still exist, however, especially if you are building WANs in third-world countries or using wireless devices to transmit data. Acknowledgments may be handled in the data link layer for each frame. Doing this in the network is extremely wasteful of bandwidth, but often there is little choice. X.25 packet-switching networks use this technique. The alternative is to acknowledge higher up in the protocol stack and use the network to send data as fast as possible.
The TCP portion of the TCP/IP protocol suite implements an "expectational acknowledgment" system. The sender transmits packets and waits for an acknowledgment of receipt. The wait time is handled by a timer, which is set when the packets are sent. If the timer runs out before an acknowledgment is received, the sender retransmits the packets. In some cases, the actual data link may be broken, so to prevent endless retransmissions, the sender stops retransmitting after a set number of attempts.
TCP's acknowledgment scheme uses a sliding window technique in which the sender sends multiple packets at a time-say, packets 1, 2, and 3-then waits for the receipt. The receiver acknowledges receipt by requesting the next packets. The sender then sends segments 4, 5, and 6. The receiver requests a retransmission, if necessary (because packets are corrupted or lost), by failing to acknowledge a set of packets. RFC 813 (Window and Acknowledgement Strategy in TCP, July 1982) provides more information.
Three other RFCs of interest are RFC 1072 (TCP Extensions for Long-Delay Paths, October 1988), RFC 1323 (TCP Extensions for High Performance, May 1992), RFC 2001 (TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms, January 1997)
TCP SACK (selective acknowledgment is an enhancement to the TCP windowing and acknowledgment scheme that provides a way for the sender to retransmit only the packets that are missing in a window of data, rather than the entire window. FACK (forward acknowledgment) is an algorithm that can provide congestion control during the packet recovery process. RFC 2018 (TCP Selective Acknowledgment Options, October 1996) provides more information about SACK. See the Pittsburgh Supercomputing Center Web site listed on the related entries page for more information.
Copyright (c) 2001 Tom Sheldon and Big Sur Multimedia.