-
Notifications
You must be signed in to change notification settings - Fork 865
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[core] FileCC improvements #807
[core] FileCC improvements #807
Conversation
AZ EUW to USW transmission test. Congested network conditions: effective transmission rate ~550 Mbps. The same number of packets is being transmitted. v1.3.3 takes 125 seconds to transmit the data, while the new version takes ~100 seconds. v1.3.3This PR |
bddc246
to
fda0242
Compare
fda0242
to
2bb9139
Compare
2bb9139
to
251ef06
Compare
Also related to #413 |
Improving FileCC. Mainly bearing with losses below 2%. Also reduced reaction on losses.
Changes to FileCC::updateSndPeriod
Experiments have shown that the bandwidth estimation value
BW = m_parent->bandwidth()
is not reliable enough. However, it was used to determine the highest possible sending bitrate in FileCC.The value
B
determines the difference between the estimated bandwidthBW
, and current sending rateR=1000000/m_dPktSndPeriod
(packets per second):B = BW - R (pkts/s)
The new sending rate will be increased exponentially the higher the value of
B
is.In case BW is overestimated, the increase wll be too rapid and will instantly fall into network congestion.
Therefore, in this PR the last point where the loss was detected is used. The value of that is multiplied by two so that the increased value hits the area around that point.
loss_bw = 2 * (1000000 / m_dLastDecPeriod); // 2 times last loss point
Changes to Loss Processing FileCC::slowdownSndPeriod
When a loss report is received, FileCC enters the loss avoidance mode (
m_bLoss = true
).If the number of lost packets is less than 2% of the packets in flight (unacknowledged), then do not decrease the sending rate, but do not increase as well. Remember the loss point (
m_dLastDecPeriod
).Then, if the number of lost packets is higher than 2% of the packets in flight, then decrease the sending rate, but not as rapid, as it was decreased in the previous version of FileCC.
Further improvements
speedupToWindowSize
is called in case of LATE_REXMIT. This means that the sender considers some packets lost, because it does not receive neither ACK, nor LOSS report for some time. In that case FileCC should also stop increasing sending rate. At the moment FileCC ignores that.Related PRs
#802 is to reduce the number of retransmitted packets.