Hi Dave, Am 29.11.18 um 08:39 schrieb Dave Taht: > "Bless, Roland (TM)" <roland.bl...@kit.edu> writes: > >> Hi Luca, >> >> Am 27.11.18 um 11:40 schrieb Luca Muscariello: >>> OK. We agree. >>> That's correct, you need *at least* the BDP in flight so that the >>> bottleneck queue never empties out. >> >> No, that's not what I meant, but it's quite simple. >> You need: data min_inflight=2 * RTTmin * bottleneck_rate to filly >> utilize the bottleneck link. >> If this is true, the bottleneck queue will be empty. If your amount >> of inflight data is larger, the bottleneck queue buffer will store >> the excess packets. With just min_inflight there will be no >> bottleneck queue, the packets are "on the wire". >> >>> This can be easily proven using fluid models for any congestion >>> controlled source no matter if it isĀ >>> loss-based, delay-based, rate-based, formula-based etc. >>> >>> A highly paced source gives you the ability to get as close as >>> theoretically possible to the BDP+epsilon >>> as possible. >> >> Yep, but that BDP is "on the wire" and epsilon will be in the bottleneck >> buffer. > > I'm hoping I made my point effectively earlier, that > > " data min_inflight=2 * RTTmin * bottleneck_rate "
That factor of 2 was a mistake in my first mail (sorry for that...). I corrected that three minutes after. I should have written: data min_inflight=RTTmin * bottleneck_rate > when it is nearly certain that more than one flow exists, means aiming > for the BDP in a single flow is generally foolish. Liked the stanford I think one should not confuse the buffer sizing rule with the calcluation for inflight data... > result, I think it's pretty general. I see hundreds of flows active > every minute. There was another paper that looked into some magic > 200-ish number as simultaneous flows active, normally So for buffer sizing, the BDP dependent rule is foolish in general, because it is optimized for older loss-based TCP congestion controls so that they can keep the utilization high. It's correct that in presence of multiple flows and good loss desynchronization, you still get high utilization with a smaller buffer (Appenzeller et. al, SIGCOMM 2004). However, when it comes to CWnd sizing, that inflight rule would convert to: data min_inflight=RTTmin * bottleneck_rate_share because other flows are present at the bottleneck. Interestingly enough: flows with a different RTT_min should use different CWnds, but their amount of queued data at the bottleneck should be nearly equal if you want to have flow rate fairness. Regards Roland _______________________________________________ Bloat mailing list Bloat@lists.bufferbloat.net https://lists.bufferbloat.net/listinfo/bloat