ptrd / kwik

A QUIC client, client library and server implementation in Java. Supports HTTP3 with "Flupke" add-on.
GNU General Public License v3.0
383 stars 55 forks source link

Whether to implement a congestion control algorithm such as BBR CUBIC #20

Closed wangpeng1 closed 2 years ago

ptrd commented 2 years ago
Screenshot 2022-06-26 at 09 26 58

Please explain what exactly your question is or what you want from me. My time is valuable to me, i don't like to base my answer on guessing what the question would be....

wangpeng1 commented 2 years ago

@prtd Hello,in kwik, I see "QUIC's congestion control is based on TCP NewReno [RFC6582]" ,so the congestion algorithm of Kwik uses NewReno。Is there a plan to support BBR or Cubic ?

ptrd commented 2 years ago

Hi,

No plans yet. I would like to add some other congestion control algorithm, but congestion control is hard to implement / test, so would / will take a lot of time and there are dozens of other things in Kwik to improve, that should come first.

Why are asking? Do you have a use case that requires it?

wangpeng1 commented 2 years ago

Hi,@ptrd
I saw other quic projects implement multiple algorithms and asked by the way. At the same time, I also want to know which algorithm is better, or can choose and test it in practice. Is it convenient to disclose the plans of kwik in the future?

ptrd commented 2 years ago

Hi,

There is no real planning. This is my hobby project, so i work on it when i have time and pick up something that i like doing or that i think needs improvement or like to experiment with.

Currently, i'm working on:

Things that are on my list:

As you see, this is a long list, I guess other CC algo's will not quickly get priority, especially because i have no compelling reason to implement it. For the things mention above, I have. For example, my first goal is to conform to the RFC's, and to do so stream priorities and connection migration must be implemented. W.r.t. CC, Kwik is conforming to the specification and I have no indications that it would not be working well.