I'm writing a http3 (which runs on quic) library, and there's a requirement of choosing different congestion control algorithm by caller. I did some Research and read this:
There are several variations and versions of the algorithm implemented in protocol stacks of operating systems of computers that connect to the Internet.
I suddenly notice that I'v never thought about how a congestion control algorithm really works (on tcp) before, besides some abstraction theory. So here are some questions which are not very clear to me.
- Can a client and server use different congestion algorithms when communicating? For example client use the Reno and the server use the CUBIC?
- If yes, this is any disadvantage that client and sever use different algorithms?
- If no, how do the server and client negotiate an congestion control algorithm?