You should be able to do it. In fact that is what QUIC does. You will still need a seperate loss detection implementation like RACK and since BBR relies on pacing your packet send logic will need to implement pacing.
--
You received this message because you are subscribed to the Google Groups "BBR Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bbr-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Indeed, it should be possible to plug BBR into almost any congestion control framework that can support a congestion window and a pacing rate.neal
On Sat, Oct 21, 2017 at 12:56 AM, Beyers Cronje <bcr...@gmail.com> wrote:
You should be able to do it. In fact that is what QUIC does. You will still need a seperate loss detection implementation like RACK and since BBR relies on pacing your packet send logic will need to implement pacing.
--
You received this message because you are subscribed to the Google Groups "BBR Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bbr-dev+u...@googlegroups.com.
On 15 Nov 2017 06:29, "Pavel P" <pavlov...@gmail.com> wrote:
> Does BBR handle properly cases like 6KB/s link with 10ms RTT (where a packet has to be sent every 250ms while RTT is just 10 ms)?
Such a thing is impossible. If it takes 250ms to send each packet (serialisation delay), then the RTT must be at least that, and BBR will measure it as such.
- Jonathan Morton
--
You received this message because you are subscribed to the Google Groups "BBR Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bbr-dev+unsubscribe@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to bbr-dev+u...@googlegroups.com.
In my implementation (of not BBR, but similar bandwidth and rtt estimation logic) I do calculations per block. A new block is allocated in a queue once I get an ACK for the last block in queue, which means that each block keeps stats for 1 RTT of packets. In case when delay between packets is higher than 1 RTT I end up with blocks each having 1 packet only. It kind of works, but not as precise compared to normal bitrate scenario.I just reviewed that BBR paper published on acm.org and it seems that BBR calculates bitrate for each packet individually.
Regarding your measurements. You got 787ms median rtt, but the original network spec is 10ms rtt with 6KB/s (4 packets per sec) bandwidth. Shouldn't it detect and drain the RTT and try to pace packets so that rtt stays close to the min?
Pavel
On Wednesday, November 15, 2017 at 9:33:17 AM UTC-8, Neal Cardwell wrote:From the one-packet-per-250ms time scale, assuming ~1500-byte MTU then I take it that 6KB/s is 6 Kilobytes per second (49Kbps). At that rate it does seem like a minimal-sized TCP/IPv4 packet could be serialized in a little under 10ms. In this kind of super-low-bandwidth case BBR would pick up the initial RTProp sample from the SYN/ACK handshake, and use that for the first RTprop filter window; after that it would switch to the measured RTT from the full-sized packets.We routinely run tests of Linux TCP BBR down to 16Kbps, and it seems to work.To check your 6KB/s case, I just ran tests of 1 and 4 Linux TCP BBR flows on a netem-emulated path with 6KB/s = 49Kbps and got results that are, IMHO, fine:- BBR utilizes the pipe fully while keeping the queue bounded (no bufferbloat - e.g. with one flow the median RTT is 787ms)- BBR achieves approximate fairness in the multi-flow case (bytes transferred per flow in a 3-minute test: {577753, 443089, 632777, 524177}; perfect fairness would be 6*1024 * 360 / 4 = 552960)cheers,nealOn Tue, Nov 14, 2017 at 11:35 PM, Jonathan Morton <chrom...@gmail.com> wrote:On 15 Nov 2017 06:29, "Pavel P" <pavlov...@gmail.com> wrote:
> Does BBR handle properly cases like 6KB/s link with 10ms RTT (where a packet has to be sent every 250ms while RTT is just 10 ms)?
Such a thing is impossible. If it takes 250ms to send each packet (serialisation delay), then the RTT must be at least that, and BBR will measure it as such.
- Jonathan Morton
--
You received this message because you are subscribed to the Google Groups "BBR Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bbr-dev+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "BBR Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bbr-dev+unsubscribe@googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to bbr-dev+unsubscribe@googlegroups.com.