[0] yes, this is userland, but it's for fuchsia, so "kernel functionality" as far as its users are concerned.
[0] yes, this is userland, but it's for fuchsia, so "kernel functionality" as far as its users are concerned.
Either way, it looks like the congestion control is just New Reno.
https://github.com/google/netstack/blob/edcfca33ca347f59a139...
Also, this isn't an official Google product, per the disclaimer; just some code that happens to be owned by Google. Where are you seeing the reference to Fuchsia?
edit: oh, I see. Fuchsia codebase has references to this netstack.
Combined with fq-CODEL, BBR finally offers a way to load balance traffic on your NAT without allowing someone to monopolize bandwidth
Over the last 10 years networks buffers have become gigantic and sending packets as fast as you can causes standing queues that can be a dozen seconds long. This is where the lag comes from when someone on your LAN is uploading/downloading.
The lag actually gets worse with higher connection speed because the devices tend to have even bigger buffers.
BBL and to some extent VEGAS are smarter going about things. They attempt to maintain constant latency instead of maximum bandwidth. For a few percent less connection speed all the buffers stay empty and delay stays minimal
https://blogs.technet.microsoft.com/networking/2016/07/18/an...
https://view.officeapps.live.com/op/embed.aspx?src=https%3A%... slide 31
Implementing it in the kernel also makes programs like “trickle” much easier.
Huh? Congestion control is enforced on the sender side while ACKs are generated by the receiver.
Apple has a patent on throttling lower priority TCP flows by advertising a reduced receive window based on inter-arrival jitter. I feel this is a cleaner way than delaying ACKs.
Anyways, my point was that LEDBAT wouldn't help.
So, you get a lot of complexity for not a lot of benefit. However, Fuchsia is destined for mobile devices, which may not have the LAN-WAN bottleneck, so this could see some benefit.
The server has to give you an indication of round trip for that to work - although I suspect there’s some clever way to get it using Some kind of URG or OOB or keep alive even if the server doesn’t natively support TCP ledbat.