Hubbry Logo
search
logo

Acknowledgement (data networks)

logo
Community Hub0 Subscribers
Write something...
Be the first to start a discussion here.
Be the first to start a discussion here.
See all
Acknowledgement (data networks)

In data networking, telecommunications, and computer buses, an acknowledgement (ACK) is a signal that is passed between communicating processes, computers, or devices to signify acknowledgement, or receipt of message, as part of a communications protocol. Correspondingly a negative-acknowledgement (NAK or NACK) is a signal that is sent to reject a previously received message or to indicate some kind of error. Acknowledgments and negative acknowledgments inform a sender of the receiver's state so that it can adjust its own state accordingly.

The ASCII code point for ACK is 0x06 (binary 0000 0110). By convention a receiving device sends an ACK to indicate it successfully received a message. ASCII also provides a NAK code point (0x15, binary 0001 0101) which can be used to indicate the receiving device cannot, or will not, comply with the message. Unicode provides visible symbols for these ASCII characters, U+2406 (␆) and U+2415 (␕).

ACK and NAK symbols may also take the form of single bits or bit fields depending on the protocol data link layer definition or even as a dedicated wire at physical layer.

Many protocols are acknowledgement-based, meaning that they positively acknowledge receipt of messages. The internet's Transmission Control Protocol (TCP) is an example of an acknowledgement-based protocol. When computers communicate via TCP, received packets are acknowledged by sending a return packet with an ACK bit set.

While some protocols send an acknowledgement per each packet received, other protocols such as TCP and ZMODEM allow many packets to be transmitted before sending an acknowledgement for the set of them, a procedure necessary to fill high bandwidth-delay product links with a large number of bytes in flight.

Some protocols are NAK-based, meaning that they only respond to messages if there is a problem. Examples include many reliable multicast protocols which send a NAK when the receiver detects missing packets or protocols that use checksums to verify the integrity of the payload and header.

Still other protocols make use of both NAKs and ACKs. Binary Synchronous Communications (Bisync) and Adaptive Link Rate (for Energy-Efficient Ethernet) are examples.

The acknowledgement function is used in the automatic repeat request (ARQ) function. Acknowledgement frames are numbered in coordination with the frames that have been received and then sent to the transmitter. This allows the transmitter to avoid overflow or underrun at the receiver, and to become aware of any missed frames.

See all
User Avatar
No comments yet.