[mod.protocols.tcp-ip] Analyzing Acknowledgement Strategies

craig@LOKI.BBN.COM.UUCP (12/24/86)

    Has anyone done any work analyzing acknowledgement strategies on
a theoretical level?

    It seems to me there is an inherent conflict in choosing acknowledgement
strategies.  To reduce unnecessary retransmissions of data packets, one
wants to make sure data packets get acknowledged.  But the best (only?)
way to make sure acknowledgements get through is to send more of them.

    It is easy to identify bad strategies.  A system which sends twenty
acknowledgements for every packet is a bad strategy because the number
of unneeded acknowledgements sent will clog a network more than the
reduction in unnecessary retransmissions (because an ack was lost)
could ever reduce network traffic.  Similarly, a system which acknowledges
too little abuses the network because too many data packets get
unnecessarily retransmitted -- up to a point acknowledging more often
will reduce the *total* number of packets sent.  (At least that's what
testing with RDP shows).

    The problem is identifying where these tradeoffs balance out --
where the range of optimal solutions lies (if anywhere) in this space.
Has anyone ever looked at this issue?

Craig

leiner@ICARUS.RIACS.EDU.UUCP (12/25/86)

Craig,

Of course.  This is basically the same as ARQ on a noisy channel, and
there has been considerable analysis of such things.  Also, comparisons
with forward error correction.

The thing that makes it difficult in the case of packet networks is the
uncertainty on both the error characteristics (which can be handled via
adaptive error detection/correction techniques) and delay.  The latter
is what makes the packet network ARQ problem different than the link
error problem.  On a link, the delay is pretty much constant, and so you
know how long to wait for a time-out.  In a packet network of the sort
we typically deal with, that delay is statistical and must be dealt with
as such (estimated, tracked, use maximum, etc.)

Barry

----------

van@LBL-CSAM.ARPA.UUCP (01/13/87)

Craig -

  I tried to do some work on analytic models of transport
protocols a couple of years ago.  I have kept watching but
haven't found much in the ARQ literature that reflects realistic
protocol implementations.  There were 6 or so papers whose
*method* looked like it could be adapted to the analysis of TCP
or RDP.  Two that I kept in my "potentially useful" file were
Easton's "Batch Throughput Efficiency of ADCCP/HDLC/SDLC
Selective Reject Protocols", IEEE COM-28, No.2, Feb, 80, and Wai
Sum Lai's "Analysis of Piggybacking in Packet Networks", (this
was in the proceedings of one of the Berkeley Workshops on
Distributed Data Management and Computer Networks but I don't
know which one.  Probably the fourth, 1979).  A more recent paper
that looked interesting was "Performance Analysis of the
Selective Repeat ARQ Protocol" in COM-34, No.2, Feb, 86. 

  I wasn't sure from your msg what objective function you wanted
to optimize and what you viewed as constraints.  I was trying to
model a net where
 - each connection wished to maximize its throughput (as opposed
   to maximizing total network throughput)
 - aggregate network bandwidth is a limitting resource (i.e., data,
   acks and other connections all compete for the same bandwidth)
 - the population of users is large (i.e., the potential offered
   load is many times the available bandwidth)
 - all connections use the same send/ack policy and sends from
   different connections are initially i.i.d.
 - all packets go through gateways and the host-gateway path has
   much higher bandwidth than the gateway-gateway path.
 - gateways have finite buffer capacity
 - packets are subject to loss by both damage and congestion.

  Using some of the ALOHA analysis, you can show that any protocol
that deals the first six constraints must be fair and must be very
conservative with retransmissions (because congestive collapse is
exponential).  The congestive-loss constraint made the problem
novel and I got some simulation results that might explain some of
the behavior you observe.

  If we make the usual assumption of a constant bit error rate,
damage loss is a linear function of the traffic.  Congestive loss
is a function of the packet interarrival times (i.e., the derivative
of traffic w.r.t. time).  I made a loss model that looked like
	L(N) = (a + b dN/dt) N
where L is the number of packets lost and N is the number of
packets sent (including retransmissions).  I then did a cluster
analysis and a regression on a bunch of trace data to get
empirical values for a and b. Since I had first become interested
in gateway behavior when I noticed the large amount of congestive
loss, I wasn't surprised to find that b was three to four orders
of magnitude larger than a.

  This note is already too long so I'll state, without background,
