Computer Networks · TEE · papers

Q3(a) · rdt3.0 error recovery

2024-02-06 · AI-only Sem V variant

Exact historical variant. Current-syllabus questions solved; excluded topics and source limitations stated.

Q3(a). Use the printed rdt3.0 alternating-bit sender/receiver: S0 sends data0; S3 accepts ACK0; S5 sends data1; S8 accepts ACK1; S2/S7 are timeout retransmissions; S1/S6 ignore corrupt or wrong ACKs. Receiver R0 accepts new data0 and sends ACK0; R2 accepts new data1 and sends ACK1; R3/R1 handle corrupt or duplicate data while waiting for 0/1 respectively. List possible transition sequences following an initial rdt_send call with no messages initially in the channel, allowing later message corruption and error recovery. [5 marks]

Answer

The sequence bit labels the outstanding DATA packet. ACK0 confirms data0 and ACK1 confirms data1 in this printed FSM; these are not TCP cumulative byte numbers. An ACK loss does not advance the sender. A duplicate data packet is acknowledged again but not delivered twice.

CasePossible ordered transitionsExplanation
No errorS0,R0,S3DATA0 and ACK0 both arrive
Corrupt data0S0,R3,S1,S2,R0,S3Receiver repeatsACK1; sender ignores it, times out, resends0
Lost data0S0,S2,R0,S3No receiver event for the lost packet
Corrupt ACK0S0,R0,S1,S2,R1,S3Receiver has delivered0; duplicate0 getsACK0 without redelivery
Lost ACK0S0,R0,S2,R1,S3No sender event for a lost ACK; timeout triggers retry

After recovery, S5 sends data1 and the symmetric transitions S7/R2/R3/S8 apply as appropriate. These are representative possible traces; repeated losses/corruptions can repeat the retry loops arbitrarily often. No single finite list can enumerate every possible error history.