In message <[email protected]>, [email protected] writes:
>
> The benefits of pipelining over persistent connections depends on the
> behavior of the client.
>
> Consider a page (2K) with a few graphics.
>
> The page itself incurs slow-start, but since there are only 4 packets,
> the window doesn't open that much.
>
> The request for the first button cannot be in the pipeline until the
> client parses this first page, and sends the request. Because the server
> has received ACKs for the entire window of data sent, but has no new
> data to send, the window gets 'shut-down' to do a slow-start restart.
> So the first button incurs slow-start as well.
>
> Depending on how fast the server can process a request, there may
> be gaps in the transmission of subsequent responses. If there are,
> due to HTTP parsing, file system lookup, etc., and if these gaps
> are large enough, the window can shutdown and restart between each
> response.
The problem that this is supposed to solve is cases where congestion
exists and/or loss is high. If RTT is larger than just LAN times it
is unlikely that TCP will go idle before the client get the second
request out and if it does go idle RTT is short so it doesn't matter
much. If the graphic is in the front of the HTML file, the request
can usually be made before the first file completes. The server could
get bogged down and cause an idle on a WAN RTT but where there are
multiple graphics the server can be fetching the next file while the
prior TCP write is still draining.
In any case with persistent connections the 3 way hand shake is
avoided on each graphic image. The 3 way hand shake is very
susseptible to very long delays (6 second or more) in the presense of
loss since RTO is not yet initialized. If you compute the expected
speed of transfer for a moderately lossy path, a few very small
transfers and one TCP connection vs many, the chance of a delay over 6
seconds (a timeout with no RTO estimate) is roughly proportional to
the number of TCP flows you use since RTO will drop by over an order
of magnitude as RTO is refined down to 10s or a few 100s of msec.
Curtis
This archive was generated by hypermail 2b29 : Mon Feb 14 2000 - 16:14:28 EST