some preliminary, *simulation* results (I hope to one day have
analytic results but am presently hampered by massive mathematical
ignorance). 

  - The network is wildly unstable under most send/receive policies
    if the rtt estimates are bad.

  - If the window is W packets and the round trip time is R, the
    sender policy that maximized throughput was to keep
    W/R <= dN/dt <= 2W/R  (i.e., spread the packets uniformly over
    the rtt interval but still fill the pipe).  Under heavy
    congestion it also helped to inject some random variation into
    the packet send times.

  - If the sender doesn't try to spread out packets, it is unwise
    for the receiver to delay an ack for more than half the average
    packet interarrival time.  An ack for multiple packets will
    make the sender generate a burst of packets to fill the
    window.  Any time a burst is sent, the probability of loss goes
    up quickly.  (If you were testing on a lossy path, this may have
    been what was happening when you observed that increasing the
    number of acks increased the throughput.)

  - If the sender doesn't try to spread packets, retransmissions
    (usually) result in a burst of packets, that results in loss, that
    results in retransmissions, that ....  Most tcp's are guilty of
    this burst, including 4.[23]bsd.  It's this mis-behavior of
    tcp which I believe accounts for you and others observing better
    throughput with RDP than TCP.  This is simply because the EACK
    makes it less likely that a naive protocol implementation will
    generate a burst of packets.  ("Naive" means "naive of interarrival
    time effects".)

  While I never got any of the preceeding into a publishable form, I
have gone over some of the trace data and simulation results with
Mike Karels.  I think we've agreed on a change to the 4bsd tcp
retransmission policy and hope to implement and test it soon.  In
(limited) simulation, the new policy reduced the number of
retransmissions by a factor of four and increased the throughput
under heavy congestion by a factor of two. 

  Hope some of this was useful.  If you have time to summarize, I'd
be interested in anything you learned from the replies to your query.

 - Van

Mills@LOUIE.UDEL.EDU.UUCP (01/13/87)

Van,

You are doing some fantastically wonderful stuff that should have been done
long ago. Your conclusions coincide closely to my observations and probably
many others, especially with respect to bunching (aka spasms), especially
with Unix systems using humungus windows over lossy paths. One thing was
not clear from your note. Did your simulations include the use of the Nagle
Algorithm?

Some years ago when I was experimenting along with others on TCP models
I built a flow estimator into the code which produced in effect your
dN/dt. It was designed to produce exactly the result you describe -
spreading the packets uniformly over time. I also intended to build an
estimator for dL/dt as the loss rate (did I get your nomenclature backwards?),
but something else distracted me. However, I did wire up a couple of D/A
converters to panel meters on my desk so I could see the estimators in action.
One was the SRTT and the other the dN/dt. Boy, did I get an eyeful watching
these gizmos in action as tings clogged and unclogged. If there weren't so
many other beasties squealing for attention, I'd like to dive back in those
issues again. The results might well have a profound effect on second-generation
ISO transport protocol implementations.

Idea: Use median-filter estimators instead of linear, recursive-filter ones.
I found the former extraordinarily effective for comparing clocks across the
swamps, which means they should work well for SRTT as well. My variant, which
doesn't have a proper name, is as follows: save the last n RTT samples and
sort them. Identify the median (dither if you have to if the number of samples
is even), then toss out the extremum furthest from the median. Repeat until
only a single sample is left. Season for the endgames. Serve with appropriate
timeout, so that really old info is discarded. I have been using sample windows
of eight.

Keep up the good work.

Dave

van@LBL-CSAM.ARPA.UUCP (01/15/87)

Dave -

  Thanks for the kind words.  I wish the DOE felt the same way.
My network research funds were cut off a year ago because "DARPA
funds transport protocol research, not DOE".  While trying to
find new money, I got the impression that no one funds transport
protocol research since transport protocols are a "solved
problem" (this while the mean Arpanet transit delay was 15
seconds -- I tried to laugh but it hurt too much). 


  I'm not sure which Nagle algorithm you mean.  I was assuming
instantaneous sources and sinks on each end of a connection so
all segments sent were the max segment size.  So the
accumulate-until-the-ack Nagle algorithm didn't apply.  I didn't
know about the send-one-packet-when-retransmitting algorithm at
the time and didn't simulate it. 

  I did do an empirical test of the Nagle retransmit algorithm
