"Henry Hewgill" <23*1*7*
8@s*u*e*t*u*a*e*u*a*> wrote:
> Hi Chris,
>
> In the slides from last week's lecture, we should be recalculating the checksum for the acknowledgement before sending it, though this wasn't in the C code:
Hi Henry,
Yes, you're correct - in practice, we should be calculating and verifying checksums for everything that could be corrupted (by the Physical Layer), so it applies for both data frames and acknowledgment frames.
Those early slides trying to introduce concepts one at a time, so at the bottom of page 6
[CITS3002]⬈ the checksum should be calculated and checked before breaking from the inner loop.
However, at that stage we have a problem, because we haven't yet introduced time into our protocols (using timers), so what should we do if the checksum of an arriving DLL_ACK or DLL_NACK frame is wrong? The sender has no concept of time, yet, and thus has no 'pathway' to retransmission of the original data. Moreover, if the receiver had correctly received the original data, it couldn't detect a duplicate retransmission because we haven't yet introduced sequence-numbers.
Much of this is corrected by page 20
[CITS3002]⬈ where all frame types are checksummed, we have sequence-numbers, and timers to support retransmission.
(but well picked up!)