Re: Why can download manager can help?

From: Mike Jagdis ([email protected])
Date: Thu May 31 2001 - 18:04:11 EDT

  • Next message: SoftCOM: "CfP: Workshop on Future Wireless Communications"

    > Some download managers such as NetAnts claim to be designed to maximize
    > throughput by making multiple HTTP connections, each of which downloads
    > a separate part of a single big file.
    >
    > I wonder why doing this is helpful.

    By violating the slow start principle. With one TCP connection
    you send one packet, get an ACK, send two packets, get two ACKs
    etc. With short lived connections, such as HTTP/1.0, you may never
    actually get out of slow start and thus use significantly less
    then bandwidth than is actually available.

      HTTP/1.1 addresses this at the application level by by reusing
    the same TCP connection. With a longer lived connection you have
    the chance to ramp up further and get out of slow start.

      The multiple connections brigade reduces the slow start effect
    by using multiple connections. With four connections rather than
    one you send four packets, get four ACKs, send eight packets,
    get eight ACKs etc. Sounds good? Well, kind of, yeah...

    > Now suppose the network is the performance bottleneck (maybe network
    > congestion), then no matter how many simultanous connections are used,
    > the overall transfer speed is limited by the network. How can the
    > multiple connections help?

    That's where things go wrong. If you are using four connections to
    do the work of one then under congestion you will get four times
    your fair share of bandwidth. This is good for you. It's bad for
    everyone else who happens to be using the same link. Unless they
    happen to be using one of these multiple connection atrocities as
    well in which case you are heading for an arms race with people
    increasing the number of connections they use to try and grab more
    of the bandwidth for themselves.

      Once you are in to an arms race things go from bad to worse. Use of
    multiple connections like that creates bursts of SYN, SYN-ACK and
    data packets that disturb TCPs attempts to adapt to the available
    bandwidth. This tends to result in active connections staying
    backed off so there is always free capacity to absorb these bursts.
    i.e. the link owner doesn't get to make efficient use of the
    bandwidth they are paying for.

    > However, by real experience, this kind of download manager is helpful
    > and reduce the overall respond time. Why? Is it related to the HTTP 1.1?

    Yes. It *appears* helpful to the end user. But it's snake oil. It helps
    the end user by screwing over every one else trying to use any of the
    links between you and the remote system you are accessing.

      I seem to remember early versions of Netscape used multiple
    connections. I believe you'll find it mentioned in the tcpsat archives
    if you search for netscape and marco.

      Incidentally there is ongoing TCP research to avoid slow start
    limitations without being so massively anti-social. Things like
    large initial windows, shared state, congestion managers etc.

                                    Mike

    -- 
    Chief Network Architect		Mobile:	+44 7780 608 368
    Kokua Communications Ltd	Office:	+44 20 7292 1680
    52-53 Conduit Street		Fax:		+44 20 7292 1681
    London W1S 2YX
    



    This archive was generated by hypermail 2b29 : Thu May 31 2001 - 18:36:13 EDT