Dynamic Right-Sizing

Matthew Dillon dillon at apollo.backplane.com
Thu Jul 31 09:48:07 PDT 2003


    This is a bit of a thorny problem.  It might be best to break it into two
    pieces... first get the window advertisement working properly, then deal
    with physical buffer space reserveration in the kernel.

    What I did for inflight was to add yet another windowing variable
    called snd_bwnd in order to keep the code as clean as possible and
    to not accidently break existing window calculations.  I would recommend
    taking the same approach for Dynamic Right-Sizing.  If you keep it
    clean and add sysctls to enable/disable it (defaulting to disabled for
    now), similar to what I did with inflight, I would love to see it
    in DragonFly!

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>

:Hi,
:I'm trying to implement Dynamic Right-Sizing, which basically adjusts the
:advertised window in tcp to the bandwidth-delay product.
:(http://www.lanl.gov/radiant/pubs/drs/lacsi2001.ps for more info)
:
:The bandwidth-delay product is already calculated via the
:tcp_xmit_bandwidth_limit function (netinet/tcp_subr.c).
:
:It's basically the opposite of inflight (man tuning). Instead of modifying
:the amount of data that tcp sends out, it modifies the advertised window.
:
:Anyway, I'm trying to find out how to modify the advertised window on
:outgoing packets without messing anything up. I was thinking about
:simply adjusting the win value in netinet/tcp_output.c but I'm not sure
:where I could do that without messing up the window calculations already
:in place.  There is a linux implementation of DRS
:(http://www.lanl.gov/radiant/software/drs/kernel-space/patch-drs-2.4.8).
:which does it by increasing the size of the receive buffer space, but this
:doesn't seem feasable in BSD.
:
:As the paper says, this will dramatically increase the throughput of high
:bandwidth-delay product connections.
:
:Thanks, and I'd appreciate any help.
:
:-Mike Hoisie
:async at xxxxxxxx






More information about the Kernel mailing list