Acknowledgement (data networks)

In data networking and telecommunications, an acknowledgement (or acknowledgment) is a signal passed between communicating processes or computers to signify acknowledgement, or receipt of response, as part of a communications protocol. The negative-acknowledgement signal is sent in many communications protocols to reject a previously received message, or to indicate some kind of error. Acknowledgements and negative acknowledgements inform a sender of the receiver's state, so that it can adjust its own state accordingly.

Acknowledgement characters

When the ASCII code is used to communicate between computer terminals, each terminal can send an enquiry character to request the condition of the other. The receiver of this character can respond with ACK (0000110) to indicate that it is operating normally, or NAK (also NACK[1]) (0010101) to indicate an error condition. Unicode provides visible symbols for these characters, U+2406 () and U+2415 (␕).

Protocol usage

Many protocols are acknowledgement (ACK)-based, meaning that they positively acknowledge receipt of messages. The internet's Transmission Control Protocol (TCP) is an example of an ACK-based protocol. When computers communicate via TCP, received packets (including connection requests and terminations) are acknowledged by sending back a packet with an acknowledgement bit set. The protocol allows these acknowledgements to be included with data that is sent in the opposite direction. Some of them wait until the end of each network packet, and then acknowledge each packet. Other protocols such as TCP and ZMODEM generally allow many packets to be transmitted before acknowledging any of them.

Other protocols are NAK-based, meaning that they only respond to messages if there is a problem. Examples include most reliable multicast protocols which send a NAK when the receiver detects missing packets. Still other protocols make use of both NAKs and ACKs. Binary Synchronous Communications (Bisync) and Adaptive Link Rate (for Energy-Efficient Ethernet) is an example.

Still other protocols such as the RC-5, User Datagram Protocol (UDP), and X10 protocols perform blind transmission with no acknowledgement, often transmitting the same message multiple times in hopes that at least one copy of the message will get through.

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 of the receiver's buffer, and to become aware of any missed frames.

In Bisync, the NAK is used to indicate that a transmission error was detected in the previously received block and that the receiver is ready to accept retransmission of that block. Bisync does not use a single ACK character, but has two control sequences for alternate even/odd block acknowledgement.

In point-to-multipoint communication, the NAK is used as the not-ready reply to a poll.

Hardware acknowledgement

Some computer buses have a dedicated acknowledge wire used to acknowledge each write -- data acknowledge DACK used for ISA DMA; Data Acknowledge DATACK used in the STEbus, the data transfer acknowledge pin of the Motorola 68000 that inspired the title of DTACK Grounded, etc.

Some computer buses do not always acknowledge every write -- some or all of the writes use a posted write.

See also

References


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.