# RDT2.1 - does the Sender listener to “ack” even though state=ready?

Computer Networking: A Top Down Approach Featuring the Internet, Jim Kurose, Keith Ross Addison-Wesley 4nd edition , page -223.

Also here slide 60 .

RDT2.1 (Reliable data transfer) -

Sender(s):
state=ready; i=0;
On rdt_send(d,m):
if state=ready
then
{ p=<s,d,m,i,
EDC(s||d||m||i)>;
udt_send(p);
state=busy; }
On udt_deliver(a)
 If a=<“ack”,EDC(“ack”)>
then
{ i++;
state=ready; }
else udt_send(p);


When the Sender side is in state=ready , does he still listener to "ack" recived from the Reciver ?

I need to know this , cause if so it seems that the Sender can get duplicate "ack"'s from the reciver and inc the i without sending any packet mainwhile .

-

## 1 Answer

From the code above, Yes.

Regarding your second note. A sender will go to the busy state if it sends a message and there it will wait for an ACK. I can imagine that the reciver would send multiple ACK's only if there is some fault. Usually, such faults are not considered in the basic protocol description, but are considered in the actual implementation.

-
Indeed , according to the book (1) duplicate ACK's is the motivation for RDT2.2 (2) RDT2.1 doesn't deal with duplicate ACK's , so I think the answer is like you say . –  URL87 Dec 30 '12 at 6:05