-
Feature Request
-
Resolution: Done
-
Major
-
None
-
None
Currently, UNICAST is based on positive acks: we send an ack for each message received. This causes a lot of ack traffic (piggybacking remedies this to a certain extent).
Investigate a version of UNICAST which uses negative acks; the sender never retransmits a message unless the receiver asks it to. The receiver only asks the sender for retransmission if it sees a missing seqno.
Issue: the last-message-lost problem. To solve it, we could exchange the last-seqno when there is no traffic any longer, e.g. by a timer task. The task would only run once, unless there's more traffic.
This is what NAKACK does, and we could even reuse the NakReceiverWindow class this ay, and eliminate AckSenderWindow and AckReceiverWindow. We could also remove DefaultRetransmitter and also use the RangeBasedRetransmitter (liek NAKACK).