[e2e] Why Buffering?

Yashar Ganjali yganjali at cs.toronto.edu
Fri Jun 19 16:42:20 PDT 2009



You might want to take a look at these. The first one has a great overview
of why we need buffers, explains the Bandwitdth x RTT in detail, and shows
we might be able to reduce the buffer sizes down to $Bandwidth x RTT /
\sqrt(N)$ . The second one shows that in networks with slow access links (or
paced TCP) you can reduce the buffer sizes down to 10-20 packets. The last
one describes test-bed and real network experiments on buffer sizing.


Hope this answers your question.




"Sizing Router Buffers" 
Guido Appenzeller, Isaac Keslassy and Nick McKeown 
ACM SIGCOMM 2004, Portland, August 2004. pdf,
<http://tiny-tera.stanford.edu/%7Enickm/papers/sigcomm2004.pdf>  ps


M. Enachescu, Y. Ganjali, A. Goel, N. McKeown, and T. Roughgarden, "Routers
with Very Small Buffers," Proceedings of the IEEE INFOCOM'06, Barcelona,
Spain: 2006.




N. Beheshti, Y. Ganjali, M. Ghobadi, N. McKeown, and G. Salmon,
"Experimental Study of Router Buffer Sizing," Proceedings of Internet
Measurement Conference (IMC), Vouliagmeni, Greece: 2008, pp. 197-210



Yashar Ganjali                        Bahen Center for Information

Assistant Professor                   40 St. George Street, Room BA 5238

Department of Computer Science        Toronto, ON M5S 2E4

University of Toronto                 Phone: (416) 978-2952

http://www.cs.toronto.edu/~yganjali   Fax: (416) 978-4765



From: end2end-interest-bounces at postel.org
[mailto:end2end-interest-bounces at postel.org] On Behalf Of Paddy Ganti
Sent: Friday, June 19, 2009 3:20 PM
To: end2end-interest at postel.org
Subject: [e2e] Why Buffering?


For the question of "why do routers buffer", Vadim Antonov provided the
following rationale (http://www.irbs.net/internet/nanog/0204/0298.html)


Well, so far nobody provided a valid explanation for the necessity of 
buffering in routers (and any other stochastically multiplexing devices). 

The real reason for having buffers is the fact that information about 
congestions takes some time to propagate. (In TCP/IP congestion are 
detected by seeing lost packets). 

If buffers are not sufficient to hold packets until TCP speakers see 
congestion and slow down, the system becomes unstable. Buffers are, 
essentially, inertial elements in the delayed negative-feedback control 
loop. Insufficient inertia causes oscillations in such systems, which is 
sometimes useful, but in case of networks leads to decreased througoutput 
because the wire is utilized fully only at upswings and underutilized on 
downswings (collapsed TCP windows aggravate the effect futher). 

Consequently, the holding capacity of buffers should be sufficient to 
bring the inertia of the system up to the reaction time of the negative 
feedback (this is a simplification, of course). This reaction time is 
about one round-trip time for end-to-end packets. 

In real networks, the RTTs differ for different paths, so some 
"characteristic" RTT is used. So, to hold packets until TCPs slow down a 
router needs cRTT * BW bits of buffer memory (where BW is the speed of the 
interface). This rule can be somewhat relaxed if congestion control loop 
is engaged proactively before congestion occured (by using Random Early 
Detection), but not much. 

Even with properly sized buffers, sessions with longer RTTs suffer from 
congestions disproportionately because TCPs on the ends never get enough 
time to recover fully (i.e. to bring windows to large enough size to 
maintain steady stream of packets), while small-RTT sessions recover 
quickly, and, therefore, get bigger share of bandwidth. But I'm 
digressing :) 



My question to the group is : what other reasons not mentioned here can be
reasons to buffer in a router?



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.postel.org/pipermail/end2end-interest/attachments/20090619/2d5433ce/attachment.html

More information about the end2end-interest mailing list