Subject: Re: TCP versus real-time apps in an int-serv internet

From: [email-masked] (Sally Floyd)
Date: Wed, 23 Nov 94 15:15:29 PST

>Another problem with the "network full of VJCC TCP's" strategy is that it only
>achieve some fairness by mandating that every body uses the same algorithm.
>Whoever tries something different is "placing the network at risk": witness
>the cold reception of Arizona's Vegas release for evidence. Yet there are many
>reasons why we may want to try something different. The saw-tooth behaviour of
>VJ's slow-start + congestion avoidance is not fit for audio or video
>transmission; the "control per individual connection" is not well adapted to
>the "transactional" usage of web clients, etc.
>
>That is in fact Scott Shenker's most convincing argument for fair queuing, and
>more generally for network-enforced policies. It allows users to try different
>adaptation schemes and to chose the one which fits best their specific
>application. In fact, if the end to end argument convinces us that users
>should not depend on the network any more than necessary, the converse is also
>true.

Christian - 
  There is a middle ground between "mandating that everybody uses the
same algorithm" and mandating fair queueing for everyone.  There is
considerable benefit that can be gained from being one of a large class
of users that are all playing the same game (e.g., all using an
accepted version of TCP, or all using generally the same rate-adaptive
video algorithm, etc.).  [I am not an expert in the game theory
literature, so I can't give the game-theory alternative to Scott
Shenker's SIGCOMM paper, but this would involve removing the assumption
in Scott's paper that all users are independent and selfish, and
replacing it with the assumption that some set of users had agreed to
cooperate, by playing by the same set of rules.)  Examples of the
benefits to users from such an approach could include not only a
smaller implementation overhead, but such things as the bringing-in of
the tail of the delay distribution that comes from FIFO scheduling (by
letting bursts through in a clump, rather than spacing them out [Clark,
Shenker, Zhang, SIGCOMM 92]), or the ability to control the average
queueing delay that can be done with FIFO scheduling and RED gateways.
[If I wanted to read up on Nash equilibria vs. Pareto optimality, I
could be more rigorous, I know.  Perhaps Van will fill in on this.]

One way to have this middle ground and to take advantage of cooperation
is to use class-based queueing and to require, for example, that all
users in a certain class use an accepted version of TCP (and, perhaps,
that users in some other class use more aggressive or more experimental
congestion control algorithms).  Of course, this would require some
monitoring.  As we described in our paper last year on RED gateways,
one way to do this would be to monitor those connections in a class
that are using a large share of the bandwidth.  For example, the RED
gateway's probabilistic packet dropping algorithm can be used to
automatically identify those connections that are using a large share
of the bandwidth during times of congestion.  A monitoring algorithm
could be used to detect whether or not these connections are in fact
using an accepted protocol for that class (such as an "accepted
version" of TCP).  Developing such a monitoring algorithm is one of the
projects that Vern Paxson is working on for his thesis.  (His general
goal is to investigate what routers or end nodes can learn about the
network from watching a TCP packet trace.) The RED gateway paper
suggests that a non-conforming connection could be demoted to a
separate (possibly lower-priority) class.

Of course, there are probably plenty of possible mechanisms 
for taking advantage of the cooperation in networks, while at the same
time monitoring and protecting against non-standard connections 
(and providing an additional incentive for cooperation).  But
class-based queueing and RED gateways are approaches that
have been designed to do exactly this.

- Sally

---

From: Christian Huitema <[email-masked]>
Date: Mon, 28 Nov 1994 12:31:10 +0100

Sally,

I am 100% ready to agree with you on the usefulness of class based scheduling.
If we believe that the Internet is going to be more commercial, it is bound to
also become more "contractual". Class based scheduling looks like a very good
way to implement contracts.

On the other hand, I don't believe that "all users will be fair". Look at
"netscape" for a neat turn-around of VJ's congestion avoidance: whoever opens
16 connections in parallel is going to have a better response time that the
poor guy who only opens one of them at a time. Are you ready to bet that the
competition to netscape will not invent some other trick?

I am not saying that all nodes should implement fair queing immediately. What
I say is that we should be concerned with proper usage of the resources and
that we should start enforcing it, rather than merely hoping for it. Wheter
RED, fair queing or yet another solution is "the best" is a matter of
technical debate.

Christian Huitema