Thursday, March 01, 2007

Buffer Sizing Strategies

I read this paper:
"A critique of recently proposed buffer-sizing strategies", G.Vu-Brugier, R.S.Stanojevic, D.J.Leith, R.N.Shorten. ACM Computer Communication Review, Volume 37, Number 1, January 2007.

here I re-write again the big picture:
Buffers are used at network routers to temporary store incoming packets when the arrival of packets received exceeds the capacity of the egress link. This is done to maintain high level of utilization link capacity and to accommodate bursty traffic. Traditionally, router buffers have been provisioned according to the bandwidth delay product (BDP) rule: namely, one chooses the buffer size as B x T, where B is the rate of the link served by the router, and T is the "typical" round trip time experienced by connections utilizing the link. Building upon the basic observation that, under some circumstances, only a fraction of TCP flows reduce their sending rates in response to a single congestive event, a number of recent papers have suggested the possibility of deploying significantly smaller buffers without compromissing utilization of a congested link.

testbed measurements
using PC with FreeBSD and ADT algorithm for buffer sizing measurement

impact of very small buffer
it might be tempting to simply choose small size of buffer and accept the cost of reduced utilization during period with few flows. Particular note was the negative impact of very small buffers on link quality.
measurement shows with a buffer size only 3KB (or two 1500 bytes packets) it can be seen that the packet loss remains persistently high (at around 20%) while link utilization remains consistently below 60%. This test was performed during the day and can be compared to hours 1-14. Due to the large number of user complaints concerning link quality during this test, the test was terminated after 2,5 hours.

1.Real links contain a complex mix of flow connection lengths and round trip times.
2.Traffic patterns change significantly (here significantly is with respect to buffer sizing requirements) over time.
3.In the context of buffer sizing it is essential to distinguish between links at which TCP flows experience packet loss and those where they do not. On over provisioned links that experience essentially no queuing and generate essentially no packet loss the choice of buffer size has little impact on performance. We contrast this with access links where significant queuing and packet loss occurs.
4.Packet loss is an important aspect of link quality in practice. We illustrate this in the context of the use of a very small queue on a live production link - we had in fact to end our test prematurely (after 2.5 hours) owing to the high number of user complaints regarding link quality when using a very small buffer.

No comments: