private-octopus / picoquic

Minimal implementation of the QUIC protocol
MIT License
523 stars 153 forks source link

Congestion control interacting with the path #1628

Closed notBroman closed 3 months ago

notBroman commented 4 months ago

I'm trying to understand how the congestion control algos interact with the connection. I understand that the parameters are defined on the path not the connect using picoquic_path_t, does the CC algorithm change the path variables? How does this result in sending a different amount of packets?

I've looked through the documentation, but it only briefly goes over the pacing by using picoquic_get_earliest_cnx_to_wake(...). However I couldn't find any more in depth explanation on how the picoquic_path_t and cc algorithms are interacting.

I've tried looking through the code, but I am struggling to understand.

huitema commented 4 months ago

The CC normally uses two methods:

huitema commented 4 months ago

In the other direction, we have a callback API used by the transport to inform the CC when important events happen.