Vivek-anand-jain / ns-3-dev-git

Experimental GitHub read-only mirror of ns-3 development repository, will be kept in sync with original Mercurial repository; pull requests not accepted at the moment.
http://www.nsnam.org/
GNU General Public License v2.0
5 stars 6 forks source link

BBR does not produce minimum RTT #4

Open MengleiZhang opened 6 years ago

MengleiZhang commented 6 years ago

Hi Vivek,

I was running your BBR implementation over a fixed RTT (40ms) and throughput (50mbps) link. The throughput and congestion window trends are correct, as the blue plot attached below. However, I observed that the RTT keep increasing to almost 2*RTT. I went through the IETF and find out that in section 3.3

/* Update info using the newest packet: */ if (P.delivered > rs.prior_delivered)

My doubt is if BBR wants to update the info using the newest packet, the if check should be

   if (P.delivered >= rs.prior_delivered)

After changing the > to >= in your BBR implementation, the RTT curve look correct (red). Do you have any thoughts about this?

Menglei

bbr

MengleiZhang commented 6 years ago

Moreover, in the section 4.4 of IETF Delivery Rate Estimation, it mentioned 2 possible ways of mitigating the impact of packet losses and retransmissions. Is this also implemented in the ns-3 code? When recording the estimated deliver rate, I observed a sudden drop during fast retransmission and recovery. Could you check the estimated deliver rate is correctly computed when there is retransmissions.

Menglei

Vivek-anand-jain commented 6 years ago

Hi Menglei,

I agree with your suggestion and ready to incorporate the changes. But I have followed Linux's delivery rate estimation implementation, and even Internet-Draft suggests ">". So I think bbr-dev is the place to discuss this. If you agree, either of us can create an email and post it on the bbr-dev mailing list. What do you suggest?

Moreover, in section 4.4 of IETF Delivery Rate Estimation, it mentioned 2 possible ways of mitigating the impact of packet losses and retransmissions. Is this also implemented in the ns-3 code? When recording the estimated delivery rate, I observed a sudden drop during fast retransmission and recovery. Could you check the estimated deliver rate is correctly computed when there is retransmissions.

We have followed the first approach from the Internet Draft Section 4.4. Please let us know if you have a use-case where you see a problem.

Moreover, Rate sampling code is going through some changes. I'll update the code base as early as possible and let you know.

Vivek

MengleiZhang commented 6 years ago

Hi Vivek,

Sorry to the late repose. Feel free to post this into the bar-dev mailing list.

For the rate sampling, I noticed sometime the parameter m_rs.m_sendElapsed or m_rs.m_ackElapsed equals to zero during retransmission. Not sure why this is happening, but I was able to get reasonable results after ignoring these measurements.

Menglei

On May 8, 2018, at 11:10 AM, Vivek Jain notifications@github.com wrote:

Hi Menglei,

I agree with your suggestion and ready to incorporate the changes. But I have followed Linux's delivery rate estimation implementation, and even Internet-Draft suggests ">". So I think bbr-dev is the place to discuss this. If you agree, either of us can create an email and post it on the bbr-dev mailing list. What do you suggest?

Moreover, in section 4.4 of IETF Delivery Rate Estimation, it mentioned 2 possible ways of mitigating the impact of packet losses and retransmissions. Is this also implemented in the ns-3 code? When recording the estimated delivery rate, I observed a sudden drop during fast retransmission and recovery. Could you check the estimated deliver rate is correctly computed when there is retransmissions.

We have followed the first approach from the Internet Draft Section 4.4. Please let us know if you have a use-case where you see a problem.

Moreover, Rate sampling code is going through some changes. I'll update the code base as early as possible and let you know.

Vivek — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/Vivek-anand-jain/ns-3-dev-git/issues/4#issuecomment-387436104, or mute the thread https://github.com/notifications/unsubscribe-auth/AMHLyd4SJ4BRbwCP3yVrq6W-Aemtdgv5ks5twbVMgaJpZM4T0OWl.