[Cake] Query on ACK

Jonathan Morton chromatix99 at gmail.com
Wed May 6 15:01:45 EDT 2020

> On 6 May, 2020, at 9:43 pm, Avakash bhat <avakash261 at gmail.com> wrote:
> We are trying to implement the ACK filtering module of CAKE in ns-3 (Network Simulator).

Ah yes.  Sorry I didn't respond to the introduction earlier - we were right in the middle of preparing for an IETF virtual meeting.  The debris is still falling from orbit…

> We had a question on the working of ack filtering. 
> If an incoming ack which can replace an eligible ack in the queue is about to be enqueued, do we replace the ack in the queue with the incoming ack 
> or do we enqueue the ack to the tail of the queue and remove the eligible ack from the queue?

That sounds like an implementation detail.  But what we do in Cake is to simply enqueue all the packets, and deal with everything complicated on dequeue.

At that point, we check whether the two packets at the head of the queue are acks for the same flow, and if so, we further check whether the information in the first packet is redundant given the presence of the second packet.  If there is information in the first packet that is not also provided by the second packet, the first packet is delivered.  Otherwise the first packet is dropped, and the second packet moves to the head of the queue.  This process may repeat several times if there are several consecutive, redundant acks in the queue.

The important part is the set of rules determining whether the ack is redundant.

 - Jonathan Morton

More information about the Cake mailing list