Data Link Layer Error Detection and Error Control
Question 1: Diagnosing Transmission Errors Using CRC
Cyclic Redundancy Check (CRC) is a widely used error detection method that ensures data
integrity during transmission. It relies on polynomial division, where both the data and the
generator polynomial are expressed in binary form. After dividing the data by the generator
polynomial, the remainder becomes the CRC value. If the remainder is zero upon reception,
the frame is assumed to be error-free. If the remainder is non-zero, an error is detected.
In this scenario, the given frame is 1200 bits long, and the generator polynomial is x⁴ + x³ +
x² + 1, which translates to the binary form 11101. After performing the CRC division, the
obtained remainder is 1011. Because the remainder is not zero, this indicates that the data
frame has been corrupted during transmission.
The next step is determining how error correction would occur. It is important to note that
CRC itself does not directly correct errors; it only detects them. In real-world networks,
error correction is handled by higher-level error control protocols such as Automatic
Repeat Request (ARQ). However, if the assignment requires calculating the corrected frame,
we would append the remainder (1011) to the received data to regenerate a frame that is
divisible by the generator polynomial.
For the 1200-bit frame:
1. Original frame (before transmission): Data bits (1196) + CRC remainder (4 bits).
2. Received frame remainder: 1011.
3. Since the received remainder is non-zero, the frame is invalid. The sender must
retransmit the correct frame.
Therefore, the corrected frame would be the original 1200-bit data sequence with the
correct CRC value appended (which would yield a remainder of 0000 upon verification). In
practical terms, the error is not corrected at the receiving end but instead flagged so that
the ARQ mechanism triggers retransmission.
This demonstrates the essential role of CRC in ensuring reliability: it quickly identifies
errors with minimal overhead but relies on complementary protocols for correction.
Question 2: Error Control with Selective Repeat ARQ
Automatic Repeat Request (ARQ) protocols are designed to detect and correct transmission
errors by retransmission. Selective Repeat ARQ is a particularly efficient form because it
allows the receiver to accept and buffer correctly received frames even if others in the
sequence are missing. Unlike Go-Back-N ARQ, where the sender retransmits all frames after
a loss, Selective Repeat retransmits only the erroneous or lost frames, making it more
efficient in high-latency or high-error environments.
In this case, the sender transmits a window of 8 frames numbered 0 to 7. At the receiver’s
end, frames 2, 4, and 7 are successfully received, but we are tasked with determining the
cumulative acknowledgment number and the expected next sequence number.
Here is how Selective Repeat ARQ operates in this situation:
1. The receiver sends acknowledgments (ACKs) for each correctly received frame
individually, not cumulatively. This means ACKs are returned for frame 2, frame 4, and
frame 7.
2. Since frame 0 and frame 1 were not successfully received, the cumulative
acknowledgment cannot advance past frame 0. The receiver will continue expecting frame 0
until it arrives correctly.
3. The expected next sequence number is therefore 0, because Selective Repeat ARQ
requires that the missing frames be retransmitted before the sequence can continue in
order.
Thus, the cumulative acknowledgment number sent back to the sender is 0, indicating that
the receiver is still waiting for frame 0. The expected next sequence number for
transmission is also 0.
This behavior highlights both the strengths and the complexity of Selective Repeat ARQ. By
allowing partial progress (frames 2, 4, and 7 stored in the receiver buffer), it prevents
unnecessary retransmission of correctly received data. At the same time, the sender must
carefully manage its window and retransmit the missing frames to allow the receiver to
reassemble the complete sequence.
Conclusion
Both CRC and ARQ illustrate how the data link layer ensures reliable communication over
potentially unreliable physical media. CRC provides an efficient way to detect errors, while
Selective Repeat ARQ provides a structured way to recover from those errors. Together,
they form the backbone of reliable data delivery in modern networks, balancing efficiency
with robustness.
References
Forouzan, B. A. (2017). Data Communications and Networking (5th ed.). McGraw-Hill.
Tanenbaum, A. S., & Wetherall, D. (2011). Computer Networks (5th ed.). Pearson.
Stallings, W. (2021). Data and Computer Communications (11th ed.). Pearson.