shortly after we brought up 4.3bsd.  I ran an A-B-A-B test with
and without the algorithm (4.3 uses the algorithm) and took
statistics on sends, acks, rexmits, etc..  Each of the four test
phases ran a week.  Local network traffic made it hard to assess
the results but it was clear that using the algorithm reduced the
number of retransmitted packets by about 30%. 

  I expected the effect to be larger.  A quick look at some trace
data suggested that there was a problem when you resumed normal
behavior after a retransmit.  Since you'll always be sending into
an empty window at this point, 4.3 will blast out 8 back-to-back
packets.  A couple of packets near the end of this blast are
almost certain to be dropped so you'll end up in retransmit state
2 RTT after the previous recovery.  The new algorithm we want to
try is designed to filter this turn-on transient. 


  I didn't look at median filters while looking at RTT estimators
but I did investigate several other FIR filters.  I think that in
the clock sync problem you want a filter with good low pass
characteristics.  For RTT, I wanted a filter with good transient
response:  Because congestion builds up exponentially, if it's
detected late senders have to take drastic action to clear it and
throughput really takes a hit.  If it's detected early senders
can make small adjustments to damp it out and throughput is
hardly affected.  The simulations suggested that "early" was
really early -- within 3 to 4 packet times of the onset. 

  The problem with FIR filters was that there's usually a
discontinuity in the RTT samples at integer multiples of W, the
window size in mss packets.  If the filter was short or tapered
enough to have good transient reponse, this discontinuity wiped
it out.  If the filter was long enough to smooth the
discontinuity, it had no transient response. 

  Measuring RTT and output packet rate is essentially estimating
a parameter and its time derivative.  This is the well known
"radar tracking problem" (estimating distance and velocity from
radar return echos) and my original estimator was a copy of the
IIR alpha-beta tracker equation from a GE radar handbook.  This
had trouble because it's fixed gain.  When the network is not
congested there's a lot of stochastic noise and the filter gain
has to be low to ignore this noise.  When the network starts to
get congested, the stochastic noise gets squeezed out and you
could use much higher gain.  Investigation of variable gain
filters led me to the Kalman's work on optimal stochastic
estimators. 

  A Kalman filter seems ideal for this problem.  It's simple,
computationally efficient (6 parameters instead of the current 1
but all integer arithmetic) and always has the maximum gain that
the data supports.  Also, if the underlying model is at all close
to reality, it's self tuning so network administrators don't have
to be mathematicians.  I was just going to start on a
Box-Jenkins' style gateway model identification when the money
ran out.  I keep intending to work on this in my copious free
time but ....

  - Van

ps- perhaps we should take this discussion off line?  I've been
    filling up peoples' mailboxes lately and I get the impression
    that there are only two or three of us interested in this topic.

mike@BRL.ARPA.UUCP (01/16/87)

I vote for keeping it on the list.  I'm keenly interested, but working
on that level of the protocol always seems to stick about 3/4 of the way
down on my queue;  I think it's hopeless. I'll never get time to tinker
down there again.  But I do enjoy reading about somebody else doing an
excellent job.  Keep up the good work, and don't go underground!

	Best,
	 -Mike

Mills@LOUIE.UDEL.EDU.UUCP (01/16/87)

Van,

You are probably right that some mailboxes out there are creaking, so let's
take this offline. If anybody else is interested, please honk.

I gave up on linear filters some time ago for clock-synch. That's when I
discovered median filters, which work like a razor through toothpaste in
my experiments. I suspect they would work well for RTT as well. I thought
of Kallman and Shannon and etc., but those dudes are all linear. I got to
many bent edges.

Dave

KLH@SRI-NIC.ARPA.UUCP (01/16/87)

No, no, please keep the discussion going here.  It's so rare for anything
really interesting to come along... thanks!
-------

mckee@MITRE.ARPA.UUCP (01/16/87)

>ps- perhaps we should take this discussion off line?  I've been
>   filling up peoples' mailboxes lately and I get the impression
>   that there are only two or three of us interested in this topic.

