What ARQ can and cannot do

Tip: Choose Save as PDF in the print dialog to download. Use A4 paper size.

What ARQ can and cannot do

Name:
Date:
Class:

Quick Questions

Shade in the A or B circle for each question.

1. Which statement about how ARQ finds errors is correct?
A ARQ relies on a separate check, such as parity or a checksum, to find the error
B ARQ finds errors by itself without using any check
2. A corrupted packet passes the checksum because two errors cancel out. What does ARQ do?
A Sends an ACK, because the check did not find the error
B Sends a NAK, because ARQ can spot errors the checksum missed
3. What is a benefit of using ARQ?
A It makes the data travel faster than any other method
B Data is resent until it arrives without a detected error, so delivery is reliable
4. What is a drawback of ARQ?
A Waiting for ACK or NAK and resending packets adds extra time
B It can never resend a packet that contains an error
5. A link has a lot of interference and almost every packet arrives with errors. What is the likely effect of ARQ?
A No resends, because ARQ removes the interference
B Many resends, so the transfer becomes very slow

Match the Pairs

Draw a line connecting each item on the left to its match on the right.

Left columnRight column
1IF parity_ok THEN send ACK ELSE send NAK Asent 10110010, received 10011010, parity OK -> send ACK
2WHILE NOT ack_received: resend packet BARQ needs a separate error check such as parity or a checksum to find errors. ARQ only controls the ACK, NAK and resending.
3ARQ cannot find an error that its check misses, for example two flipped bits that leave even parity unchanged CThe receiver uses a separate error check (here parity) to decide whether to accept the data or ask for a resend
4On a very noisy link many packets fail the check, so there are many resends and the transfer is slow DNAK received -> attempts = attempts + 1 -> resend
5ARQ detects errors by itself, so no parity or checksum is needed EEvery failed check makes the sender send the packet again, which adds waiting time and repeated sending
6Noisy link -> ARQ sends each packet once -> transfer is faster FA noisy link causes more errors, so ARQ must resend packets many times and the transfer becomes slower.

Definitions

ARQ limits

Fill in the Blanks

Complete each line of code by filling in the missing parts.

1.
IF parityOK = FALSE THEN SEND ___
2.
IF checksumRx _ checksumCalc THEN SEND ACK
3.
IF reply = "NAK" THEN ______ packet
4.
resends ← resends _ 1
5.
totalTime ← sends _ sendTime

Spot the Error

Shade in the letter of the line that contains an error.

Question 1
A SEND packet
B IF parity check passes THEN
C SEND NAK
D ELSE
E SEND NAK
Question 2
A receive packet
B skip check; ARQ finds errors
C IF error found THEN SEND NAK
Question 3
A two bits flip in a byte
B parity detects the error
C receiver sends ACK
D bad data is accepted
Question 4
A noise = HIGH
B errors per packet go up
C resends go down
D transfer gets slower
Question 5
A SET resends ← 0
B WHILE reply is ACK
C resends ← resends + 1
D SEND packet again

Answer Key

What ARQ can and cannot do
Section A: Quick Questions
Q1
A — ARQ relies on a separate check, such as parity or a checksum, to find the error
Q2
A — Sends an ACK, because the check did not find the error
Q3
B — Data is resent until it arrives without a detected error, so delivery is reliable
Q4
A — Waiting for ACK or NAK and resending packets adds extra time
Q5
B — Many resends, so the transfer becomes very slow
Section B: Match the Pairs
Q1
IF parity_ok THEN send ACK ELSE send NAK → The receiver uses a separate error check (here parity) to decide whether to accept the data or ask for a resend
Q2
WHILE NOT ack_received: resend packet → Every failed check makes the sender send the packet again, which adds waiting time and repeated sending
Q3
ARQ cannot find an error that its check misses, for example two flipped bits that leave even parity unchanged → sent 10110010, received 10011010, parity OK -> send ACK
Q4
On a very noisy link many packets fail the check, so there are many resends and the transfer is slow → NAK received -> attempts = attempts + 1 -> resend
Q5
ARQ detects errors by itself, so no parity or checksum is needed → ARQ needs a separate error check such as parity or a checksum to find errors. ARQ only controls the ACK, NAK and resending.
Q6
Noisy link -> ARQ sends each packet once -> transfer is faster → A noisy link causes more errors, so ARQ must resend packets many times and the transfer becomes slower.
Section C: Definitions
Q1
ARQ limits — ARQ resends data when a separate check finds an error, so it misses errors that check misses, and a noisy link causes many resends that slow the transfer.
Section D: Fill in the Blanks
Q1
IF parityOK = FALSE THEN SEND NAK
Q2
IF checksumRx = checksumCalc THEN SEND ACK
Q3
IF reply = "NAK" THEN RESEND packet
Q4
resends ← resends + 1
Q5
totalTime ← sends * sendTime
Section E: Spot the Error
Q1
C — When the parity check passes, no error was found, so the receiver should send ACK. Sending NAK would trigger a pointless resend. The line should be ' SEND ACK'.
Q2
B — ARQ cannot find errors by itself. It depends on a separate check such as parity or a checksum. The line should run that check, e.g. 'run parity check on packet'.
Q3
B — Two flipped bits keep the parity the same, so the parity check misses the error. ARQ cannot find errors its check misses. The line should say 'parity still looks correct'.
Q4
C — More noise means more errors, so more NAKs and more resends. The number of resends goes up, not down. The line should be 'resends go up'.
Q5
B — Data is resent only while the reply is a NAK. An ACK means the packet arrived correctly, so the loop should stop. The line should be 'WHILE reply is NAK'.