- 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