DragonFly BSD
DragonFly kernel List (threaded) for 2003-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Dynamic Right-Sizing

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Thu, 31 Jul 2003 09:45:28 -0700 (PDT)

    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!

					Matthew Dillon 

: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
: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

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]