I'll have to find some time to look at those links.
I guess I wasn't thinking of using latency to determine the rate but only nudge the rate, but use it only to determine to back off for a bit to allow the buffer to empty, but maintain the same rate overall. So if you have a 60ms RTT but a 50ms min RTT, keep your current rate but skip one segment periodically or maybe only make it a smaller segment like 1/2 the max size, but not often enough to make a large difference. Maybe allow latency to only reduce the current target rate by no more than 5% or something.
I guess the starting pattern could be something like this
1) build up, 2x segments per ACK
2) make sure ACKd bytes increases at the same rate as bytes sent
3) once bytes ACKd stops increasing, attempt to reduce segment size or skip a packet until current RTT is near the target RTT, but no more 5%
Of course this is only good for discovering the current free bandwidth. There needs to be a way to periodically probe to discover new free bandwidth. The idea was the max detected should rarely change, so don't be aggresive when probing near the max, but when below the max, attempt to find free bandwidth by adding additional segments and seeing if the ACKd byte rate increases. If it does, start growing.
I don't have an engineering background, just playing with thoughts.
[Bloat] TCP congestion detection - random thoughts
>
> Alan Jenkins alan.christopher.jenkins at gmail.com
> Sun Jun 21 10:05:52 PDT 2015
> Previous message: [Bloat] TCP congestion detection - random thoughts
> Next message: [Bloat] TCP congestion detection - random thoughts