- From: Simon Spero <ses@tipper.oit.unc.edu>
- Date: Thu, 10 Aug 1995 14:25:53 -0700 (PDT)
- To: Jeffrey Mogul <mogul@pa.dec.com>
- Cc: Paul Leach <paulle@microsoft.com>, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
Jeff is right on the money here- however there are a few interesting
points that affect the decision as to which transport to use for general
HTTP transactions.
The key point to note is that the vast bulk of data currently transferred
over HTTP has transport needs that don't correspond to the features
offered by TCP, and using strategies can greatly improve performance and
congestion characteristics.
Inline images:
Inline images have two properties that make a non-tcp transport
desirable.
1) Out-of-Order reassembly: Images are in general 2-dimensional
(pace, Pesce :). If messages are labelled, they can be rendered
immediately upon arrival, regardless of whether preceding messages
have been successfully delivered. Because TCP provides ordered
delivery, if a single packet is lost, no data can be delivered to
the application until that packet is successfully retransmitted
and received.
2) Some data loss is acceptable: Because the human eye and brain
are designed to work with partial data, images can be
reconstructed sucesfully even if some data is missing. Thus,
not every lost packet needs to be re-transmitted. This effect is
most noticeable if the data is ordered so as to minimise the
number of adjacent pixels contained in a single message.
TCP is a reliable transport service - if a message is lost, the
sender will re-transmit it after a timeout.
Audio data:
1) Audio data is linear, and real time: If a message containing
audio data fails to arrive within a given window, it has missed its
chance and is no longer wanted. Retransmission is not helpful-
the only way to deal with data loss is via regeneration from
other packets (I think Christian has done some work on this?)
2) Audio data rates are adaptable: If the bandwidth available to
the sender decreases, the data rate can be reduced by increasing
compression ratios (MPEG), or by switching to a different
encoding scheme (ADPCM, etc). TCP does not make bandwidth information
available to the application, and does not allow data that has been
sent but not delivered to be recalled.
Real Time Transport protocols.
A better approach for these particular media types is to use some sort of
Real Time Protocol, such as RTP. These protocols provide feedback to the
application as to the bandwidth available, latencies and jitters,
together with an indication of the rate of data loss. Although RTP isn't
a transport protocol in itself, transport protocols can be build on top
of it by using the information provided to do limited re-transmission
where applicable, and to do some sort of rate based congestion control
(e.g., clock packets out at the same rate the receiver receives them,
treat increased jitter as a sign of router queue instability, etc)
Simon
Received on Thursday, 10 August 1995 14:28:18 UTC