Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 alpha 4/15/85; site ucbvax.ARPA Path: utzoo!watmath!clyde!burl!ulysses!ucbvax!tcp-ip From: tcp-ip@ucbvax.ARPA Newsgroups: fa.tcp-ip Subject: TCP Timer Message-ID: <8075@ucbvax.ARPA> Date: Wed, 12-Jun-85 12:21:04 EDT Article-I.D.: ucbvax.8075 Posted: Wed Jun 12 12:21:04 1985 Date-Received: Thu, 13-Jun-85 02:17:13 EDT Sender: daemon@ucbvax.ARPA Organization: University of California at Berkeley Lines: 39 From: David C. Plummer in disguise Date: Wednesday, 12 Jun 1985 06:54:15-PDT From: zhang%erlang.DEC@decwrl.ARPA (Lixia Zhang) I have a few questions concerning setting timers for outstanding TCP segments. The following paragraph from the TCP spec (rfc-793, page 10) sounds like that a timer should be set for each outstanding segment: "When the TCP transmits a segment containing data, it puts a copy on a retransmission queue and starts a timer; when the acknowledgment for that data is received, the segment is deleted from the queue. If the acknowledgment is not received before the timer runs out, the segment is retransmitted." My questions are: - Should we understand it as one timer need be set for each outstanding segment? - What are the situations in real implementations? From what I've heard, most implementations use a single timer per connection - am I right? I sort of remember this was mentioned in a recent msg that some implementations set a timer for each segment, some others use a single timer. What is the population percentage for each side? - Does anyone have any idea, or observations, about the performance difference, big or small, between the two different implementations? Our experience at Symbolics says that a per-connection timer and only retransmitting the FIRST segment on the retransmission queue is sufficient. In a mostly-reliable network medium, most segments do get through and are then acknowledged. If one does get through, it winds up at the front of the retransmission queue. The other segments on the retransmission queue ususlly got through, but can't be acknowledged until the first segment is acknowledged. When the first segment DOES get through, the whole batch is often acknowledged.