Question: The RDT 2.2 protocol (c). Consider the rdt 2.2 sender and receiver below, with FSM transitions labeled in red. Also consider the sender and receiver

The RDT 2.2 protocol (c). Consider the rdt 2.2 sender and receiver below, with FSM transitions labeled in red. Also consider the sender and receiver timeline following the FSMs, where a green OK label indicates a message that is not corrupted, and a red corrupt label indicates a message that is corrupted. We are interested in the sequence number (0 or 1) of a data message, and the ACK number (0 or 1) of an ACK message for the messages sent at t= 2, 3, 4, 5 in the figure below.

Which of the following sequences of interleaved data sequence numbers and ACK numbers corresponds to those in the messages sent at t=2 (data sequence number); t=3 (ACK number), t=4 (data sequence number), and t=5 (ACK number)? Only one sequence is correct.

Note: you can generate/solve/practice many similar instances of this question here.

1, 0, 0, 1

1, 0, 1, 0

1, 1, 0, 1

0, 0, 0, 0

0, 1, 1, 0

1, 1, 1, 0

1, 0, 1, 1

1, 1, 1, 1

The RDT 2.2 protocol (c). Consider the rdt 2.2 sender and receiver

below, with FSM transitions labeled in red. Also consider the sender and

SO rdt_send(data) sndpkt-make_pkt(0, data, checksum) udt_send(sndpkt) rdt_rev(revpkt) && (corrupt (revpkt) || iSACK (revpkt,1)) (S1 udt_send(sndpkt) Wait for call o from above Wait for rdt_rev (revpkt) && not corrupt (revpkt) && ISACK(revpkt, 1) A RDT 2.2 sender rdt_rev (revpkt) && notcorrupt (revpkt) && ISACK (revpkt,0) S2 A S5 Wait for ACK 1 Wait for call 1 from above rdt_rev(revpkt) && (corrupt (revpkt) || S4 SACK( revpkt,0)) udt_send(sndpkt) S3 rdt_send(data) sndpkt-make_pkt(1, data, checksum) udt_send(sndpkt) RO rdt_rev (revpkt) && notcorrupt (revpkt) && has_seq0 (revpkt) extract (revpkt, data) deliver_data (data) sndpkt-make_pkt(ACK, 0, checksum) rdt_rev (revpkt) && udt_send(sndpkt) (corrupt (revpkt) | R1 has_seq0(revpkt)) sndpkt-make_pkt(ACK, 0, checksum) udt_send(sndpkt) Wait for RDT 2.2 Wait for O from 1 from below receiver below rdt_rev (revpkt) && (corrupt (revpkt)! has_seql(revpkt)) (R3 sndpkt-make_pkt (ACK, 1, checksum) udt_send (sndpkt) R2 rdt_rev (revpkt) && notcorrupt (revpkt) && has_seql (revpkt) extract (revpkt, data) deliver_data (data) sndpkt=make_pkt(ACK,1, checksum) udt_send(sndpkt) sender receiver t = 0 AK data OK t = 1

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock

To determine the correct sequence of interleaved data sequence numbers and ACK numbers based on the ... View full answer

blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!