Subject: Re: 'Slow-Start Restart after Idle' draft

From: Vernon Schryver <[email-masked]>
Date: Fri, 23 Oct 1998 08:25:59 -0600 (MDT)

> From: Joe Touch <[email-masked]>

> > You want to avoid slow-start and slow-restart and relax the 2:1
> > segment:ACK ratio exactly when the hosts are close to each other,
> > which to say, when the RTT is small.
>
> RTT may be correlated (it is debatable how closely); hopcount is
> much more meaningful. If you can get there in 0 hops, then there
> is no router, and you shouldn't be doing these tricks. That would 
> require a traceroute-like test, out-of-band to the regular TCP
> packets.

I meant to point out in my first message Thursday that traceroute cannot
detectect all of the forwarding boxes on which there is often congestion
that needs slow start.  Consider bridges.

I disagree that hopcount is more meaningful than RTT.  Whether there are
0 or 10 hops is not what determines whether slow start and ACK pacing
are important, but whether there are hops where congestion should be avoided.
For the bad hop count 0 case, consider a host that is able to run far
faster than 100 Mbit/sec and that is taking 7000 HTTP hits/second, and
also running a a few long term TCP connections to nearby systems, such as
for syslog.  Those local TCP links need slow start and the host needs RED
or similar on its local interfaces because its interfaces are congested.

I claim those cases get more accurate answers by looking at the RTT.

> Closeness is not an issue - if I have a direct satellite
> link, the RTT can be 500 ms but I still want to do the bursting,
> since there is no router to overload.

Don't satellite links almost always involve boxes doing forwarding (as
well as FEC) and visible the count?

Vernon Schryver    [email-masked]

---

From: [email-masked] (Sam Manthorpe)
Date: Fri, 23 Oct 1998 09:44:07 -0700 (PDT)

> I claim those cases get more accurate answers by looking at the RTT.

It seems both methods have their flaws; how about a routing table
flag that allows go-fast-mode on a route-by-route basis.  This could
be both manually set/cleared and automatically set/cleared by some, as yet
undefined, mechanism.  This also avoids introducing cubersome hop-counting
or RTT estimation mechanisms.  

You would have to be careful about setting go-fast-mode for the local
net if you have proxy-ARP on that net, but you could still hack around
that by setting up specific routes for the proxyarped hosts.  It would
be a bit messy, but that would serve you right ;-)

-- Sam

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sam Manthorpe, SGI.  tel: (650)933-2856 fax: (650)932-2856  [email-masked]

---

From: Venkat Padmanabhan <[email-masked]>
Date: Fri, 23 Oct 1998 10:30:41 -0700

> I claim those cases get more accurate answers by looking at the RTT.

I disagree with your statement that it is irrelevant whether there are 
0 hops or 10 hops. I agree with Joe Touch that having a 0-hop path (that should
actually be "1-hop", but oh well...) is significant. I believe slow
start should be skipped *only if* there is a 0-hop path between source and
destination. Such a path is fundamentally different from all other paths
in the following sense: if the MAC protocol grants the source host access
to the channel, then the source "owns" the channel for a certain length
of time. During this period, the source can be sure that the entire
bandwidth of the channel is exclusively available to it, so there is
no reason to probe for bandwidth a la slow-start. 

The situation is entirely different when a connection traverses more than 
one link (i.e., 1-hop or greater, according to the terminology for this
discussion thread) no matter what the RTT is.

Of course, 0-hop doesn't necessarily mean that it is
okay to skip slow-start (i.e., we can't make an *if and only if* assertion).
A slow receiver could get overwhelmed by a fast sender and drop packets.
This is not fundametally different from congestion at an intermediate
router in the multi-hop case.

Therefore, there is a need for a per-host flag to indicate whether
or not it is okay to skip slow-start (as Sam Manthorpe suggests).
Of course, how these flags would be set is an open issue.

-Venkat