[Bloat] [Make-wifi-fast] benefits of ack filtering
Mikael Abrahamsson
swmike at swm.pp.se
Sun Dec 3 09:07:24 EST 2017
On Sun, 3 Dec 2017, Juliusz Chroboczek wrote:
> As far as I know, DOCSIS has an asymmetry factor that is between 4 and 10,
> depending on the deployment. With worst case asymmetry being 10, this
I can buy 300/10 megabit/s access from my cable provider. So that's a lot
worse. My cable box has 16 downstream channels, and 4 upstream ones. Each
channel is TDM based, and there is some kind of scheduler granting sending
opportunities for each channel to each modem, as needed. I'm not a DOCSIS
expert.
> means that you can send an Ack for every data packet with 400 byte data
> packets, every second data packet with 200 byte data packets. If the
> asymmetry is a more reasonable 4, then the figures are 100 and 50
> respectively.
>
> Try as I might, I fail to see the problem. Are we advocating deploying
> TCP-aware middleboxes, with all the problems that entails, in order to
> work around a problem that doesn't exist?
If I understand correctly, DOCSIS has ~1ms sending opportunities upstream.
So sending more than 1kPPS of ACKs is meaningless, as these ACKs will just
come back to back at wire-speed as the CMTS receives them from the modem
in chunks. So instead, the cable modem just deletes all the sequential
ACKs and doesn't even send these back-to-back ones.
LTE works the same, it's also frequency divided and TDM, so I can see the
same benefit there of culling sequential ACKs sitting there in the buffer.
I don't know if this is done though.
I've seen people I think are involved in TCP design. They seem to be under
the impression that more ACKs give higher resolution and granularity to
TCP. My postulation is that this is commonly false because of how the
network access is designed and how also the NICs are designed (the
transmit/receive offloading). So sending 35kPPS of ACKs for a gigabit/s
transfer is just inefficient and shouldn't be done. I would prefer if end
points would send less ACKs instead of the network killing them.
And the network does kill them, as we have seen. Because any novice
network access technology designer can say "oh, having 16 sequential ACKs
here in my buffer, sitting waiting to get sent, is just useless
information. Let's kill the 15 first ones."
--
Mikael Abrahamsson email: swmike at swm.pp.se
More information about the Bloat
mailing list