On Tue, 6 Oct 2015, Greg White wrote:
Mikael,
Specialized upstream TCP ACK handling (which can include both
prioritization and suppression) is a recommended feature in the DOCSIS
specification. The details of the implementation are left to the
manufacturer, but I don't expect that it is actually done at dequeue
(packet processing at dequeue is expensive in cable modems). Rather, I
expect that devices identify ACKs at enqueue, and retain (separate from
the main service-flow queue) a single ACK for each TCP session. Then,
upon receiving a grant, the ACK queue is flushed first, followed by
packets from the main queue.
Sounds reasonable. From my packet dumps it looks like (this is DOCSIS3.0)
I most of the time get one ACK per 1-4ms, but sometimes I get several ACKs
per 0.1 ms. It seems to me that the ACK suppression algorithm suppresses
16 ACKs and then lets the next one through as most of the time, the number
of bytes that each ACK is ACK:ing is 24616 which divided by 17 is 1448,
which seems to match nicely with TCP payload size. So in my case, it seems
it lets 1 packet through, drops 16, lets one packet through, drops 16 etc.
Sometimes it seems to drop 32 packets though (see packet 1350 below),
guess it works in iterations of 16 anyway.
http://swm.pp.se/acksuppression-151007.png
The CM is not permitted to issue bandwidth requests for more data than it
has available to send, so bandwidth requests would need to already have
ACK suppression taken into account. For this reason (and the above), I
doubt that the CM would include suppressed ACKs in its queue depth and
queuing latency estimation.
Ok, so the ACK suppression would happen before the BW request is sent out,
and after the request is sent out, there is no adding to it? I'm just
thinking what the reason is that I seem to be seeing several ACKs during
the same grant (I am guessing that multiple packets seen within 0.1ms is a
single BW grant). Can CM ask for additional grant during the wait for a
grant, or CM can only have a single outstanding grant at any given time?
--
Mikael Abrahamsson email: [email protected]
_______________________________________________
aqm mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/aqm