Skip to content
This repository has been archived by the owner on Aug 28, 2023. It is now read-only.

W_max #135

Closed
larseggert opened this issue Nov 23, 2021 · 6 comments
Closed

W_max #135

larseggert opened this issue Nov 23, 2021 · 6 comments
Assignees

Comments

@larseggert
Copy link
Contributor

From @markkukojo in #85:

Moreover, I didn't notice it earlier but this also means that setting W_max should be different if the sender is in slow start when a pkt loss (congestion) is detected and cwnd is reduced.
If CUBIC sets W_max to size of cwnd just before cwnd was reduced when in slow start alike when in CA, it results not only starting the first CA epoch after fast recovery with an overaggressive cwnd (using MD=0.7) above the actual saturation point but also starting the subsequent CA with the concave phase and continuing with the concave phase until cwnd reaches value that is double the saturation point. This makes CUBIC (when not in Reno-friendly region) much more aggressive than intended because it operates in the concave phase even though the cwnd size actually already exceeds the previous saturation point (which in the above example is 200 not 400).

IMO this issue of which MD factor to use when in slow start is not resolved. Please also add the problem with setting W_max when in slow start to the set of open issues.

@larseggert
Copy link
Contributor Author

Any takers for this one?

@nsdyoshi
Copy link

nsdyoshi commented Dec 13, 2021

I think this is an interesting discussion point. My tentative thoughts on this are:

  • if hystart++ is used, the chances to get losses during slowstart will be reduced
  • if a certain pacing is used, the burstness in the first CA epoch is reduced which might help finding saturation point without large losses
  • using MD=0.5 upon the loss after SS may be one idea especially when the options above are not used.
  • But, I'm still thinking how bad concave growth in the first CA is. if cwnd at loss during SS is too far from the actual saturation point, both reno and cubic will hit saturation point quickly in the first CA. there might not be big differences. if the cwnd at loss during SS is close to the actual saturation point, cubic gain more bandwidth than reno especially under long RTTs, but this might be what cubic is.

@lisongxu
Copy link
Contributor

I will work on this issue. Thanks

@lisongxu
Copy link
Contributor

Quick update: still working on it, try to find a reasonable solution for both #135 and #85. Thanks

@lisongxu
Copy link
Contributor

Update:

Thank you all, @markkukojo @nsdyoshi, for your comments and suggestions!

We agree that both MD and Wmax may be adjusted differently for slow start and congestion avoidance. As this could be a major change to CUBIC, we (thanks, @sangtaeha) plan to comprehensively test and evaluate this change in various network environments, which will take some time.

@larseggert
Copy link
Contributor Author

I will hence close this.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants