A Guide to NACK/NAK (Negative Acknowledgment or Not Acknowledged)

An image depicting a complex mesh of virtual networks over the globe.
Globally-connected mesh network

Negative Acknowledgement (NACK or NAK) is a passed signal between computers and other devices. NACK’s purpose is to express that data over a network communications protocol was missed, corrupted, or received with errors. In this article, I’ll explain more about NACK and help you understand how it works better. I’ll also guide you through the different implementations of negative acknowledgment messages and how they’re used in different protocols for various network layers of the OSI model. Lastly, I’ll cover how the data packet acknowledgment works in TCP and compare it with NACK. 

First, let’s have a deeper look at what NACK is.

What is NACK/NAK?

NACK or NAK, an abbreviated form of negative acknowledgment or not acknowledged, is a short message or information. The receiver sends it to the transmitter in a network set up to indicate the correct or incorrect reception of the sent data packet. The message or the transmitted information can also indicate whether the transmitted data packet was corrupted/unreadable or received with errors. 

Any network protocol that uses NACK often embeds an ability to add logs or reason for the lost, unreadable, or corrupted data packet when sent back from the receiver to the transmitter. Due to this, network protocols that implement NACK attain an added advantage of efficient acknowledgment. 

Now that you understand what NACKs is, I’ll guide you through how it works next.

How Do NACK/NAKs Work?

Before I dig deeper into how NACKs work in different protocols, it’s important to note that NACK is sometimes conflated with REJ (rejected) messages. REJ is a message used in different network protocols. The recipient sends it to the sender when the sent data packet isn’t delivered properly. This can be due to different reasons like incomplete or corrupted data, checksum failure, invalid headers, or wrong data formats. In some network protocol setups, a rejected message (REJ) has similar functionality as that of a NACK. 

As mentioned earlier, both REJ and NACK/NAK are short protocol messages that the recipient of the data packet sends back to the sender. Their purpose is to indicate any discrepancies in the sent data. These messages also contain information on whether the sender should be resending the data and what portion of the data packets needs to be resent. Due to its nature and working, you can implement NACK in any OSI model-based protocol. Although the functionality remains the same, the implementation and working of NACK in each of these protocols may vary slightly. 

I’ll explain further how implementing NACK differs in some OSI layers.

Image listing all 7 layers of OSI model along with the data format, protocols, and devices being used or implemented
OSI network model

A data link layer is responsible for the transmission of data frames from one node to another. This layer establishes a unique identification number for every device on the network. Different implementations of a data link layer protocol implement NACK differently. For example, High-Level Data Link Control (HDLC), a bit-oriented code-transparent synchronous data link layer protocol, uses REJ messages for NACK. While IBM’s Binary Synchronous Communication (BSC) uses NACK messages for negative acknowledgments, the Point-to-Point protocol uses forms for both NACK and REJ messages for negative acknowledgments. 

2. Application Layer Protocols

The application layer is the top-most layer of an OSI model. It acts as a window for a user to access several functionalities. These could be resource allocation, file transfer and management, directory services, and more. The Society for Worldwide Interbank Financial Telecommunication (SWIFT), a globally acknowledged society that supports financial transactions and payments globally, implements both ACK and NACK for acknowledgment and negative acknowledgment of data packets. Dynamic Host Configuration Protocol (DHCP) on the other hand, another application layer protocol, uses NACK to determine expired internet protocol addresses or an incorrect network subnet. 

3. Physical Layer Protocols

Physical layer protocols usually consist of device/component-based electronic circuit transmission technologies. These protocols use negative acknowledgment messages for various reasons. For example, some of the physical layer protocols like Bluetooth, Integrated Circuit (IC) communication busses, and Infrared data association use NACK messages to ensure no data is lost or corrupted in the transmission. 

Other protocols based on other layers of the OSI model also rely on negative acknowledgment (NACK) messages to ensure the data transmission is successful. The content of a NACK message varies in each of the protocol specifications I mentioned above. Whenever a sender receives a NACK or REJ, it either retransmits the data or the block of data until the sender receives an acknowledgment (ACK) message from the receiver. 

Acknowledgments in TCP

TCP (Transmission Control Protocol) is one of the major and most widely used connection-oriented internet protocols. It has the ability of error checking, data sequencing, and retransmission of lost data packets. That said, TCP doesn’t use NACK by default and relies on its error checking and congestion control mechanisms. In TCP, a sender can track the sent data frame and doesn’t have to rely on the receiver to send an acknowledgment of the reception of the data frame. NACK has been defined for TCP though for specialized uses like establishing communication with satellites, which involves high latency and low bandwidth.  

Image explaining how the data is retransmitted over a network from sender to receiver in a TCP setup.
TCP retransmission scenarios

The Bottom Line 

NACK/NAK is one of the most widely-used techniques. Its purpose is to ensure that the recipient gets all the sent data over a network without any loss, corruption, or errors. In NACK, a receiver of the data sends a message to the sender in any of the cases I mentioned before. This is to ensure that the sender resends the needed data. You can implement NACK in different internet protocols. Depending on its implementation, NACK can often serve the same purpose as other network acknowledgment solutions like REJ or ACK. 

Have more questions? Check out the FAQs and Resources sections below.

Get The Latest Tech News Here

FAQ

What is the OSI Model?

The OSI model is a 7-layered conceptual network framework. The model allows devices to communicate with each other over a network. Implementing the Negative Acknowledgement (NACK) differs in different OSI model layers.

What is TCP?

Transmission Control Protocol (TCP) is one of the major internet protocols that have complete control over the transmission of data frames via a network. It allows devices to exchange information or messages over a network. TCP has its own way of implementing acknowledgments. TCP also ensures that the receiver gets all the sent data successfully from the sender. 

What are the benefits of TCP?

Some of the major benefits of TCP include interoperability, being an open-suite protocol, and being scalable. It also has other aspects like the ability to error check, data sequence enablement, and more. 

What is DHCP?

The dynamic host control protocol (DHCP) is a network management protocol. You can use it to dynamically allocate and assign IP addresses and other essential network parameters to the devices connected to a DHCP-enabled network. 

Resources 

TechGenix’s Website 

Stay up to date with the latest tech news from TechGenix’s Tech News section here.

TechGenix’s Data Communication and Networking

Access more information about data communication and networking here.

TechGenix’s Networking Section

Access more information about networking here.

TechGenix’s Newsletter

Sign up for the TechGenix newsletter and get the latest tech and cybersecurity news right here

TechGenix’s OSI Model Article

Check out our detailed article on the OSI model, its history, and every layer of the model here.

Negative Acknowledgement: Detailed report

Head to this detailed report to learn more about Negative Acknowledgment (NACK), its implementational details, and reference to multiple other protocols.

About The Author

Leave a Comment

Your email address will not be published. Required fields are marked *

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top