Skip to content
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

I have a question about compute min_rtt in bbrV2 #58

Open
chinchilla-forest opened this issue Nov 21, 2023 · 0 comments
Open

I have a question about compute min_rtt in bbrV2 #58

chinchilla-forest opened this issue Nov 21, 2023 · 0 comments

Comments

@chinchilla-forest
Copy link

chinchilla-forest commented Nov 21, 2023

BandwidthSampler::OnCongestionEvent(QuicTime ack_time,
const AckedPacketVector& acked_packets,
const LostPacketVector& lost_packets,
QuicBandwidth max_bandwidth,
QuicBandwidth est_bandwidth_upper_bound,
QuicRoundTripCount round_trip_count) {
CongestionEventSample event_sample;
.
.
.
for (const auto& packet : acked_packets) {
BandwidthSample sample =
OnPacketAcknowledged(ack_time, packet.packet_number);
if (!sample.rtt.IsZero()) {
event_sample.sample_rtt = std::min(event_sample.sample_rtt, sample.rtt);
}

I think the bbrv2 get the min_rtt in this code,and it's triggered by one ack frame.And one ack frame may include some packet number to be acked.For example,if one ack frame has three acked packet number : 1,2,3; the 3 is largest ack packet number。And the “acked_packets” contain packet 1,2,3. So when compute min_rtt, the code will loop "acked_packets",for packet 1,2,3, it will get min value. But obviously,the packet 1will get min value becaues the packet 1's send time is smallest ,and ack time is same.

So my question is does it will cause the rtt will be smaller than real rtt.I think may be only use packet 3 to compute rtt is more correct?
And the ack frame may contain packet‘s receive timestamp,why it doesn't used in compute rtt? because ietf quic may not contain receive timestamp?

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

No branches or pull requests

1 participant