I expect/hope many people are interested.  The current MIL-STD 1777
and 1778 are incomplete; they need a section called Implementation
Guidelines.  The work that you, Mills, Nagle, Partridge, et al are doing
will be the basis of that section.  At any rate, while I can contribute
little more than intense interest, please include me in your
discussions.

I would particularly like to hear from John Nagle on:

>A quick look at some trace data suggested that there was a problem
>when you resumed normal behavior after a retransmit.  Since you'll
>always be sending into an empty window at this point, 4.3 will blast
>out 8 back-to-back packets.  A couple of packets near the end of this
>blast are almost certain to be dropped so you'll end up in retransmit
>state 2 RTT after the previous recovery.

I would offer the following comment: Packets are lost by Gateways, not
PSNs.  The PSNs can protect themselves against an input overload from
subscribers; Gateways can only whimper Source Quench.  Accordingly, we
should thump on the egp-people people to "do something."

Regards - Craig

LYNCH@A.ISI.EDU.UUCP (01/16/87)

I vote with Mike.  Van and Dave are exploring critical issues and
exposing the sad fact that support for this kind of research
is not too big, but the problems are not going away.  We
wil never be able to build useful (and complex) internets until
we have solid methods for controlling packetorhea.

Dan
-------

Mills@LOUIE.UDEL.EDU (01/19/87)

Henry,

Thanks for the vote. So far as I know, I have not restricted distribution
of any of my bleats, just answered what was sent. In the twinkle of keys
I may have blown that model.

You raise a good point, also raised by Gonzoles Arse here: why recurse
on the median filter? The sample data I have collected here are almost
always strongly skewed. They tend to be clustered more-or-less generally
about a median, but with a significant population of gross outliers.
The particular technique I evolved had a rather high seat of pants,
but worked fantastically well with Internet delays.

Dave

mckee@MITRE.ARPA (H. Craig McKee) (01/20/87)

>ps- perhaps we should take this discussion off line?  I've been
>   filling up peoples' mailboxes lately and I get the impression
>   that there are only two or three of us interested in this topic.

I expect/hope many people are interested.  The current MIL-STD 1777
and 1778 are incomplete; they need a section called Implementation
Guidelines.  The work that you, Mills, Nagle, Partridge, et al are doing
will be the basis of that section.  At any rate, while I can contribute
little more than intense interest, please include me in your
discussions.

I would particularly like to hear from John Nagle on:

>A quick look at some trace data suggested that there was a problem
>when you resumed normal behavior after a retransmit.  Since you'll
>always be sending into an empty window at this point, 4.3 will blast
>out 8 back-to-back packets.  A couple of packets near the end of this
>blast are almost certain to be dropped so you'll end up in retransmit
>state 2 RTT after the previous recovery.

I would offer the following comment: Packets are lost by Gateways, not
PSNs.  The PSNs can protect themselves against an input overload from
subscribers; Gateways can only whimper Source Quench.  Accordingly, we
should thump on the egp-people people to "do something."

Regards - Craig

--------

stever@videovax.tek.com ("Steven E. Rice") (01/22/87)

The "automatic" mailing software dropped the ball, so we'll try again:

From: stever@videovax
Newsgroups: mod.protocols.tcp-ip
Subject: Re: Analyzing Acknowledgement Strategies
Message-ID: <4160@videovax.Tek.COM>
Date: Fri, 16-Jan-87 19:41:18 EET
References: <8701151850.AA18157@lbl-csam.arpa>
Reply-To: stever@videovax.Tek.COM (Steven E. Rice, P.E.)
Organization: Tektronix Television Systems, Beaverton, Oregon
Lines: 22
Summary: Please continue to let us in on the discussion!

In article <8701151850.AA18157@lbl-csam.arpa>, Van Jacobson
(van@LBL-CSAM.ARPA) writes:

> Dave -

[ body of the article deleted ]

>   - Van
>
> ps- perhaps we should take this discussion off line?  I've been
>     filling up peoples' mailboxes lately and I get the impression
>     that there are only two or three of us interested in this topic.

I cannot speak for anyone but myself, but I appreciate seeing the
discussion of these issues.  I am not at present directly involved
with such networks, but the problems discussed are food for thought
and the solutions proposed have bearing in other areas.

                                        Steve Rice

----------------------------------------------------------------------------
{decvax | hplabs | ihnp4 | uw-beaver}!tektronix!videovax!stever